home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / PROGRAM / UTILS / INTERRPT / INTERRUP.J < prev    next >
Text File  |  1994-02-06  |  342KB  |  9,288 lines

  1. Interrupt List, part 10 of 10
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994 Ralf Brown
  3. --------b-69---------------------------------
  4. INT 69 - Zenith AT BIOS - ???
  5.    called by INT 09 handler
  6. --------N-690100-----------------------------
  7. INT 69 - DECnet DOS CTERM - INSTALLATION CHECK
  8.     AX = 0100h
  9. Return: AL = FFh if present
  10. SeeAlso: AX=010Fh
  11. --------N-690101-----------------------------
  12. INT 69 - DECnet DOS CTERM - SEND BYTE
  13.     AX = 0101h
  14.     BL = character
  15.     DX = session handle
  16. Return: AH >= 80h on error
  17. SeeAlso: AX=0102h
  18. --------N-690102-----------------------------
  19. INT 69 - DECnet DOS CTERM - READ BYTE
  20.     AX = 0102h
  21.     DX = session handle
  22. Return: AH >= 80h on error
  23.     AH < 80h if successful
  24.         AL = character
  25. SeeAlso: AX=0101h
  26. --------N-690103-----------------------------
  27. INT 69 - DECnet DOS CTERM - STATUS
  28.     AX = 0103h
  29.     DX = session handle
  30. Return: AH status flags
  31.         bit 7 session has been aborted
  32.         bit 6 DECnet error
  33.         bit 1 trace data available
  34.         bit 0 receive data available
  35.     AL = reason code if DECnet error (see below)
  36. SeeAlso: AX=0104h
  37.  
  38. Values for reason code:
  39.  00h    normal disconnect
  40.  01h    unknown message from host
  41.  02h    protocol violation from host
  42.  03h    could not process the initiate message
  43.  04h    error receiving message from host
  44.  05h    error sending message to host
  45.  06h    error checking for message from host
  46.  07h    remote system does not support CTERM
  47.  08h    remote system does not support correct protocol version
  48.  09h    did not receive BIND message from host
  49.  0Ah    could not send BIND message to host
  50.  0Bh    no more sessions available
  51.  0Ch    session does not exist
  52.  0Dh    not enough memory to complete operation
  53.  0Eh    connection has broken
  54. Index:    error codes;DECnet DOS CTERM|DECnet DOS CTERM;error codes
  55. --------N-690104-----------------------------
  56. INT 69 - DECnet DOS CTERM - DECnet STATUS
  57.     AX = 0104h
  58.     DX = session handle
  59. Return: AX = reason code (see AX=0103h)
  60. Note:    use this call when AX=0103h returns a DECnet error
  61. SeeAlso: AX=0103h
  62. --------N-690105-----------------------------
  63. INT 69 - DECnet DOS CTERM - OPEN SESSION
  64.     AX = 0105h
  65.     DS:BX -> ASCIZ node name
  66.     ES:DX -> buffer for session control block (see INT 6A/AH=D0h)
  67. Return: AX <= 0 on error
  68.     AX > 0 session handle
  69. SeeAlso: AX=0103h,AX=0106h,AX=010Ah
  70. --------N-690106-----------------------------
  71. INT 69 - DECnet DOS CTERM - CLOSE SESSION
  72.     AX = 0106h
  73.     DX = session handle
  74. Return: AH = 00h good close
  75.        other error code (see AX=0103h)
  76. SeeAlso: AX=0103h,AX=0105h
  77. --------N-69010A-----------------------------
  78. INT 69 - DECnet DOS CTERM - GET SESSION CONTROL BLOCK SIZE
  79.     AX = 010Ah
  80. Return: AX = length of session control block in bytes
  81. SeeAlso: AX=0105h
  82. --------N-69010B-----------------------------
  83. INT 69 - DECnet DOS CTERM - GET DECnet SOCKET
  84.     AX = 010Bh
  85.     DX = session handle
  86. Return: AX > 0    DECnet socket for the session
  87.        = 0    no match for handle
  88. --------N-69010F-----------------------------
  89. INT 69 - DECnet DOS CTERM - DEINSTALL CTERM
  90.     AX = 010Fh
  91. Return: AH = 00h successful uninstall
  92.        other error code
  93. Note:    CTERM must have been the last TSR loaded in order to deinstall it
  94. SeeAlso: AX=0100h
  95. Index:    uninstall;DECnet DOS CTERM
  96. --------N-690A-------------------------------
  97. INT 69 - DECnet DOS 2.1+ - DATA LINK LAYER
  98.     AH = 0Ah
  99.     AL = function (see below)
  100.     ES:BX -> Datalink Communication Block
  101. Return: AX = status (see below)
  102. SeeAlso: INT 6D"DECnet"
  103.  
  104. Values for function:
  105.  00h    initialize
  106.  01h    open portal
  107.  02h    close portal
  108.  03h    enable multicast address
  109.  04h    disable multicast address
  110.  05h    transmit
  111.  06h    request transmit buffer
  112.  07h    deallocate transmit buffer
  113.  08h    read channel status
  114.  09h    read datalink portal list
  115.  0Ah    read information about a datalink portal
  116.  0Bh    read and/or clear counters
  117.  0Ch    request to boot from a network server
  118.  0Dh    enable Ethernet channel
  119.  0Eh    disable Ethernet channel
  120.  0Fh    start MOP/send a System ID message
  121.  10h    stop MOP
  122.  11h    get DECPARM
  123.  12h    set DECPARM
  124.  13h    external loopback
  125.  
  126. Values for status:
  127.  00h    successful
  128.  01h    hardware failed to initialize
  129.  02h    channel state was not off (must be off to execute that command)
  130.  03h    channel state is off (must be on to execute that command)
  131.  04h    address not set
  132.  05h    hardware missing
  133.  06h    buffer too small
  134.  07h    no more buffers available
  135.  08h    no more resources available
  136.  09h    promiscuous receiver active
  137.  0Ah    non exclusive
  138.  0Bh    unrecognized portal
  139.  0Ch    protocol type in use
  140.  0Dh    not a valid Multicast address
  141.  0Eh    outstanding calls
  142.  0Fh    hardware doesn't support receiving bad frames
  143.  10h    none outstanding
  144.  11h    no events
  145.  12h    broken
  146.  13h    buffer quota exceeded
  147.  14h    already initialized
  148.  15h    loopback failure
  149. Index:    error codes;DECnet DOS|DECnet DOS;error codes
  150.  
  151. Format of Datalink Communication Block
  152. Offset    Type    Description
  153.  00h    WORD    portal ID
  154.  02h  6 BYTEs    source address
  155.  08h  6 BYTEs    destination address
  156.  0Eh    DWORD    buffer pointer
  157.  12h    WORD    buffer length
  158.  14h    WORD    operation
  159.  16h    BYTE    pad flag (used on open)
  160.         00h no pad
  161.         01h pad
  162.  17h    BYTE    mode flag (used on open)
  163.         00h 802.3
  164.         01h Ethernet
  165.         02h promiscuous
  166.  18h    DWORD    line status change function
  167.  1Ch    DWORD    received data function
  168.  20h    DWORD    transmitted data function
  169.  24h    BYTE    maximum outstanding transmits/receives
  170.  25h  2 BYTEs    protocol type
  171.  27h    WORD    buffers lost
  172. --------N-694001-----------------------------
  173. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  174.     AX = 4001h
  175. Return: CF clear
  176.     AX = 0000h
  177.     ES:SI -> ???
  178. Note:    INT 69 is the default, and may be set to any interrupt from 60h-7Fh;
  179.       the signature "SYSV" immediately before the interrupt handler serves
  180.       as the installation check
  181. SeeAlso: AX=4002h
  182. Index:    installation check;10NET SYSSVC
  183. --------N-694002-----------------------------
  184. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  185.     AX = 4002h
  186.     ???
  187. Return: ???
  188. Note:    INT 69 is the default, and may be set to any interrupt from 60h-7Fh;
  189.       the signature "SYSV" immediately before the interrupt handler serves
  190.       as the installation check
  191. --------N-694101-----------------------------
  192. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  193.     AX = 4101h
  194. Return: CF clear
  195.     ES:SI -> ???
  196. SeeAlso: AX=4102h,AX=4103h,AX=4104h
  197. --------N-694102-----------------------------
  198. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  199.     AX = 4102h
  200.     ???
  201. Return: ???
  202. --------N-694103-----------------------------
  203. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  204.     AX = 4103h
  205.     ???
  206. Return: ???
  207. --------N-694104-----------------------------
  208. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  209.     AX = 4104h
  210.     ???
  211. Return: ???
  212. --------N-6942-------------------------------
  213. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  214.     AH = 42h
  215.     AL = function (01h-14h)
  216.     ???
  217. Return: ???
  218. --------N-6943-------------------------------
  219. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  220.     AH = 43h
  221.     AL = function (01h-05h)
  222.     ???
  223. Return: ???
  224. --------N-6944-------------------------------
  225. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  226.     AH = 44h
  227.     AL = function (01h-03h)
  228.     ???
  229. Return: ???
  230. --------N-6949-------------------------------
  231. INT 69 - 10NET v5.0 - SYSSVC.COM - BUG
  232.     AH = 49h
  233. Note:    due to a fencepost error, this function branches to hyperspace
  234. SeeAlso: AX=4001h,AH=FFh
  235. --------G-696996-----------------------------
  236. INT 69 - ISR.COM v1.00 - SPECIFY INTERRUPT HANDLER
  237.     AX = 6996h
  238.     DS:DX -> interrupt handler or 0000h:0000h to disable
  239. Return: AX = 9669h
  240. Program: ISR (Interrupt Service Reflector) is a TSR by Rich Bono which permits
  241.       a program to provide hardware interrupt handlers even while being
  242.       debugged with a debugger that swaps interrupt vectors during
  243.       debugging.
  244. Note:    the interrupt vector which is to be reflected is set at installation
  245.       time and cannot be changed
  246. --------N-69FF-------------------------------
  247. INT 69 - 10NET v5.0 - SYSSVC.COM - SIGNAL SYSTEM ERROR
  248.     AH = FFh
  249. Return: never???
  250. Notes:    displays "System Error" message and register dump, then halts system
  251.     INT 69 is the default, and may be set to any interrupt from 60h-7Fh;
  252.       the signature "SYSV" immediately before the interrupt handler serves
  253.       as the installation check
  254. SeeAlso: AX=4001h,AH=49h
  255. --------U-6A---------------------------------
  256. INT 6A - OPTHELP.COM
  257. Program: OPTHELP is an optionally-resident help system for SLR Systems's OPTASM
  258.       assembler
  259. Note:    may be configured to use any interrupt from 60h to 7Fh (default 6Ah)
  260. --------N-6A---------------------------------
  261. INT 6A - DECnet DOS - LOCAL AREA TRANSPORT PROGRAM
  262. Note:    the installation check consists of testing for a signature area
  263.       immediately preceding the interrupt handler
  264. SeeAlso: INT 6B"DECnet",INT 6D"DECnet"
  265. Index:    installation check;DECnet DOS Local Area Transport
  266.  
  267. Format of signature area:
  268. Offset    Size    Description
  269.  -5    BYTE    major version number
  270.  -4    BYTE    minor version number
  271.  -3   3 BYTEs    signature (ASCII "LAT")
  272. --------N-6A0000-----------------------------
  273. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - INSTALLATION CHECK
  274.     AX = 0000h
  275. Return: AX = 4357h ('CW')
  276. Program: Super-TCP is a TCP/IP protocol stack by Frontier Technologies Corp.
  277. Note:    an alternate installation check is to test for the ASCIZ signature
  278.       "FTC Super-TCP" three bytes past the interrupt handler
  279. SeeAlso: AX=0001h,AX=0002h,AX=000Fh,AX=0010h,INT 61"PCTCP",INT 62"BW-TCP"
  280. --------N-6A0001-----------------------------
  281. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ???
  282.     AX = 0001h
  283.     BH = function number
  284.         01h ???
  285.         DS:SI -> ??? 24-byte record1 (see below)
  286.         ES:DI -> buffer containing ???
  287.         02h ???
  288.         DS:SI -> ??? 18-byte record2 (see below)
  289.         ES:DI -> buffer containing ???
  290.         04h ???
  291.         BL = subfunction
  292.             01h
  293.             DS:SI -> ??? 28-byte record3 (see below)
  294.             ES:DI -> buffer containing ???
  295.             02h
  296.             DS:SI -> ??? 28-byte record3 (see below)
  297.             ES:DI -> buffer containing ???
  298.             03h
  299.             DS:SI -> ??? 28-byte record3 (see below)
  300.             else Return: AX = 0005h
  301.         05h ???
  302.         DS:SI -> ??? 20-byte record4 (see below)
  303.         ES:DI -> buffer containing ???
  304.         06h ???
  305.         BL = subfunction
  306.             01h
  307.             DS:SI -> ??? 40-byte record5 (see below)
  308.             02h
  309.             DS:SI -> ??? 20-byte record6 (see below)
  310.             ES:DI -> ???
  311.             03h
  312.             DS:SI -> ??? 20-byte record6 (see below)
  313.             04h
  314.             DS:SI -> ??? 46-byte record7 (see below)
  315.             else Return: AX = 0005h
  316.         11h ???
  317.         DS:SI -> ??? 28-byte record8 (see below)
  318.         ES:DI -> ???
  319. Return: AX = function status
  320.         0000h successful
  321.         0005h unsupported function
  322.         000Ah out of memory
  323. SeeAlso: AX=0000h
  324.  
  325. Format of record1:
  326. Offset    Size    Description
  327.  00h  4 BYTEs    ???
  328.  04h    WORD    size of ES:DI buffer
  329.  06h 18 BYTEs    ???
  330.  
  331. Format of record2:
  332. Offset    Size    Description
  333.  00h  4 BYTEs    ???
  334.  04h    WORD    size of ES:DI buffer
  335.  06h 12 BYTEs    ???
  336.  
  337. Format of record3:
  338. Offset    Size    Description
  339.  00h  2 BYTEs    ???
  340.  02h    WORD    ???
  341.  04h    WORD    size of ES:DI buffer
  342.  06h    WORD    ???
  343.  08h    WORD    operation number (for function 0401h)
  344.  0Ah    DWORD    -> ???
  345.  0Eh    WORD    (return) ???
  346.  10h 12 BYTEs    ???
  347.  
  348. Format of record4:
  349. Offset    Size    Description
  350.  00h  4 BYTEs    ???
  351.  04h    WORD    size of ES:DI buffer
  352.  06h 14 BYTEs    ???
  353.  
  354. Format of record5:
  355. Offset    Size    Description
  356.  00h    BYTE    operation??? (00h-07h)
  357.  01h    BYTE    ???
  358.  02h    WORD    (return) ???
  359.  04h    DWORD    -> ???
  360.  08h  4 BYTEs    ???
  361.  0Ch    DWORD    -> ??? or 0000h:0000h
  362.  10h 16 BYTEs    ???
  363.  20h    DWORD    ???
  364.  24h  4 BYTEs    ???
  365.  
  366. Format of record6:
  367. Offset    Size    Description
  368.  00h  4 BYTEs    ???
  369.  04h    WORD    size of ES:DI buffer
  370.  06h 14 BYTEs    ???
  371.  
  372. Format of record7:
  373. Offset    Size    Description
  374.  00h    WORD    ???
  375.  02h    WORD    ???
  376.  04h    WORD    ???
  377.  06h 40 BYTEs    ???
  378.  
  379. Format of record8:
  380. Offset    Size    Description
  381.  00h  4 BYTEs    ???
  382.  04h    WORD    size of ES:DI buffer
  383.  06h  6 BYTEs    ???
  384.  0Ch    WORD    (return) ???
  385.  0Eh    WORD    operation??? (01h-03h)
  386.  10h 12 BYTEs    ???
  387. --------N-6A0002-----------------------------
  388. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ???
  389.     AX = 0002h
  390.     BX = ??? (zero/nonzero)
  391.     CX = ??? identifier (see AX=0004h)
  392.     DS:SI -> 40-byte buffer for ??? or 0000h:0000h
  393.     ES:DI -> buffer for ??? or 0000h:0000h
  394. Return: AX = 0000h (successful) ???
  395.     BL = ???
  396.     BH = ???
  397.     CX = ???
  398.     DX = ???
  399. --------N-6A0003-----------------------------
  400. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - GET ??? DATA AREA
  401.     AX = 0003h
  402. Return: CX:DX -> data area (see below)
  403.  
  404. Format of data area:
  405. Offset    Size    Description
  406.  00h  2 BYTEs    ???
  407.  02h    DWORD    original INT 6A vector
  408.  06h  2 BYTEs    ???
  409.  08h 96 BYTEs    array of 16 6-byte ???
  410.  68h    WORD    number of elements of above array in use
  411.  6Ah    WORD    ???
  412.     ???
  413. --------N-6A0004-----------------------------
  414. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ALLOCATE ???
  415.     AX = 0004h
  416.     CX = size in ???
  417. Return: AX = 0000h (successful)
  418.     CX = DX = ???
  419. SeeAlso: AX=0005h,AX=000Fh
  420. --------N-6A0005-----------------------------
  421. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - FREE/CLOSE ???
  422.     AX = 0005h
  423.     CX = ??? identifier (from AX=0004h)
  424. Return: AX = status (0000h successful, FFFFh failed)
  425. SeeAlso: AX=0004h,AX=000Fh
  426. --------N-6A000F-----------------------------
  427. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - FREE/CLOSE ALL ???
  428.     AX = 000Fh
  429. Return: AX = 0000h (successful)
  430. SeeAlso: AX=0000h,AX=0004h,AX=0005h
  431. --------N-6A0010-----------------------------
  432. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - UNINSTALL
  433.     AX = 0010h
  434. Return: AX = status
  435.         0000h successful
  436.         0002h can't uninstall, interrupt vector hooked by another program
  437. Program: Super-TCP is a TCP/IP protocol stack by Frontier Technologies Corp.
  438. Note:    if AX is not one of the values listed here on entry, Super-TCP
  439.       returns AX=FFFEh
  440. SeeAlso: AX=0000h
  441. --------N-6A01--DHFF-------------------------
  442. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BYTE
  443.     AH = 01h
  444.     DH = FFh
  445.     AL = character
  446.     DL = handle
  447. Return: AH >= 80h on error
  448. SeeAlso: AH=02h
  449. --------N-6A02--DHFF-------------------------
  450. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - READ BYTE
  451.     AH = 02h
  452.     DH = FFh
  453.     DL = handle
  454. Return: AH < 80h if successful
  455.         AL = character
  456.     AH >= 80h on error
  457. SeeAlso: AH=01h
  458. --------N-6A03--DHFF-------------------------
  459. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - STATUS
  460.     AH = 03h
  461.     DH = FFh
  462.     DL = handle
  463. Return: AH = status flags (see below)
  464.  
  465. Bitfields for status flags:
  466.  bit 5    transmit buffer empty
  467.  bit 3    session in start state
  468.  bit 2    session not active
  469.  bit 1    unable to queue transmit data
  470.  bit 0    receive data available
  471. --------N-6AD0--DHFF-------------------------
  472. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - OPEN SESSION
  473.     AH = D0h
  474.     DH = FFh
  475.     AL = FFh no password
  476.        = 0Fh password at ES:DI
  477.     ES:BX -> LAT session control block (see below)
  478.     ES:DI -> 16-byte blank-padded password
  479. Return: AH = 00h success
  480.         DL = handle
  481. SeeAlso: AX=D000h
  482.  
  483. Format of LAT Session Control Block:
  484. Offset    Size    Description
  485.  00h 18 BYTEs    service name
  486.  12h 18 BYTEs    node name (future use)
  487.  24h 18 BYTEs    port name (future use)
  488.  36h    DWORD    -> session stopped post routine
  489.  3Ah    DWORD    -> service table overflow post routine
  490.  3Eh    DWORD    -> transmit post routine
  491.  42h    DWORD    -> receive post routine
  492.  46h    WORD    session status
  493.         04h circuit failure
  494.         08h stop slot received
  495.  48h    WORD    slot state (LAT driver use)
  496.  4Ah    WORD    local credits (LAT driver use)
  497.  4Ch    DWORD    -> VCB (LAT driver use)
  498.  50h    WORD    backward slot (LAT driver use)
  499.  52h    WORD    forward slot (LAT driver use)
  500.  54h    WORD    remote slot ID (LAT driver use)
  501.  56h    WORD    local slot ID (LAT driver use)
  502.  58h    WORD    slot byte count (LAT driver use)
  503.  5Ah    BYTE    remote credits (LAT driver use)
  504.  5Bh 255 BYTEs    transmitted data slot
  505. 15Ah    BYTE    number of receive data slots (4 recommended)
  506. 15Bh    BYTE    number of occupied slots
  507. 15Ch    BYTE    index of next receive slot to use
  508. 15Dh    BYTE    index of current receive slot
  509. 15Eh    WORD    pointer to first received character
  510. 160h  N WORDs    pointers to receive slots (buffers); each is 259 bytes
  511. Note:    set post routines to 0000h:0000h if polled operation will be used
  512. --------N-6AD000DHFF-------------------------
  513. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - CLOSE SESSION
  514.     AX = D000h
  515.     DH = FFh
  516.     DL = handle
  517. Return: AX = 0000h successful
  518.        = 0001h no such session
  519.        = 0002h session not running, try again later
  520. SeeAlso: AH=D0h
  521. --------N-6AD100DHFF-------------------------
  522. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BREAK
  523.     AX = D100h
  524.     DH = FFh
  525.     DL = handle
  526. Return: AX = 0000h if successful
  527.     AH bit 7 set if unable to send break
  528. --------N-6AD300DHFF-------------------------
  529. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - RESET LAT COUNTERS
  530.     AX = D300h
  531.     DH = FFh
  532. SeeAlso: AX=D400h
  533. --------N-6AD400DHFF-------------------------
  534. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - COPY LAT COUNTERS
  535.     AX = D400h
  536.     DH = FFh
  537.     CX = buffer size
  538.     ES:BX -> buffer for LAT counters
  539. Return: AX = 0000h counters copied into buffer
  540.        = FFFFh buffer too small
  541. SeeAlso: AX=D300h
  542. --------N-6AD500DHFF-------------------------
  543. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - GET NEXT LAT SERVICE NAME
  544.     AX = D500h
  545.     DH = FFh
  546.     ES:BX -> 17-byte buffer for name
  547. Return: AH = 00h if successful
  548.        ES:BX buffer filled
  549.     AX = FFFFh if end of table or no name available
  550. Notes:    use this function to get the names of the hosts on the network
  551.     successive calls are necessary to get all names
  552. SeeAlso: AX=D600h
  553. --------N-6AD600DHFF-------------------------
  554. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - LAT SERVICE TABLE RESET
  555.     AX = D600h
  556.     DH = FFh
  557. Return: AX = number of service table entries
  558.     BX = 0000h service table has not overflowed
  559.        = FFFFh service table has overflowed
  560. SeeAlso: AX=D500h
  561. --------N-6B---------------------------------
  562. INT 6B - DECnet DOS - PORT DRIVER
  563. Note:    the installation check consists of testing for a signature area
  564.       immediately preceding the interrupt handler
  565. SeeAlso: INT 6A"DECnet",INT 6C"DECnet"
  566. Index:    installation check;DECnet DOS Port Driver
  567.  
  568. Format of signature area:
  569. Offset    Size    Description
  570.  -5    BYTE    major version number
  571.  -4    BYTE    minor version number
  572.  -3   3 BYTEs    signature (ASCII "PDV")
  573. --------v-6B---------------------------------
  574. INT 6B - VIRUS - "Saddam" - ORIGINAL INT 21h VECTOR
  575. SeeAlso: INT 21/AX=FFFFh,INT 61"VIRUS",INT 70"VIRUS"
  576. --------S-6B0000-----------------------------
  577. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED WRITE
  578.     AX = 0000h
  579.     CX = length
  580.     ES:BX -> buffer
  581. Return: CX = number of bytes written
  582. Program: NASI is Novell's NetWare Asynchronous Services Interface which runs
  583.       on workstations; NACS is the NetWare Asynchronous Communications
  584.       Services module which runs on servers
  585. Notes:    one installation check consists of testing for the signature string
  586.       "NCSI" three bytes past the interrupt handler; see also AH=02h
  587.     this function is also supported by TelAPI, NPC NCSI, and Connection
  588.       Manager CLIENT.EXE; for TelAPI, nonzero values in AL specify a
  589.       connection ID
  590.     Connection Manager returns CF set/AL=FFh if called while an INT 6B
  591.       call is already in progress
  592. SeeAlso: AX=0100h,AH=18h,INT 14/AH=19h,INT 14/AH=E3h
  593. --------S-6B0100-----------------------------
  594. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED READ
  595.     AX = 0100h
  596.     CX = length of buffer
  597.     ES:BX -> buffer
  598. Return: CX = number of bytes read
  599. Note:    also supported by TelAPI and NPC NCSI; for TelAPI, nonzero values in
  600.       AL specify a connection ID
  601. SeeAlso: AX=0000h,AH=19h,INT 14/AH=18h,INT 14/AH=E2h,INT 14/AX=FF02h
  602. --------S-6B02-------------------------------
  603. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - INSTALL CHECK
  604.     AH = 02h
  605.     AL nonzero
  606. Return: AL = 00h if present and OK
  607. Note:    this function is also supported by TelAPI and NPC NCSI
  608. SeeAlso: AX=0700h
  609. --------S-6B0600-----------------------------
  610. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - CONTROL
  611.     AX = 0600h
  612.     CX = command
  613.         02h send break
  614.         04h disconnect
  615.         06h hold
  616. Return: CF clear if successful
  617.         AL = 00h
  618.     CF set on error
  619.         AX < 0
  620. Note:    this function is also supported by TelAPI and NPC NCSI
  621. --------S-6B0700-----------------------------
  622. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - GET STATUS
  623.     AX = 0700h
  624. Return: CH <> 00h if connection active
  625. Notes:    this function is also supported by TelAPI and NPC NCSI
  626.     Novell TelAPI returns CX=FF01h and CF clear
  627. SeeAlso: AH=02h,AH=10h
  628. --------N-6B08-------------------------------
  629. INT 6B - TelAPI - ???
  630.     AH = 08h
  631. Return: CF clear
  632.         AL = 00h
  633.         CX = 0000h
  634. Note:    this function also clears ??? flag
  635. SeeAlso: INT 14/AX=FF00h
  636. --------S-6B10-------------------------------
  637. INT 6B - NPC NCSI EXTENDED SERIAL I/O - GET STATUS
  638.     AH = 10h
  639.     AL = connection ID (Novell TELAPI.EXE)
  640.     CX = ???
  641. Return: CF clear if successful
  642.         CL = ???
  643.         CH = ???
  644.     CF set on error
  645.     ???
  646. Note:    this function is also supported by TelAPI
  647. SeeAlso: AX=0700h,AH=12h,AH=1Fh
  648. --------S-6B11--DX0001-----------------------
  649. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ALLOCATE A VIRTUAL CIRCUIT
  650.     AH = 11h
  651.     DX = 0001h
  652.     AL = 00h
  653.     ES:BX -> service name string (8 characters, blank-padded)
  654. Return: CF clear if successful
  655.         AL = virtual circuit number allocated (01h for Novell TELAPI.EXE)
  656.         CL = ??? (01h for Novell TELAPI.EXE)
  657.         CH = ??? (01h for Novell TELAPI.EXE)
  658.     CF set on error
  659.         ???
  660. Note:    this function is also supported by TelAPI
  661. SeeAlso: AH=12h,AH=15h,AH=16h,AH=17h,AH=18h
  662. --------S-6B12-------------------------------
  663. INT 6B - NPC NCSI EXTENDED SERIAL I/O - VIRTUAL CIRCUIT STATUS
  664.     AH = 12h
  665.     AL = virtual circuit number
  666.     CL = ???
  667.     ES:BX -> ???
  668. Return: ???
  669. Note:    this function is also supported by TelAPI
  670. SeeAlso: AH=10h,AH=15h,AH=1Ah,AH=1Bh,AH=1Fh
  671. --------S-6B13-------------------------------
  672. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE REQUEST/REPLY SERVICE NAME
  673.     AH = 13h
  674.     AL = virtual circuit number
  675.     CL = direction (00h get, nonzero set)
  676.     ES:BX -> buffer for/containing service name
  677. Return: ???
  678. Note:    this function is also supported by TelAPI
  679. SeeAlso: AH=14h,AH=15h
  680. --------S-6B14-------------------------------
  681. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE SERVICE ADDRESS
  682.     AH = 14h
  683.     AL = virtual circuit number
  684.     ES:BX -> buffer for/containing service address
  685. Return: ???
  686. Note:    this function is also supported by TelAPI, which only supports
  687.       retrieving the address
  688. SeeAlso: AH=13h,AH=15h,AH=21h
  689. --------S-6B15-------------------------------
  690. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE VIRTUAL CIRCUIT CONFIG
  691.     AH = 15h
  692.     AL = virtual circuit number
  693.     CL = direction (00h get, nonzero set)
  694.     ES:BX -> buffer for/containing virtual circuit config (see below)
  695. Return: ES:BX buffer filled
  696. Note:    this function is also supported by TelAPI
  697. SeeAlso: AH=13h"NCSI",AH=14h"NCSI"
  698.  
  699. Format of virtual circuit configuration:
  700. Offset    Size    Description
  701.  00h    WORD    buffer length
  702.  02h    WORD    port ID
  703.  04h    WORD    receive rate
  704.  06h    WORD    receive word length
  705.  08h    WORD    receive stop bits
  706.  0Ah    WORD    receive parity
  707.  0Ch    WORD    transmit rate
  708.  0Eh    WORD    transmit word length
  709.  10h    WORD    transmit stop bits
  710.  12h    WORD    transmit parity
  711.  14h    WORD    DTR
  712.  16h    WORD    RTS
  713. --------S-6B16-------------------------------
  714. INT 6B - NPC NCSI EXTENDED SERIAL I/O - LOG AND/OR INITIALIZE VIRTUAL CIRCUIT
  715.     AH = 16h
  716.     AL = virtual circuit number
  717.     CL = ??? switch (00h, ???)
  718. Return: CF clear if successful
  719.         AL = virtual circuit number
  720.     CF set on error
  721.         ???
  722. Note:    this function is also supported by TelAPI, which always returns CF
  723.       clear and AL=00h
  724. SeeAlso: AH=11h,AH=12h,AH=17h
  725. --------S-6B17-------------------------------
  726. INT 6B - NPC NCSI EXTENDED SERIAL I/O - DISCONNECT A VIRTUAL CIRCUIT
  727.     AH = 17h
  728.     AL = virtual circuit number
  729. Return: CF clear if successful
  730.     CF set on error
  731.     ???
  732. Note:    this function is also supported by TelAPI, which always returns CF
  733.       clear and AL=00h
  734. SeeAlso: AH=11h,AH=16h
  735. --------S-6B18-------------------------------
  736. INT 6B - NPC NCSI EXTENDED SERIAL I/O - WRITE DATA ON A VIRTUAL CIRCUIT
  737.     AH = 18h
  738.     AL = virtual circuit number
  739.     CX = number of characters to send
  740.     ES:BX -> buffer containing characters to be sent
  741. Return: CF clear if successful
  742.     CF set on error
  743.     ???
  744. Note:    this function is also supported by TelAPI, which always returns CF
  745.       clear and AL=30h
  746. SeeAlso: AX=0000h,AH=12h,AH=19h
  747. --------S-6B19-------------------------------
  748. INT 6B - NPC NCSI EXTENDED SERIAL I/O - READ DATA ON A VIRTUAL CIRCUIT
  749.     AH = 19h
  750.     AL = virtual circuit number
  751.     CX = number of characters to read
  752.     ES:BX -> buffer for received characters
  753. Return: CX = 0000h if failed
  754.     CX = nonzero (possibly number of characters received) if successful
  755. Note:    this function is also supported by TelAPI
  756. SeeAlso: AX=0100h,AH=12h,AH=18h
  757. --------S-6B1A-------------------------------
  758. INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE STATUS
  759.     AH = 1Ah
  760.     ???
  761. Return: ???
  762. SeeAlso: AH=12h,AH=1Bh
  763. --------S-6B1B-------------------------------
  764. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT STATUS
  765.     AH = 1Bh
  766.     ???
  767. Return: ???
  768. SeeAlso: AH=12h,AH=1Ah
  769. --------S-6B1C-------------------------------
  770. INT 6B - NPC NCSI EXTENDED SERIAL I/O - CLEAR RECEIVE BUFFER
  771.     AH = 1Ch
  772.     AL = circuit number
  773. Return: nothing
  774. SeeAlso: AH=1Dh"NCSI",AH=1Eh"NCSI"
  775. --------S-6B1D-------------------------------
  776. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT BUFFER CONTROL
  777.     AH = 1Dh
  778.     ???
  779. Return: ???
  780. SeeAlso: AH=1Ch,AH=1Eh
  781. --------S-6B1E-------------------------------
  782. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ISSUE CONTROL REQUEST
  783.     AH = 1Eh
  784.     ???
  785. Return: ???
  786. SeeAlso: AH=1Ch,AH=1Dh
  787. --------S-6B1F-------------------------------
  788. INT 6B - NPC NCSI EXTENDED SERIAL I/O - EXTERNAL STATUS
  789.     AH = 1Fh
  790.     ???
  791. Return: ???
  792. SeeAlso: AH=10h,AH=12h
  793. --------S-6B20-------------------------------
  794. INT 6B - Connection Manager CLIENT.EXE - ???
  795.     AH = 20h
  796.     ???
  797. Return: ???
  798. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  799.       serial ports over an IPX or NetBIOS-based network
  800. Note:    CLIENT.EXE returns CF set/AL=F9h if AH is not 00h to 21h on entry
  801. --------S-6B21-------------------------------
  802. INT 6B - NPC NCSI EXTENDED SERIAL I/O - QUERY NAME SERVICE
  803.     AH = 21h
  804.     AL = virtual circuit number
  805.     CL = ??? (00h or 01h)
  806.     ES:BX -> buffer for service name structure (see below)
  807. Return: CF clear if successful
  808.         ES:BX buffer filled
  809.     CF set on error
  810. Note:    a program should call this function after allocating a virtual circuit
  811.       and check that the general name matches the requested service
  812. SeeAlso: AH=14h"NCSI"
  813.  
  814. Format of service name structure:
  815. Offset    Size    Description
  816.  00h    WORD    buffer length
  817.  02h  8 BYTEs    service name
  818.  0Ah  8 BYTEs    general name
  819.  12h  8 BYTEs    specific name
  820. ----------6B6B-------------------------------
  821. INT 6B - Tandy SCHOOLMATE PLUS - API
  822.     AH = 6Bh
  823.     AL = E0h to FFh
  824. ----------6C---------------------------------
  825. INT 6C - system resume vector (CONVERTIBLE)
  826. ----------6C---------------------------------
  827. INT 6C - DOS 3.2 Realtime Clock update
  828. --------N-6C---------------------------------
  829. INT 6C - DECnet DOS network scheduler
  830. Notes:    the installation check consists of testing for a signature area
  831.       immediately preceding the interrupt handler
  832.     also supported by DEC Pathworks for DOS
  833. SeeAlso: INT 6B"DECnet",INT 6D"DECnet",INT 6E"DECnet"
  834. Index:    installation check;DECnet DOS scheduler
  835.  
  836. Format of signature area:
  837. Offset    Size    Description
  838.  -5    BYTE    major version number
  839.  -4    BYTE    minor version number
  840.  -3   3 BYTEs    signature (ASCII "SCH")
  841. --------V-6D---------------------------------
  842. INT 6D - VGA - internal
  843. Note:    used by IBM, Paradise, Video7, and NCR
  844. --------V-6D---------------------------------
  845. INT 6D - ATI VGA Wonder - VIDEO BIOS ENTRY POINT
  846.    points at the original INT 10 entry point set up by the ATI BIOS
  847. SeeAlso: INT 10
  848. --------V-6D---------------------------------
  849. INT 6D - Trident SVGA - VIDEO BIOS HANDLER
  850. Note:    the BIOS INT 10 handler on various Trident VGA cards consists merely
  851.       of a call to INT 6D followed by an IRET.
  852. --------N-6D---------------------------------
  853. INT 6D - DECnet DOS (before 2.1) - DATA LINK LAYER PROGRAM
  854.     AH = function
  855.     ???
  856. Return: ???
  857. Note:    the installation check consists of testing for a signature area
  858.       immediately preceding the interrupt handler
  859. SeeAlso: INT 69/AH=0Ah,INT 6C"DECnet",INT 6E"DECnet"
  860. Index:    installation check;DECnet DOS Data Link Layer
  861.  
  862. Format of signature area:
  863. Offset    Size    Description
  864.  -5    BYTE    major version number
  865.  -4    BYTE    minor version number
  866.  -3   3 BYTEs    signature (ASCII "DLL")
  867. --------N-6E---------------------------------
  868. INT 6E - DECnet DOS - DECnet NETWORK PROCESS API
  869. Notes:    this is the main DECnet DOS access, and is described in Digital manual
  870.       AA-EB46B-TV ("DECnet-DOS Programmer's Reference Manual")
  871.     there is a signature/data area immediately prior to the interrupt
  872.       handler which may be used as an installation check
  873. Index:    installation check;DECnet DOS
  874.  
  875. Format of signature area:
  876. Offset    Size    Description
  877.  -5    BYTE    major version number
  878.  -4    BYTE    minor version number
  879.  -3   3 BYTEs    signature (ASCII "DNP")
  880. --------N-6F---------------------------------
  881. INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface)
  882.     AX = function
  883.         0000h enter terminal mode
  884.         Return: AX = status
  885.                 0000h no action requested
  886.                 0001h screen save
  887.         0001h reset interface and set configuration parameters
  888.         DX = bitfields
  889.             bits 2-0: model number
  890.             bits 4-3: I/O address
  891.             bits 6-5: DMA channel
  892.         Return: nothing
  893.         0002h set display parameters
  894.         DX = bitfields
  895.             bits 1-0: OIA mode
  896.             bits 4-2: monitor support
  897.         Return: nothing
  898.         0003h read status
  899.         Return: AX = status word (see below)
  900.         0004h read cursor position
  901.         Return: AX = cursor position
  902.         0005h get character from device buffer
  903.         DX = cursor position
  904.         Return: AH = type (00h data, 01h attribute)
  905.             AL = data or attribute character
  906.         0006h send character
  907.         DH = type (00h ASCII, 01h extended code)
  908.         DL = ASCII character or extended code
  909.         Return: nothing
  910.         0007h set timeout
  911.         DX = timeout in seconds
  912.         Return: nothing
  913.         0008h wait for location to be modified
  914.         DX = cursor position
  915.         Return: AX = status (0000h modified, nonzero timeout)
  916.         0009h NOP
  917.         000Ah restore display
  918.         Return: nothing
  919.         000Bh update device buffer
  920.         Return: AX = cursor positoin
  921.         000Ch write string to add information area
  922.         DS:DX -> string
  923.         Return: nothing
  924.         000Dh maintenance operations
  925.         DX = maintenance operation code
  926.         Return: AX = operation status
  927.         000Eh get control program version
  928.         Return: AH = release number (major version)
  929.             AL = level number (minor version)
  930.         000Fh get microcode version
  931.         Return: AH = release number (major version)
  932.             AL = level number (minor version)
  933.         0010h save or display graphics
  934.         BX = length of data buffer
  935.         CX = subfunction request code
  936.         DS:DX -> data buffer
  937.         Return: AX = return code
  938.             CX = length of PIF data
  939.         0011h perform structured field operation
  940.         CX = request number
  941.         DS:DX -> parameter list
  942.         Return: AX = status word (see below)
  943.             CX = error number
  944.         0012h set cursor position for direct write buffer
  945.         DX = new cursor position
  946.         Return: AX = status word (see below)
  947.         0013h write direct to buffer
  948.         DL = character to be written
  949.         DH = translation option
  950.         Return: AX = status word (see below)
  951.         0014h write direct to buffer without echo
  952.         DL = character to be written
  953.         DH = translation option
  954.         Return: AX = status word (see below)
  955.         0015h set direct write string length
  956.         DX = string value
  957.         Return: nothing
  958.         0016h write string direct to buffer
  959.         DS:DX -> string
  960.         Return: AX = status word (see below)
  961.         0017h write string direct to buffer, untranslated
  962.         DS:DX -> string
  963.         Return: AX = status word (see below)
  964.         0018h get direct-write cursor position
  965.         Return: AX = cursor position
  966.         0019h convert row/column to cursor position
  967.         DH = display row (1-43)
  968.         DL = display column (1-132)
  969.         Return: AX = cursor position
  970.         001Ah convert cursor position to row/column
  971.         DX = cursor position
  972.         Return: AH = display row
  973.             AL = display column
  974.         001Bh find next field
  975.         DX = initial cursor position
  976.         Return: AX = field cursor position
  977.         001Ch find previous field
  978.         DX = initial cursor position
  979.         Return: AX = field cursor position
  980.         001Dh find next unprotected field
  981.         DX = initial cursor position
  982.         Return: AX = field cursor position
  983.         001Eh find previous unprotected field
  984.         DX = initial cursor position
  985.         Return: AX = field cursor position
  986.         001Fh find next protected field
  987.         DX = initial cursor position
  988.         Return: AX = field cursor position
  989.         0020h find previous protected field
  990.         DX = initial cursor position
  991.         Return: AX = field cursor position
  992.         0021h masked search forward
  993.         DH = mask
  994.         DL = search pattern
  995.         Return: AX = cursor position or 0000h
  996.         0022h masked search backward
  997.         DH = mask
  998.         DL = search pattern
  999.         Return: AX = cursor position or 0FFFh
  1000.         0023h find field length
  1001.         DX = cursor position
  1002.         Return: AX = field length
  1003.         0024h read field
  1004.         DS:DX -> buffer for field contents
  1005.         Return: AX = status word (see below)
  1006.         0025h read screen
  1007.         DS:DX -> buffer for screen contents
  1008.         Return: AX = status word (see below)
  1009.         0026h read buffer untranslated
  1010.         DX = cursor position
  1011.         Return: AX = buffer code
  1012.             CX:BX -> 3278/79 device buffer image
  1013.         0027h enable/disable keyboard
  1014.         DL = new state of keyboard breaks (00h enabled, 01h disabled)
  1015.         Return: nothing
  1016.         0028h select host session
  1017.         DL = session short name
  1018.         Return: AX = session information
  1019.         0029h retrieve host session name
  1020.         AX = short name (DFT) or 0000h (not available, CUT mode)
  1021.         002Ah get current device buffer size
  1022.         Return: AX = device buffer size
  1023.             CX = segment of EAB
  1024.         002Bh arm modified location trigger
  1025.         DX = cursor position
  1026.         Return: AX = status (0000h not available, 0001h successful)
  1027.  
  1028. Bitfields for status word:
  1029.  bits 0,1 cursor type
  1030.  bit 2    cursor inhibited
  1031.  bit 3    display inhibited
  1032.  bit 4    feature step inhibited
  1033.  bit 5    480-character format code
  1034.  bits 6,7 unused
  1035.  bits 8-10 model number (2-5)
  1036.  bit 11    unit has been reset by controller (bit cleared after status returned)
  1037.  bit 12    buffer has been written into (bit cleared after status returned)
  1038.  bit 13    alarm has been sounded (bit cleared after status returned)
  1039.  bits 14-15 monitor type (01 mono, 10 color, 11 hybrid)
  1040. --------N-6F00-------------------------------
  1041. INT 6F - 10NET - LOGIN
  1042.     AH = 00h
  1043.     DS:DX -> login record (see below)
  1044. Return: CL = security level
  1045.     AX = status (see below)
  1046. SeeAlso: AH=01h,AH=80h,INT 21/AX=4402h"10MEMMGR"
  1047.  
  1048. Format of login record:
  1049. Offset    Size    Description
  1050.  00h  8 BYTEs    user name
  1051.  08h  8 BYTEs    password
  1052.  10h 12 BYTEs    name of SuperStation
  1053.  
  1054. Values for status:
  1055.  0000h    successful
  1056.  01FFh    "RTO_NERR" transmit interrupt lost (time out on response)
  1057.  02FFh    "NET_NERR" network (hardware) error
  1058.  03FFh    "PAS_NERR" invalid password
  1059.  04FFh    "LRN_NERR" local resource not available
  1060.  05FFh    "SRN_NERR" server resource not available
  1061.  06FFh    "LNM_NERR" already logged in under different name
  1062.  07FFh    "LSF_NERR" login security failure (node)
  1063.  08FFh    "NLI_NERR" not logged in
  1064.  09FFh    "DIVZ_NERR" position calc error
  1065.  0AFFh    "NT1_NERR" receive subfunction not = send subfunction (i.e. read,write)
  1066.  0BFFh    "RFNC_NERR" request function not in range
  1067.  0CFFh    "NSFH_NERR" no more server file handle entries left
  1068.  0DFFh    "NFTAB_NERR" no more shared file table entries left
  1069.  0EFFh    "NUFH_NERR" no more user file handle entries left
  1070.  0FFFh    "CHAT_NERR" chat permit not on
  1071.  10FFh    "NSRV_NERR" not a server on request
  1072.  11FFh    "NOBD_NERR" no transporter board error
  1073.  12FFh    "STO_NERR" time out on send
  1074.  13FFh    "INF_NERR" item not found (spool item not on queue)
  1075.  14FFh    "DACS_NERR" DOS access incompatible
  1076.  15FFh    "RLOCK_NERR" record already locked
  1077.  16FFh    "IVP_NERR" invalid parameter
  1078.  17FFh    "RLTO_NERR" record lock time out error
  1079.  18FFh    "CSPL_NERR" currently spooling to named device
  1080.  19FFh    "DRP_NERR" dropped receive message (throttle)
  1081.  1AFFh    "SOPV_NERR" open sharing violation
  1082.  1BFFh    "NTUF_NERR" no more tuf entries left
  1083.  1CFFh    "NOWN_NERR" not file owner on open
  1084.  1DFFh    "RSEC_NERR" read security not passed
  1085.  1EFFh    "WSEC_NERR" write security not passed
  1086.  1FFFh    "GSEC_NERR" group security not passed
  1087.  20FFh    "SEC1_NERR" security file failure
  1088.  21FFh    "ACT1_NERR" activity file failure
  1089.  22FFh    "SPL1_NERR" spool control file failure
  1090.  23FFh    "NMT_NERR" device not mounted (spooling)
  1091.  24FFh    "RSPL_NERR" spool file has not been terminated
  1092.  25FFh    "DNSH_NERR" device not mounted or is not being shared
  1093.  26FFh    "DUP_NERR" duplicate node ID
  1094.  27FFh    "FNF_NERR" file not found error
  1095.  28FFh    "NMF_NERR" no more files
  1096.  29FFh    "UN_NERR" unknown internal system error
  1097.  2AFFh    "QCP_NERR" print queue is full or corrupted
  1098.  2BFFh    "IFNC_NERR" invalid function
  1099.  2CFFh    "IVH_NERR" invalid handle
  1100.  2DFFh    "TOF_NERR" too many files opened
  1101.  2EFFh    "PNF_NERR" path not found
  1102.  2FFFh    "SACT_NERR" named file is active
  1103. ---10NET v5.0+ ---
  1104.  30FFh    "NAK_NERR" received NAK on send (destination out of buffers)
  1105.  31FFh    "RENT_NERR" reentrancy in driver F_SEND
  1106.  32FFh    "RECV_NERR" driver could not be put in receive mode
  1107.  33FFh    "NRLT_NERR" no more RLTAB entries left
  1108.  34FFh    "DIAL_NERR" function requires an unsupported dialect
  1109.  35FFh    "IVD_NERR" invalid device
  1110.  36FFh    "NALV_NERR" netname access level violated
  1111.  37FFh    "NPIDNF_NERR" network path not found
  1112.  38FFh    "SP_NERR" server is paused
  1113.  39FFh    "TMNM_NERR" too many remote user names
  1114.  3AFFh    "DUPD_NERR" duplicate network device
  1115.  3BFFh    "DIU_NERR" shared device in use, can't delete
  1116.  3CFFh    "NNWD_NERR" network name was deleted
  1117.  3DFFh    "NPFS_NERR" not enough space for print file
  1118.  3EFFh    "NNNF_NERR" network name not found (can't find the call name)
  1119.  3FFFh    "NB_NERR" network busy
  1120.  40FFh    "NDNLE_NERR" network device no longer exists
  1121.  41FFh    "NBCLE_NERR" NetBIOS command limit exceeded
  1122.  42FFh    "FINT24_NERR" Fail on INT 24h
  1123.  43FFh    "PEXP_NERR" password expired
  1124.  44FFh    "NPUP_NERR" new password error
  1125.  45FFh    "MAXS_NERR" maximum allowed disk space exceeded
  1126.  46FFh    "TDOW_NERR" time-of-day/day-of-week error
  1127. Index:    error codes;10Net|10Net;error codes
  1128. --------N-6F01-------------------------------
  1129. INT 6F - 10NET - LOGOFF
  1130.     AH = 01h
  1131.     DS:DX -> superstation ID or nulls (12 bytes)
  1132. Return: CX = number of files closed
  1133.     AX = status (see also AH=00h)
  1134.         08FFh superstation ID not already logged in
  1135. SeeAlso: AH=00h,AH=81h
  1136. --------N-6F02-------------------------------
  1137. INT 6F - 10NET - STATUS OF NODE
  1138.     AH = 02h
  1139.     DS:DX -> 512-byte status record (see below)
  1140. Return:    CF clear if successful
  1141.     CF set on error
  1142.         AX = error code (see AH=00h)
  1143. SeeAlso: INT 21/AX=5E01h"10NET"
  1144.  
  1145. Format of node status record:
  1146. Offset    Size    Description
  1147.  00h  8 BYTEs    user name (0 if none)
  1148.  08h    BYTE    station type
  1149.         00h workstation
  1150.         01h superstation
  1151.         02h gateway station
  1152.         03h gateway active
  1153.         04h logged into multiple superstations
  1154.         05h reserved
  1155.  09h 24 BYTEs    list of superstations logged into more than one superstation
  1156.  21h 12 BYTEs    node ID
  1157.  2Dh    WORD    message count for this station (send for user node, receive for
  1158.         superstations)
  1159. ---for superstations only---
  1160.  2Fh    WORD    drives allocated (bit 0=A:, bit 1=B:,...)
  1161.  31h    BYTE    user service flags (see below)
  1162.  32h    BYTE    printers allocated (bit 0=LPT1,...)
  1163.  33h    BYTE    number of unprinted spool files
  1164.  34h    BYTE    number of opened files
  1165.  35h    BYTE    number of logged on nodes
  1166.  36h    BYTE    primary drive (1=A:)
  1167.  37h    BYTE    reserved
  1168.  38h  N BYTEs    list of logged on node IDs (each 12 bytes, max 37 IDs)
  1169. 1F4h  3 BYTEs    time: sec/min/hrs
  1170. 1F7h  3 BYTEs    date: day/mon/year-1980
  1171.  
  1172. Bitfields for user service flags:
  1173.  bit 7    gate
  1174.  bit 6    print permit on
  1175.  bit 4    SUBMIT is on
  1176.  bit 3    mail waiting for node
  1177.  bit 2    calendar waiting for you
  1178.  bit 1    news waiting for you
  1179.  bit 0    mail waiting for you
  1180. --------W-6F0204-----------------------------
  1181. INT 6F C - MS Windows 3.0 - DOS APPLICATION SWITCH HOOK
  1182.     AX = 0204h
  1183. Return: AX = status
  1184.         0000h switch is allowed
  1185.         other switch not allowed
  1186. Note:    intercepting this call will allow a DOS application to ensure that
  1187.       Windows will not switch away from it.
  1188. --------N-6F03-------------------------------
  1189. INT 6F - 10NET - GET ADDRESS OF CONFIGURATION TABLE
  1190.     AH = 03h
  1191.     DS:DI -> node ID (optional)
  1192. Return: ES:BX -> configuration table
  1193. SeeAlso: AH=13h,INT 21/AX=5E01h"10NET"
  1194.  
  1195. Format of configuration table:
  1196. Offset    Size    Description
  1197. -41    WORD    local device table address
  1198. -39    WORD    extended network error mapping table address
  1199. -37    WORD    shared device table address
  1200. -35    WORD    mounted device table address
  1201. -33    BYTE    receive buffer counter
  1202. -32    BYTE    collect buffer counter
  1203. -31    WORD    TUF address
  1204. -29    BYTE    enable flag
  1205. -28    BYTE    FCB keep flag
  1206. -27    WORD    reserved
  1207. ---up to here, 10NET v3.3---
  1208. -25    WORD    count of dropped Send6F
  1209. -23    WORD    buffer start address
  1210. -21    WORD    comm driver base address
  1211. -19    WORD    send/receive retry count
  1212. -17    BYTE    number of 550ms loops before timeout
  1213. -16    WORD    UFH address
  1214. -14    WORD    CDIR address
  1215. -12    WORD    LTAB address
  1216. -10    WORD    SFH address
  1217. -8    WORD    FTAB address
  1218. -6    WORD    RLTAB address
  1219. -4    WORD    SMI address
  1220. -2    WORD    NTAB address
  1221.  00h    WORD    address of first CT_DRV
  1222.  02h    BYTE    number of DRV entries
  1223.  03h  8 BYTEs    login name
  1224.  0Bh 12 BYTEs    node ID (blank-padded)
  1225.  17h  6 BYTEs    node address
  1226.  1Dh    BYTE    flag
  1227.  1Eh    BYTE    CT_CFLG (chat permit)
  1228.         bit 1: sound bell
  1229.         bit 0: CHAT permit
  1230.  1Fh    BYTE    CT_PSFLG
  1231.         bit 5: PRINT permit
  1232.         bit 4: KB initiated
  1233.         bit 3: CHAT called FOXPTRM
  1234.         bit 2: SUBMIT active
  1235.         bit 1: SUBMIT received
  1236.         bit 0: SUBMIT permit
  1237.  20h    BYTE    in 10Net flag
  1238.  21h    WORD    receive message count
  1239.  23h    WORD    send message count
  1240.  25h    WORD    retry count
  1241.  27h    WORD    failed count
  1242.  29h    WORD    driver errors
  1243.  2Bh    WORD    dropped responses/CHATs
  1244.  2Dh  9 BYTEs    LIST ID/NTAB address (3 entries--LPT1-3)
  1245.  36h  6 BYTEs    AUX ID/NTAB address (2 entries--COM1-2)
  1246.  3Ch    BYTE    active CB channel
  1247.  3Dh    BYTE    received 6F messages on queue
  1248.  3Eh  9 BYTEs    activity counters for channels 1-9
  1249. ---beyond here, 10NET v3.3---
  1250.  47h    BYTE    bit 0: RS232 gate
  1251.         bit 1: Send6F gate (user set)
  1252.  48h    DWORD    pointer into gate (user set)
  1253.  4Ch    DWORD    pointer into 10Net send
  1254.  50h  N WORDs    addresses of timer blocks
  1255. --------N-6F04-------------------------------
  1256. INT 6F - 10NET - SEND
  1257.     AH = 04h
  1258.     DS:BX -> send record (see below)
  1259.     DS:DX -> data (max 1024 bytes)
  1260. Return:    CF clear if successful
  1261.     CF set on error
  1262.         AX = error code (see AH=00h)
  1263. SeeAlso: AH=05h,AH=09h,AH=0Ah
  1264.  
  1265. Format of send record:
  1266. Offset    Size    Description
  1267.  00h 12 BYTEs    receiving node's ID
  1268.         if first byte has high-order bit set, message is directed to
  1269.           the CT_RGATE vector at the receiver
  1270.         if second byte is 00h, first byte is taken as a CB
  1271.           channel number and delivered to all nodes on same channel
  1272.  0Ch    WORD     length of data at DX
  1273. --------N-6F05-------------------------------
  1274. INT 6F - 10NET - RECEIVE
  1275.     AH = 05h
  1276.     CX = number of seconds before timeout
  1277.     DS:DX -> receive buffer (see below)
  1278. Return:    CF clear if successful
  1279.         AH = FEh if dequeued message is a CB message
  1280.     CF set on error
  1281.         AX = error code (see AH=00h)
  1282. SeeAlso: AH=04h
  1283.  
  1284. Format of receive buffer:
  1285. Offset    Size    Description
  1286.  00h 12 BYTEs    sending node's ID
  1287.  0Ch    WORD    length of message
  1288.  0Eh  N BYTEs    message (maximum 1024 bytes)
  1289. --------N-6F07-------------------------------
  1290. INT 6F - 10NET - LOCK HANDLE
  1291.     AH = 07h
  1292.     BX = file handle
  1293.     CX:DX = starting offset in file
  1294.     SI = record length
  1295. Return:    CF clear if successful
  1296.     CF set on error
  1297.         AX = error code (see also AH=00h)
  1298.         0002h file not found
  1299. SeeAlso: AH=08h,AH=0Fh,INT 21/AH=5Ch
  1300. --------N-6F08-------------------------------
  1301. INT 6F - 10NET - UNLOCK HANDLE
  1302.     AH = 08h
  1303.     BX = file handle
  1304.     AL = mode
  1305.         00h unlock all
  1306.         01h unlock record at CX:DX
  1307. Return:    CF clear if successful
  1308.     CF set on error
  1309.         AX = error code (see also AH=00h)
  1310.         0002h file not found
  1311. SeeAlso: AH=07h,AH=0Fh,INT 21/AH=5Ch
  1312. --------N-6F09-------------------------------
  1313. INT 6F - 10NET - SUBMIT
  1314.     AH = 09h
  1315.     DS:BX -> submit record (see below)
  1316. SeeAlso: AH=04h
  1317.  
  1318. Format of submit record:
  1319. Offset    Size    Description
  1320.  00h 12 BYTEs    destination node ID (must be logged in)
  1321.  0Ch    WORD    length+2 of following 'command line' text
  1322.  0Eh  N BYTEs    command line text (<=100 bytes), system adds CR
  1323. --------N-6F0A-------------------------------
  1324. INT 6F - 10NET - CHAT
  1325.     AH = 0Ah
  1326.     DS:BX -> control parameters (see below)
  1327.     DS:DX -> chat message (see below)
  1328. SeeAlso: AH=04h,AH=8Ah
  1329.  
  1330. Format of control parameters:
  1331. Offset    Size    Description
  1332.  00h  8 BYTEs    sender ID, defaults to node's userID if nulls
  1333.  08h  8 BYTEs    destination user ID, 'EVERYONE' may be used
  1334.  10h 12 BYTEs    destination node ID
  1335.  
  1336. Format of chat message:
  1337. Offset    Size    Description
  1338.  00h    WORD    length+2 of following text
  1339.  02h  N BYTEs    text, max 101 bytes
  1340. --------N-6F0B-------------------------------
  1341. INT 6F - 10NET - LOCK SEMAPHORE, RETURN IMMEDIATELY
  1342.     AH = 0Bh
  1343.     AL = drive number or 0
  1344.     ES:SI = Ethernet address or 0
  1345.     DS:BX -> 31-byte ASCIZ semaphore name
  1346. Return: AL = status (see below)
  1347. Note:    same as INT 60/AH=12h
  1348. SeeAlso: AH=0Ch,INT 60/AH=12h
  1349.  
  1350. Values for status:
  1351.  00h    successful
  1352.  01h    semaphore currently locked
  1353.  02h    server not responding
  1354.  03h    invalid semaphore name
  1355.  04h    semaphore list is full
  1356.  05h    invalid drive ID
  1357.  06h    invalid Ethernet address
  1358.  07h    not logged in
  1359.  08h    write to network failed
  1360.  09h    semaphore already logged in this CPU
  1361. Index:    error codes;10-Net|10-Net;error codes
  1362. --------N-6F0C-------------------------------
  1363. INT 6F - 10NET - UNLOCK SEMAPHORE
  1364.     AH = 0Ch
  1365.     AL = drive number or 0
  1366.     ES:SI = Ethernet address or 0
  1367.     DS:BX -> 31-byte ASCIZ semaphore name
  1368. Return: AL = status (see also AH=0Bh)
  1369.         01h semaphore not locked
  1370. Note:    same as INT 60/AH=13h
  1371. SeeAlso: AH=0Bh,INT 60/AH=13h
  1372. --------N-6F0D-------------------------------
  1373. INT 6F - 10NET - "WHO" - ENUMERATE USERS ON NETWORK
  1374.     AH = 0Dh
  1375.     AL = type code
  1376.         01h return superstations only
  1377.         02h return non-superstations only
  1378.         otherwise return all
  1379.     CX = length of data buffer
  1380.     DS:DX -> array of records to be filled (see below)
  1381. Return: CL = number of records returned (responding stations)
  1382. SeeAlso: AH=16h,AH=8Dh
  1383.  
  1384. Format of station record:
  1385. Offset    Size    Description
  1386.  00h 12 BYTEs    node ID
  1387.  0Ch    BYTE    flags
  1388.         bit 1: workstation
  1389.         bit 2: superstation
  1390.         bit 3: xgate
  1391.         bit 4: active gate
  1392. ---if AL = 01h---
  1393.  0Dh    BYTE    version number
  1394.  0Eh    WORD    level number of 10Net software in responding node
  1395. ---if AL = 02h---
  1396.  0Dh  8 BYTEs    user ID
  1397.  15h    BYTE    version number
  1398.  16h    WORD    level number
  1399. --------N-6F0E-------------------------------
  1400. INT 6F - 10NET - SPOOL/PRINT
  1401.     AH = 0Eh
  1402.     DS:DX -> spool/print record (see below)
  1403. Return:    CF clear if successful
  1404.     CF set on error
  1405.         AX = error code (see also AH=00h)
  1406.         17FFh device not mounted
  1407.         18FFh already spooling to named device
  1408.  
  1409. Values for operation code:
  1410.  0000h    initiate spool
  1411.  0001h    abort print
  1412.  0002h    close spool
  1413.  0003h    delete spool
  1414.  0004h    print
  1415.  0005h    get report info
  1416.  0006h    set chat template
  1417.  0007h    queue
  1418.  0008h    return queue
  1419.  0009h    queue non-spooled file for printing
  1420.  
  1421. Format of Spool/Print record:
  1422. Offset    Size    Description
  1423.  00h    WORD    operation code (see above)
  1424.  02h 11 BYTEs    file name in FCB format
  1425. ---if operation code = 00h or 06h---
  1426.  0Dh    BYTE    notification flags (see below)
  1427.  0Eh    BYTE    days to keep (FFh=forever)
  1428.  0Fh    BYTE    bits 0,1: device (1=LPT1)
  1429.         bits 4-7: remote drive to store spool file (1=A,...)
  1430.  10h    WORD    length of following data area
  1431.  12h  N BYTEs    up to 64 bytes of description
  1432. ---if operation code = 03h---
  1433.  0Dh  8 BYTEs    user ID to associate with filename
  1434. ---if operation code = 04h---
  1435.  0Dh    WORD    block number
  1436.  0Fh  8 BYTEs    user ID to associate with filename
  1437. ---if operation code = 05h---
  1438.  0Dh    BYTE    RRN to start retrieve
  1439.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  1440.         bit 3: if set, return entries for all users
  1441.  0Fh    WORD    length of following area
  1442.  11h  N BYTEs    up to 1500 bytes to receive $SCNTL records returned
  1443. ---if operation code = 07h---
  1444.  0Dh    BYTE    queue number
  1445.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  1446.  0Fh    WORD    number of bytes of test print to be done
  1447.  11h    BYTE    code: 01h print device
  1448.               02h test print count
  1449.               03h prn
  1450. ---if operation code = 08h---
  1451.  0Dh    BYTE    queue location or $SCNTL location to start access
  1452.             returns next item for access:
  1453.                 00h-7Fh queued items
  1454.                 80h-FEh non-queued, non-printed items
  1455.                 FFh    no more items
  1456.  0Eh    WORD    unused
  1457.  10h    WORD    length of following area
  1458.  12h  N BYTEs    up to 64 bytes to receive $SCNTL records
  1459. ---if operation code = 09h---
  1460.  0Dh  3 BYTEs    unused
  1461.  10h  N BYTEs    path to non-spooled file to be queued for printing
  1462.  
  1463. Bitfields for notification flags:
  1464.  bit 7    queue to top
  1465.  bit 6    do ID page
  1466.  bit 5    no form feed
  1467.  bit 4    reserved
  1468.  bit 3    explicit queuing only
  1469.  bit 2    notify at print completion
  1470.  bit 1    notify server operator, with reply
  1471.  bit 0    notify at print start
  1472.  
  1473. Format of $SCNTL record:
  1474. Offset    Size    Description
  1475.  00h  8 BYTEs    user ID
  1476.  08h 11 BYTEs    filename in FCB format
  1477.  13h  6 BYTEs    node ID
  1478.  19h  3 BYTEs    creation date
  1479.  1Ch    BYTE    notification flags (see above)
  1480.  1Dh    BYTE    retention time in days
  1481.  1Eh    BYTE    printing device (LPTx)
  1482.  1Fh  3 BYTEs    date last printed (0 = never)
  1483.  22h    BYTE    device containing spoolfile
  1484.  23h    WORD    bytes to print for test print
  1485.  25h    WORD    block number to start print
  1486.  27h    BYTE    reserved
  1487. --------N-6F0F-------------------------------
  1488. INT 6F - 10NET v5.0 - "RM LOCK" - ???
  1489.     AH = 0Fh
  1490.     ???
  1491. Return: ???
  1492. SeeAlso: AH=07h,AH=08h
  1493. --------N-6F10-------------------------------
  1494. INT 6F - 10NET - ATTACH/DETACH PRINTER
  1495.     AH = 10h
  1496.     AL = subfunction
  1497.         00h initiate spooling if LPT1 is mounted
  1498.         01h terminate spooling if LPT1 is mounted
  1499. SeeAlso: INT 21/AX=5D08h
  1500. --------N-6F11-------------------------------
  1501. INT 6F - 10NET - LOCK FCB
  1502.     AH = 11h
  1503.     AL = mode
  1504.         01h sequential
  1505.         02h random
  1506.         03h random block
  1507.         CX = number of records
  1508.     DS:DX -> FCB (see INT 21/AH=0Fh)
  1509. Return:    CF clear if successful
  1510.     CF set on error
  1511.         AX = error code (see also AH=00h)
  1512.         0002h file not found
  1513. SeeAlso: AH=12h
  1514. --------N-6F12-------------------------------
  1515. INT 6F - 10NET - UNLOCK FCB
  1516.     AH = 12h
  1517.     AL = mode
  1518.         00h sequential
  1519.         01h random
  1520.         02h random block
  1521.         CX = number of records
  1522.     DS:DX -> FCB (see INT 21/AH=0Fh)
  1523. Return:    CF clear if successful
  1524.     CF set on error
  1525.         AX = error code (see also AH=00h)
  1526.         0002h file not found
  1527. SeeAlso: AH=11h
  1528. --------N-6F13-------------------------------
  1529. INT 6F - 10NET v3.3+ - GET REMOTE CONFIGURATION TABLE ADDRESS
  1530.     AH = 13h
  1531.     DS:DX -> node ID, 12 bytes blank-padded
  1532. Return:    CF clear if successful
  1533.         ES:BX = configuration table address on given machine
  1534.     CF set on error
  1535.         AX = error code (see AH=00h)
  1536. SeeAlso: AH=03h
  1537. --------N-6F14-------------------------------
  1538. INT 6F - 10NET v3.3+ - GET REMOTE MEMORY
  1539.     AH = 14h
  1540.     BX:SI = address of remote memory
  1541.     CX = length (<=1024 bytes)
  1542.     DS:DX -> node ID, 12 bytes blank-padded
  1543.     DS:DI -> area to receive remote memory image
  1544. Return:    CF clear if successful
  1545.         CX = amount of memory copied to DS:SI
  1546.     CF set on error
  1547.         AX = error code (see AH=00h)
  1548. --------N-6F1501-----------------------------
  1549. INT 6F - 10NET v3.3+ - GET SHARED DEVICE ENTRY
  1550.     AX = 1501h
  1551.     BX = zero-based index
  1552.     DS:SI -> node ID, 12 bytes blank-padded
  1553.     ES:DI -> 85-byte buffer for shared device table entry (see below)
  1554. Return:    CF clear if successful
  1555.         ES:DI buffer contains shared device table entry of BXth device
  1556.     CF set on error
  1557.         AX = error code (see AH=00h)
  1558. SeeAlso: AX=1502h,AX=1503h,AX=9501h
  1559.  
  1560. Format of shared device table entry:
  1561. Offset    Size    Description
  1562.  00h  8 BYTEs    device
  1563.  08h  8 BYTEs    alias
  1564.  10h 64 BYTEs    path
  1565.  50h  8 BYTEs    password
  1566.  58h    BYTE    access
  1567.  59h  4 BYTEs    mask
  1568. --------N-6F1502-----------------------------
  1569. INT 6F - 10NET v3.3+ - SET SHARED DEVICE ENTRY
  1570.     AX = 1502h
  1571.     DS:SI -> node ID, 12 bytes blank-padded
  1572.     ES:DI -> valid shared device table entry
  1573. Return:    CF clear if successful
  1574.     CF set on error
  1575.         AX = error code (see AH=00h)
  1576. SeeAlso: AX=1501h,AX=1503h,AX=9502h
  1577. --------N-6F1503-----------------------------
  1578. INT 6F - 10NET v3.3+ - DELETE SHARED DEVICE ENTRY
  1579.     AX = 1503h
  1580.     BX = zero-based index
  1581.     DS:SI -> node ID, 12 bytes blank-padded
  1582. Return:    CF clear if successful
  1583.     CF set on error
  1584.         AX = error code (see AH=00h)
  1585. SeeAlso: AX=1501h,AX=1502h,AX=9503h
  1586. --------N-6F16-------------------------------
  1587. INT 6F - 10NET v5.0 - "GL WHO" - ???
  1588.     AH = 16h
  1589.     ???
  1590. Return: ???
  1591. SeeAlso: AH=0Dh
  1592. --------N-6F17-------------------------------
  1593. INT 6F - 10NET v3.3+ - MOUNT
  1594.     AH = 17h
  1595.     AL = local drive number (0=A:)
  1596.     BL = remote drive letter or '1'..'3' for LPTn or '4' or '5' for COMx
  1597.     DS:DX -> node ID, 12 bytes blank-padded
  1598. Return:    CF clear if successful
  1599.     CF set on error
  1600.         AX = error code (see AH=00h)
  1601. SeeAlso: AH=18h
  1602. --------N-6F18-------------------------------
  1603. INT 6F - 10NET v3.3+ - UNMOUNT
  1604.     AH = 18h
  1605.     AL = local drive number (0=A:)
  1606.     BL = type
  1607.         00h        disk
  1608.         01h-03h LPTn
  1609.         04h,05h COMx
  1610. Return:    CF clear if successful
  1611.     CF set on error
  1612.         AX = error code (see AH=00h)
  1613. SeeAlso: AH=17h
  1614. --------N-6F19-------------------------------
  1615. INT 6F U - 10NET v5.0 - AUDIT
  1616.     AH = 19h
  1617.     ???
  1618. Return: ???
  1619. SeeAlso: AH=99h
  1620. --------N-6F1A-------------------------------
  1621. INT 6F U - 10NET v5.0 - "BULL" - ???
  1622.     AH = 1Ah
  1623.     ???
  1624. Return: ???
  1625. --------N-6F1B-------------------------------
  1626. INT 6F U - 10NET v5.0 - "GMOUNT" - ???
  1627.     AH = 1Bh
  1628.     ???
  1629. Return: ???
  1630. --------N-6F1C-------------------------------
  1631. INT 6F U - 10NET v5.0 - "GLOGIN" - GET LOGIN LIST
  1632.     AH = 1Ch
  1633.     ???
  1634. Return: ???
  1635. --------N-6F1D-------------------------------
  1636. INT 6F U - 10NET v5.0 - "TABDATA" - ???
  1637.     AH = 1Dh
  1638.     ???
  1639. Return: ???
  1640. --------N-6F1E-------------------------------
  1641. INT 6F U - 10NET v5.0 - "SCHED" - ???
  1642.     AH = 1Eh
  1643.     ???
  1644. Return: ???
  1645. --------N-6F1F-------------------------------
  1646. INT 6F U - 10NET v5.0 - "WHOAMI" - ???
  1647.     AH = 1Fh
  1648.     ???
  1649. Return: ???
  1650. --------N-6F20-------------------------------
  1651. INT 6F U - 10NET v5.0 - ???
  1652.     AH = 20h
  1653.     ???
  1654. Return: ???
  1655. --------N-6F21-------------------------------
  1656. INT 6F U - 10NET v5.0 - ???
  1657.     AH = 21h
  1658.     ???
  1659. Return: ???
  1660. --------N-6F22-------------------------------
  1661. INT 6F U - 10NET v5.0 - ???
  1662.     AH = 22h
  1663.     ???
  1664. Return: ???
  1665. --------b-6F22--BP0012-----------------------
  1666. INT 6F - HP HIL Vectras - EXTENDED BIOS - READ CMOS MEMORY
  1667.     AH = 22h
  1668.     BP = 0012h (ID of V_SYSTEM driver)
  1669.     BL = address of CMOS byte to read
  1670. Return: AH = status
  1671.     AL = byte read
  1672.     BP, DS destroyed
  1673. Note:    supported by ES, QS, and RS series HP Vectras
  1674. SeeAlso: BP=0012h/AH=24h
  1675. --------b-6F24--BP0012-----------------------
  1676. INT 6F - HP HIL Vectras - EXTENDED BIOS - WRITE CMOS MEMORY
  1677.     AH = 24h
  1678.     BP = 0012h (ID of V_SYSTEM driver)
  1679.     BL = address of CMOS byte to write
  1680.     AL = new value
  1681. Return: AH = status
  1682.     BP, DS destroyed
  1683. SeeAlso: BP=0012h/AH=22h
  1684. --------N-6F80-------------------------------
  1685. INT 6F - 10NET v5.0 - LOGIN
  1686.     AH = 80h
  1687.     DS:DX -> login record (see below)
  1688. Return: CF clear if successful
  1689.         BL = number of days until password expires (00h = never)
  1690.         CL = security level
  1691.     CF set on error
  1692.         AX = status (see AH=00h)
  1693. SeeAlso: AH=00h,AH=81h
  1694.  
  1695. Format of login record:
  1696. Offset    Size    Description
  1697.  00h  8 BYTEs    user name
  1698.  08h  8 BYTEs    password
  1699.  10h 15 BYTEs    server node ID
  1700.  1Fh  8 BYTEs    new password
  1701.  27h    BYTE    invoke mode (00h command line, 01h interactive)
  1702. --------N-6F81-------------------------------
  1703. INT 6F - 10NET v5.0 - LOGOUT
  1704.     AH = 81h
  1705.     DS:DX -> server node ID (DX=0000h for universal logout)
  1706. Return: AX = status (see AH=00h)
  1707. SeeAlso: AH=01h,AH=80h
  1708. --------N-6F8A-------------------------------
  1709. INT 6F - 10NET v5.0 - CHAT
  1710.     AH = 8Ah
  1711.     DS:BX -> chat parameters (see below)
  1712.     DS:DX -> chat message (see below)
  1713. Return: CF clear if successful
  1714.     CF set on error
  1715.         AX = status (see AH=00h)
  1716. SeeAlso: AH=0Ah
  1717.  
  1718. Format of chat parameters:
  1719. Offset    Size    Description
  1720.  00h  8 BYTEs    sender's user name
  1721.  08h  8 BYTEs    destination user name
  1722.  10h 15 BYTEs    destination node (0 if broadcast-style chat)
  1723.  
  1724. Format of chat message:
  1725. Offset    Size    Description
  1726.  00h    WORD    message length
  1727.  02h  N BYTEs    chat message contents
  1728. --------N-6F8D-------------------------------
  1729. INT 6F - 10NET v5.0 - "WHO" - ENUMERATE USERS ON NETWORK
  1730.     AH = 8Dh
  1731.     BX = service mask (see below)
  1732.     CX = length of buffer
  1733.     DS:DX -> buffer for array of Who data structures (see below)
  1734. Return: CF clear if successful
  1735.         CX = number of nodes matching service mask
  1736.         DS:DX buffer filled
  1737.     CF set on error
  1738.         AX = status (see AH=00h)
  1739. SeeAlso: AH=0Dh
  1740.  
  1741. Bitfields for service mask:
  1742.  bit 0    workstation
  1743.  bit 1    file server
  1744.  bit 2    print server
  1745.  bit 3    de-spool server
  1746.  
  1747. Format of Who data structure:
  1748. Offset    Size    Description
  1749.  00h  8 BYTEs    user name
  1750.  08h 15 BYTEs    node ID
  1751.  17h  3 BYTEs    unique portion of Ethernet address
  1752.  1Ah    BYTE    Who group number
  1753.  1Bh    WORD    service mask (see above)
  1754.  1Dh    DWORD    serial number
  1755.  21h    BYTE    maximum concurrent users with same serial number allowed on net
  1756.  22h    BYTE    chat mask (see below)
  1757.  23h    BYTE    internal system bits (see below)
  1758.  24h  9 BYTEs    version number in format MM.mm.xxx
  1759.  2Dh    BYTE    number of shared directories
  1760.  2Eh    BYTE    number of shared printer queues
  1761.  
  1762. Bitfields for chat mask:
  1763.  bit 0    chat permitted
  1764.  bit 1    bell enabled
  1765.  bit 2    chat keyboard initiated
  1766.  bit 3    in INT 16 handler
  1767.  bit 4    in Get Input
  1768.  bit 5    display has timed out
  1769.  bit 6    chat is idle
  1770.  
  1771. Bitfields for internal system bits:
  1772.  bit 0    submit permitted
  1773.  bit 1    submit initiated
  1774.  bit 2    submit executing
  1775.  bit 3    internal client call/chat/spool/autospool
  1776.  bit 4    in spool termination
  1777.  bit 5    print permitted
  1778.  bit 6    waiting for keyboard input
  1779. --------N-6F9501-----------------------------
  1780. INT 6F - 10NET v5.0 - GET SHARED DEVICE ENTRY
  1781.     AX = 9501h
  1782.     BX = zero-based index
  1783.     DS:SI -> server's node ID
  1784.     ES:DI -> buffer for shared device structure (see below)
  1785. Return: CF clear if successful
  1786.     CF set on error
  1787.         AX = status (see AH=00h)
  1788. SeeAlso: AX=1501h,AX=9502h,AX=9503h,AX=9504h
  1789.  
  1790. Format of shared device structure:
  1791. Offset    Size    Description
  1792.  00h  8 BYTEs    alias
  1793.  08h    BYTE    type (02h modem, 03h print queue, 04h directory)
  1794.  09h    BYTE    access rights
  1795.         bit 0: read
  1796.         bit 1: write
  1797.         bit 2: create
  1798.  0Ah  8 BYTEs    password
  1799.  12h 32 BYTEs    comment
  1800. ---directory---
  1801.  32h 64 BYTEs    pathname of shared directory
  1802. ---print queue---
  1803.  32h    BYTE    notification bit mask (see below)
  1804.  33h    BYTE    job control bit mask (see below)
  1805.  34h    WORD    number of days to retain file
  1806.  36h    WORD    test print length
  1807.  38h    BYTE    number of copies to print
  1808.  39h    BYTE    compression algorithm
  1809.  3Ah    BYTE    tab width (00h = don't expand)
  1810.  3Bh    BYTE    priority
  1811.  3Ch    WORD    time to open queue (FFFFh = always)
  1812.  3Eh    WORD    time to close queue
  1813.  40h    WORD    pause following queue switch, in clock ticks
  1814.  42h    WORD    pause between print jobs, in clock ticks
  1815.  44h    BYTE    associate queue file existence mask
  1816.         bit 0: queue switch file exists
  1817.         bit 1: initiate file exists
  1818.         bit 2: abort file exists
  1819.  45h  6 BYTEs    character sequence for page eject
  1820.  4Bh    BYTE    status of print queue
  1821.         bit 0: queue is closed
  1822.  4Ch    WORD    number of jobs on queue
  1823.  4Eh    WORD    offset of next print job to be dispatched (FFFFh = none)
  1824.  50h    BYTE    number of print devices in printer pool
  1825.  51h    WORD    offset of first print device structure (FFFFh if empty)
  1826.  
  1827. Bitfields for notification flags:
  1828.  bit 0    user at print start
  1829.  bit 1    operator at start, with reply
  1830.  bit 2    user at print completion
  1831.  bit 3    operator at completion, with reply
  1832.  bit 4    user on queue switch
  1833.  bit 5    operator on queue switch, with reply
  1834.  bit 6    user on print error
  1835.  
  1836. Bitfields for job control mask:
  1837.  bit 0    print banner page
  1838.  bit 1    eject page at end of job
  1839.  bit 2    mark as "held" (queue but don't print)
  1840.  bit 3    rush job (queue at top)
  1841.  bit 4    overwrite file with zeros before deletion
  1842.  bit 5    hyperspool if possible
  1843. --------N-6F9502-----------------------------
  1844. INT 6F - 10NET v5.0 - SET SHARED DEVICE ENTRY
  1845.     AX = 9502h
  1846.     DS:SI -> server's node ID
  1847.     ES:DI -> shared device structure (see AX=9501h)
  1848. Return: CF clear if successful
  1849.     CF set on error
  1850.         AX = status (see AH=00h)
  1851. SeeAlso: AX=1502h,AX=9501h,AX=9503h,AX=9504h
  1852. --------N-6F9503-----------------------------
  1853. INT 6F - 10NET v5.0 - DELETE SHARED DEVICE
  1854.     AX = 9503h
  1855.     BX = zero-based index
  1856.     DS:SI -> server's node ID
  1857. Return: CF clear if successful
  1858.     CF set on error
  1859.         AX = status (see AH=00h)
  1860. SeeAlso: AX=1503h,AX=9501h,AX=9502h,AX=9504h
  1861. --------N-6F9504-----------------------------
  1862. INT 6F - 10NET v5.0 - ENUMERATE USERS OF SHARED DEVICE
  1863.     AX = 9504h
  1864.     BX = zero-based shared device index
  1865.     CX = zero-based user index
  1866.     DS:SI -> server's node ID
  1867. Return: CF clear if successful
  1868.         ES:DI -> node ID of the CX'th user of the BX'th device
  1869.     CF set on error
  1870.         AX = status (see AH=00h)
  1871. SeeAlso: AX=9501h,AX=9502h,AX=9503h
  1872. --------N-6F99-------------------------------
  1873. INT 6F - 10NET v5.0 - AUDIT
  1874.     AH = 99h
  1875.     DS:SI -> server's node ID
  1876.     ES:DI -> data to be appended to audit trail file (max 106 bytes)
  1877. Return: CF clear if successful
  1878.     CF set on error
  1879.         AX = status (see AH=00h)
  1880. SeeAlso: AH=19h,AH=9Ch
  1881. --------N-6F9C-------------------------------
  1882. INT 6F - 10NET v5.0 - GET LOGIN LIST
  1883.     AH = 9Ch
  1884.     BX = zero-based index
  1885. Return: CF clear if successful
  1886.         DS:DI -> BX'th node ID that caller's machine is logged into
  1887.     CF set on error
  1888.         AX = status (see AH=00h)
  1889. --------H-70---------------------------------
  1890. INT 70 - IRQ8 - CMOS REAL-TIME CLOCK
  1891. Desc:    this interrupt is called when the real-time clock chip generates an
  1892.       alarm or periodic interrupt, among others.  The periodic interrupt
  1893.       occurs 1024 times per second.
  1894. Nots:    many BIOSes turn off the periodic interrupt in the INT 70h handler
  1895.       unless in an event wait (see INT 15/AH=83h or INT 15/AH=86h).
  1896.     may be masked by setting bit 0 on I/O port A1h
  1897. SeeAlso: INT 08,INT 0F"HP 95LX",INT 15/AH=01h"Amstrad",INT 15/AH=83h
  1898. SeeAlso: INT 15/AH=86h,INT 1A/AH=02h,INT 58"DESQview"
  1899. --------v-70---------------------------------
  1900. INT 70 - VIRUS - "Stupid" - ORIGINAL INT 21h VECTOR
  1901. Note:    the virus sets this interrupt to be the same as INT 21, and then
  1902.       performs only INT 70 calls; since INT 70 is also generated by the
  1903.       real-time clock on the PC/AT and higher, this could cause random
  1904.       actions on an infected system
  1905. SeeAlso: INT 6B"VIRUS",INT 9E"VIRUS",INT E0"VIRUS"
  1906. --------H-71---------------------------------
  1907. INT 71 - IRQ9 - REDIRECTED TO INT 0A BY BIOS
  1908. Notes:    may be masked by setting bit 1 on I/O port A1h
  1909.     the default BIOS handler invokes INT 0A for compatibility, since the
  1910.       pin for IRQ2 on the PC expansion bus became the pin for IRQ9 on the
  1911.       AT expansion bus.
  1912.     under DESQview, only the INT 15h vector and BASIC segment address (the
  1913.       word at 0000h:0510h) may be assumed to be valid for the handler's
  1914.       process
  1915. SeeAlso: INT 0A,INT 59
  1916. --------H-72---------------------------------
  1917. INT 72 - IRQ10 - RESERVED
  1918. Note:    may be masked by setting bit 2 on I/O port A1h
  1919. SeeAlso: INT 5A
  1920. --------H-73---------------------------------
  1921. INT 73 - IRQ11 - RESERVED
  1922. Note:    may be masked by setting bit 3 on I/O port A1h
  1923. SeeAlso: INT 5B
  1924. --------H-74---------------------------------
  1925. INT 74 - IRQ12 - POINTING DEVICE (PS)
  1926. Notes:    may be masked by setting bit 4 on I/O port A1h
  1927.     under DESQview, only the INT 15h vector and BASIC segment address (the
  1928.       word at 0000h:0510h) may be assumed to be valid for the handler's
  1929.       process
  1930. SeeAlso: INT 33,INT 5C
  1931. --------H-75---------------------------------
  1932. INT 75 - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up)
  1933.    redirected to INT 02 by the BIOS, for compatibility with the PC
  1934. Notes:    may be masked by setting bit 5 on I/O port A1h
  1935.     not all clones wire the coprocessor to generate this IRQ; some systems
  1936.       generate an NMI (see INT 02) or assert the -ERROR pin on the CPU
  1937.       (see INT 10"COPROCESSOR")
  1938.     under DESQview, only the INT 15h vector and BASIC segment address (the
  1939.       word at 0000h:0510h) may be assumed to be valid for the handler's
  1940.       process
  1941. SeeAlso: INT 10"COPROCESSOR",INT 5D
  1942. --------H-76---------------------------------
  1943. INT 76 - IRQ14 - HARD DISK CONTROLLER (AT and later)
  1944. Note:    may be masked by setting bit 6 on I/O port A1h
  1945. SeeAlso: INT 0E"IRQ6",INT 5E
  1946. --------H-77---------------------------------
  1947. INT 77 - IRQ15 - RESERVED (AT,PS)
  1948. Note:    may be masked by setting bit 7 on I/O port A1h
  1949. SeeAlso: INT 5F
  1950. --------H-77---------------------------------
  1951. INT 77 - IRQ15 - POWER CONSERVATION (Compaq SLT/286)
  1952. Note:    may be masked by setting bit 7 on I/O port A1h
  1953. SeeAlso: INT 15/AX=4600h,INT 5F
  1954. --------E-78---------------------------------
  1955. INT 78 - UofSalford DBOS DOS extender - API
  1956.     AH = function
  1957.         00h (PB) display 32-bit memory specified by command argument
  1958.         01h (PT) display 32-bit instruction(s) specified by command arg
  1959.         02h specify offset to subsequent PB and PT commands
  1960.         03h switch to protected mode
  1961.         DWORD following INT instruction point to map; protected-mode
  1962.             entry point is immediately following the DWORD
  1963.         Return: never
  1964.         Note:    if bit 31 of the map address is set, only a stub was
  1965.               loaded by DOS and DBOS will load the entire program
  1966.         04h specify that subsequent load (AH=03h) should leave program in
  1967.         memory
  1968.         05h release program from memory
  1969.         06h set break point at address and option count from commandline
  1970.         07h resume program execution
  1971.         08h single-step program
  1972.         09h set read/write breakpoint using 386 debug registers
  1973.         0Ah set write breakpoint using 386 debug register
  1974.         0Bh set memory byte to new value
  1975.         0Ch display CPU registers
  1976.         0Dh run until specified program address reached
  1977.         0Fh print trace from program map
  1978.         10h specify an offset using a map symbol
  1979.         14h print memory without any offset
  1980.         18h switch DBOS into/out of test mode (ON/OFF commandline args)
  1981.         1Dh get address of real/protected-mode communication buffer
  1982.         Return: ES:BP -> comm buffer
  1983.         1Eh set real-mode memory size (specify how much real-mode memory
  1984.           to leave free when running FTN77 programs)
  1985.         22h uninstall DBOS
  1986.         24h force DBOS to emulate coprocessor instructions
  1987.         26h set named DBOS switches from commandline
  1988.         27h reset named DBOS switched from commandline
  1989.         2Ah set list of dynamic link libraries to contents of commandline
  1990.         file
  1991.         35h specify that subsequent load (AH=03h) should stop at first
  1992.         instruction
  1993. Return: ???
  1994. Notes:    DBOS supports functions 00h through 50h; many of these functions
  1995.       provide a low-level debugging interface
  1996.     command arguments are read from the calling program's PSP
  1997. SeeAlso: INT 79"DBOS"
  1998. Index:    uninstall;DBOS DOS extender
  1999. --------E-78---------------------------------
  2000. INT 78 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ0
  2001. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  2002.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  2003. Note:    this vector is overwritten when GO32 starts but is not restored by
  2004.       early versions of the extender
  2005. SeeAlso: INT 08,INT 10/AH=FFh"GO32",INT 79"GO32"
  2006. --------A-78---------------------------------
  2007. INT 78 R - AutoCAD Device Interface - PLOTTER - SEND COMMAND
  2008.     AX = function
  2009.         0001h begin plot
  2010.         BX = file level
  2011.             0000h ASCII file
  2012.             0001h binary file
  2013.             0002h AutoCAD DXB file
  2014.             0003h installed ADI driver
  2015.         0002h end plot (close plotter)
  2016.         0003h move (pen up)
  2017.         BX = new X position
  2018.         CX = new Y position
  2019.         0004h move (pen down)
  2020.         BX = new X position
  2021.         CX = new Y position
  2022.         0005h select pen
  2023.         BX = pen number
  2024.         0006h select drawing speed
  2025.         BX = drawing speed N
  2026.         0007h select line style
  2027.         BX = line style N
  2028.         0008h raise pen
  2029.         0009h abort plot
  2030. Return: AX = 0000h (may be used for driver status in future releases)
  2031. SeeAlso: INT 79"AutoCAD",INT 7A/AX=0001h"AutoCAD",INT 7B/AX=8001h"AutoCAD"
  2032. --------d-78---------------------------------
  2033. INT 78 - ADP-60 IDE controller - ORIGINAL INT 13
  2034. SeeAlso: INT 79"ADP-60"
  2035. --------d-7800-------------------------------
  2036. INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT
  2037.     AH = 00h
  2038.     DX = interface board I/O port
  2039. Return: CF set on error
  2040.         AL = error code (see below)
  2041. Note:    if this routine is not called, the port is the driver's default
  2042.       (usually 0280h or 0300h)
  2043.     an installation check is performed by TARGA.DEV upon initialization
  2044.       by checking for the string "SCSI" at offset 03h into the interrupt
  2045.       handler
  2046. SeeAlso: AH=01h,AH=02h
  2047. Index:    installation check;TARGA.DEV
  2048.  
  2049. Values for error code:
  2050.  00h    illegal command given to SCSI code
  2051.  01h    invalid I/O port specified (must be from 100H to 3F8H, and must be on
  2052.       an 8-port boundary)
  2053.  02h    invalid DMA channel specified (must be from 1 to 3)
  2054.  03h    invalid SCSI board number specified (must be from 0 to 7)
  2055.  04h    error from data register test during self-test
  2056.  05h    SCSI input signals not all 0 when SCSI RST activated
  2057.  06h    SCSI input signals not all 0 before selecting a SCSI device
  2058.  07h    BSY signal is active; SCSI bus is busy
  2059.  08h    SCSI board not selected, BSY signal did not come on in response to
  2060.       raising SEL
  2061.  09h    time-out waiting for status state, signifying end of DMA transfer
  2062. --------d-7801-------------------------------
  2063. INT 78 - TARGA.DEV - GET I/O PORT
  2064.     AH = 01h
  2065. Return: DX = current interface board I/O port
  2066. SeeAlso: AH=00h,AH=03h"TARGA"
  2067. --------d-7802-------------------------------
  2068. INT 78 - TARGA.DEV - SET DMA CHANNEL
  2069.     AH = 02h
  2070.     AL = interface board DMA channel
  2071. Return: CF set on error
  2072.     AL = error code (see AH=00h)
  2073. Note:    if this routine is not called, the DMA channel is the driver's default
  2074.       (usually 3)
  2075. SeeAlso: AH=00h,AH=03h"TARGA"
  2076. --------d-7803-------------------------------
  2077. INT 78 - TARGA.DEV - GET DMA CHANNEL
  2078.     AH = 03h
  2079. Return: AL = current interface board DMA channel
  2080. SeeAlso: AH=01h,AH=02h
  2081. --------d-7804-------------------------------
  2082. INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER
  2083.     AH = 04h
  2084.     AL = SCSI device number
  2085. Return: CF set on error
  2086.     AL = error code (see AH=00h)
  2087. Note:    if this routine is not called, the device number used is the driver's
  2088.       default (usually 0)
  2089. SeeAlso: AH=02h,AH=05h
  2090. --------d-7805-------------------------------
  2091. INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER
  2092.     AH = 05h
  2093. Return: AL = current SCSI device number
  2094. SeeAlso: AH=03h"TARGA",AH=04h
  2095. --------d-7806-------------------------------
  2096. INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE
  2097.     AH = 06h
  2098.     AL = 00h clear early return mode
  2099.        = 01h set early return mode
  2100. Note:    if early return mode is set then SCSI will return with no errors
  2101.       when the last DMA transfer is started in a call with AH=13h or AH=14h
  2102.     if this routine is not called, early return mode is cleared
  2103. SeeAlso: AH=13h,AH=14h,AH=15h
  2104. --------d-7808-------------------------------
  2105. INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST
  2106.     AH = 08h
  2107. Return: CF set on error
  2108.     AL = error code (see AH=00h)
  2109. Note:    the SCSI bus is also reset
  2110. SeeAlso: AH=09h
  2111. --------d-7809-------------------------------
  2112. INT 78 - TARGA.DEV - RESET SCSI BUS
  2113.     AH = 09h
  2114. Return: AL = error code if carry set (see AH=00h)
  2115. SeeAlso: AH=08h
  2116. --------d-7810-------------------------------
  2117. INT 78 - TARGA.DEV - SEND SCSI COMMAND
  2118.     AH = 10h
  2119.     DS:SI -> command bytes
  2120. Return: AH = SCSI status byte
  2121.     CF clear if successful
  2122.         AL = SCSI message byte
  2123.     CF set on error
  2124.         AL = error code (see AH=00h)
  2125. SeeAlso: AH=11h,INT 21/AX=4403h"ST-01"
  2126.  
  2127. Format of SCSI Command:
  2128. Offset    Size    Description
  2129.  00h    BYTE    length of command
  2130.  01h    ???    command bytes
  2131. --------d-7811-------------------------------
  2132. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O)
  2133.     AH = 11h
  2134.     DS:SI -> command bytes
  2135.     ES:BX -> data storage area
  2136.     CX = number of data bytes to transfer
  2137. Return: AH = SCSI status byte
  2138.     CF clear if successful
  2139.         AL = SCSI message byte
  2140.     CF set on error
  2141.         AL = error code (see AH=00h)
  2142. Note:    this command receives data internally one byte at a time
  2143. SeeAlso: AH=10h,AH=13h
  2144.  
  2145. Format of SCSI Command:
  2146. Offset    Size    Description
  2147.  00h    BYTE    length of command
  2148.  01h    ???    command bytes
  2149. --------d-7812-------------------------------
  2150. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O)
  2151.     AH = 12h
  2152.     DS:SI -> command bytes
  2153.     ES:BX -> data storage area
  2154.     CX = number of data bytes to transfer
  2155. Return: AH = SCSI status byte
  2156.     CF clear if successful
  2157.         AL = SCSI message byte
  2158.     CF set on error
  2159.         AL = error code (see AH=00h)
  2160. Note:    this command sends data internally one byte at a time
  2161. SeeAlso: AH=14h
  2162.  
  2163. Format of SCSI Command:
  2164. Offset    Size    Description
  2165.  00h    BYTE    length of command
  2166.  01h    ???    command bytes
  2167. --------d-7813-------------------------------
  2168. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA)
  2169.     AH = 13h
  2170.     DS:SI -> command bytes
  2171.     ES:BX -> data storage area
  2172.     DX:CX = number of data bytes to transfer
  2173. Return: AH = SCSI status byte (if early return mode is clear)
  2174.     CF clear if successful
  2175.         AL = SCSI message byte (if early return mode is clear)
  2176.     CF set on error
  2177.         AL = error code (see AH=00h)
  2178. Note:    this command receives data using DMA
  2179. SeeAlso: AH=11h,AH=12h
  2180.  
  2181. Format of SCSI Command:
  2182. Offset    Size    Description
  2183.  00h    BYTE    length of command
  2184.  01h    ???    command bytes
  2185. --------d-7814-------------------------------
  2186. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA)
  2187.     AH = 14h
  2188.     DS:SI -> command bytes
  2189.     ES:BX -> data storage area
  2190.     DX:CX = number of data bytes to transfer
  2191. Return: AH = SCSI status byte (if early return mode is clear)
  2192.     CF clear if successful
  2193.         AL = SCSI message byte (if early return mode is clear)
  2194.     CF set on error
  2195.         AL = error code (see AH=00h)
  2196. Note:    this command sends data using DMA
  2197. SeeAlso: AH=12h,AH=13h
  2198.  
  2199. Format of SCSI Command:
  2200. Offset    Size    Description
  2201.  00h    BYTE    length of command
  2202.  01h    ???    command bytes
  2203. --------d-7815-------------------------------
  2204. INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA)
  2205.     AH = 15h
  2206. Return: AH = SCSI status byte
  2207.     CF clear if successful
  2208.         AL = SCSI message byte
  2209.     CF set on error
  2210.         AL = error code (see AH=00h)
  2211. Note:    if AH=06h was previously called to set the early return mode, this
  2212.       function finishes a command AH=13h or AH=14h which returned before
  2213.       the last DMA transfer was finished
  2214. SeeAlso: AH=06h,AH=13h,AH=14h
  2215. --------V-79---------------------------------
  2216. INT 79 - AVATAR.SYS - FAST GET KEYSTROKE
  2217. Return: CF set if no keystroke available
  2218.         AX = FFFFh
  2219.     CF clear if key pressed
  2220.         AX = keystroke
  2221. Program: AVATAR.SYS is a CON driver by George Adam Stanislav which interprets
  2222.       AVATAR command codes just as ANSI.SYS interprets ANSI commands
  2223. Note:    if a keystroke is available, it is removed from the keyboard buffer
  2224.       before being returned
  2225. SeeAlso: INT 29
  2226. --------E-79---------------------------------
  2227. INT 79 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ1
  2228. Note:    this vector is overwritten when GO32 starts but is not restored by
  2229.       early versions of the extender
  2230. SeeAlso: INT 09,INT 78"GO32",INT 7A"GO32"
  2231. --------d-79---------------------------------
  2232. INT 79 U - ADP-60 IDE adapter - ???
  2233. SeeAlso: INT 78"ADP-60"
  2234. --------E-79---------------------------------
  2235. INT 79 - DBOS DOS Extender
  2236.     details not available
  2237. Desc:    this interrupt is used by an MS Windows virtual device driver with
  2238.       which the DBOS extender communicates when run inside a Windows
  2239.       Enhanced Mode DOS box
  2240. SeeAlso: INT 78"DBOS"
  2241. --------A-790001-----------------------------
  2242. INT 79 R - AutoCAD Device Interface - DIGITIZER - INITIALIZE
  2243.     AX = 0001h
  2244.     BX = interface level (0001h)
  2245. Return: AX = status (0000h initialization failed, 0001h init successful)
  2246.     BX = digitizer type
  2247.         0000h relative pointing device (mouse, etc.)
  2248.         0001h digitizing tablet
  2249.     CX = digitizer dataflow type
  2250.         0000h continuous
  2251.         0001h pauses between packets
  2252. SeeAlso: AX=0002h,AX=0003h,INT 7A/AX=0001h"AutoCAD"
  2253. --------A-790002-----------------------------
  2254. INT 79 R - AutoCAD Device Interface - DIGITIZER - TERMINATE
  2255.     AX = 0002h
  2256. SeeAlso: AX=0001h,AX=0003h
  2257. --------A-790003-----------------------------
  2258. INT 79 R - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS
  2259.     AX = 0003h
  2260. Return: AX = status
  2261.         0000h nothing
  2262.         0002h tracking point (no button pressed)
  2263.         BX = X coordinate
  2264.         CX = Y coordinate
  2265.         0003h picked point (button 0,A,B,C,D pressed)
  2266.         BX = X coordinate
  2267.         CX = Y coordinate
  2268.         0004h button pick
  2269.         BX = button number
  2270.         0005h button and coordinates
  2271.         BX = button number
  2272.         CX = X coordinate
  2273.         DX = Y coordinate
  2274. SeeAlso: AX=0001h,AX=0002h
  2275. --------N-7A---------------------------------
  2276. INT 7A U - Topware Network Operating System - ???
  2277.     AL = ???
  2278.     ???
  2279. Return: ???
  2280. SeeAlso: INT 21/AH=FFh"Topware",INT 2F/AX=FF00h
  2281. --------N-7A---------------------------------
  2282. INT 7A - X.PC Packet software interface
  2283.     ES:BX -> parameter block
  2284. SeeAlso: INT 60/AX=01FFh
  2285. --------E-7A---------------------------------
  2286. INT 7A - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ2
  2287. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  2288.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  2289. Note:    this vector is overwritten when GO32 starts but is not restored by
  2290.       early versions of the extender
  2291. SeeAlso: INT 0A,INT 79"GO32",INT 7B"GO32"
  2292. --------P-7A---------------------------------
  2293. INT 7A O - PRINDIR - API (moved to INT 7C)
  2294. SeeAlso: INT 7C"PRINDIR"
  2295. --------N-7A---------------------------------
  2296. INT 7A - Novell NetWare - LOW-LEVEL API - Notes
  2297. Note:    this interrupt is used for IPX/SPX access in NetWare versions through
  2298.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  2299.       entry point even though INT 7A still exists.    For both INT 7A and
  2300.       the FAR entry point, BX contains the function number; IPX is
  2301.       sometimes called internally with BX bit 15 set.
  2302. SeeAlso: INT 2F/AX=7A00h,INT 64"Novell",INT 7A/BX=0000h
  2303. --------N-7A----BX0000-----------------------
  2304. INT 7A - Novell NetWare - IPX Driver - OPEN SOCKET
  2305.     BX = 0000h
  2306.     AL = socket longevity
  2307.         00h open until close or terminate
  2308.         FFh open until close
  2309.     DX = socket number (high byte in DL)
  2310.         0000h dynamic allocation
  2311.         else  socket to open (see below)
  2312. Return: AL = return code
  2313.         00h success
  2314.         DX = socket number
  2315.         FEh socket table full
  2316.         FFh socket already open
  2317. Notes:    TSRs which need to use sockets should set AL to FFh, non-resident
  2318.       programs should normally use AL=00h
  2319.     IPX can be configured to support up to 150 open sockets on a
  2320.       workstation, and defaults to 20
  2321.     this function is supported by Advanced NetWare 1.02+
  2322. SeeAlso: BX=0001h,BX=0004h
  2323.  
  2324. Values for socket number:
  2325.  0451h    File Service (NetWare Core Protocol)
  2326.  0452h    Service Advertising Protocol
  2327.  0453h    Routing Information Packet
  2328.  0455h    NetBIOS Packet
  2329.  0456h    diagnostics
  2330.  0457h    server serial numbers (labeled "Copy Protection" by Lanalyzer)
  2331.  4000h-7FFFh used for dynamic allocation
  2332.  4444h    Brightwork Development's SiteLock server
  2333.  5555h    Brightwork Development's SiteLock client (workstation)
  2334.  8000h-FFFFh assigned by Novell
  2335. Note:    SiteLock is an application metering product using IPX to communicate
  2336.       between the application and the license server
  2337. --------N-7A----BX0001-----------------------
  2338. INT 7A - Novell NetWare - IPX Driver - CLOSE SOCKET
  2339.     BX = 0001h
  2340.     DX = socket number (high byte in DL)
  2341. Notes:    also cancels events set by any Event Control Blocks for the socket
  2342.     the program must close all open sockets before terminating
  2343.     this function is supported by Advanced NetWare 1.02+
  2344. SeeAlso: BX=0000h
  2345. --------N-7A----BX0002-----------------------
  2346. INT 7A - Novell NetWare - IPX Driver - GET LOCAL TARGET
  2347.     BX = 0002h
  2348.     ES:SI -> target internetwork address (see INT 7A/BX=000Bh)
  2349.     ES:DI -> 6-byte buffer for local target
  2350. Return: AL = return code
  2351.         00h success
  2352.            CX = expected one-way transfer time (clock ticks) for a 576-byte
  2353.             packet
  2354.            ES:DI -> local target
  2355.         FAh unsuccessful (no path to destination)
  2356. Notes:    the internetwork address consists of a 4-byte network address followed
  2357.       by a 6-byte node address.  The local target is only a 6-byte node
  2358.       address.  If the target is in the same network, the local target is
  2359.       just the node address of target; otherwise, the local target is the
  2360.       node address of the bridge that leads to the target.
  2361.     this function may be called from inside IPX and AES Event Service
  2362.       Routines, but not from other interrupt handlers
  2363.     this function is supported by Advanced NetWare 1.02+
  2364. SeeAlso: BX=0009h
  2365. --------N-7A----BX0003-----------------------
  2366. INT 7A - Novell NetWare - IPX Driver - SEND PACKET
  2367.     BX = 0003h
  2368.     ES:SI -> Event Control Block (see below)
  2369. Notes:    returns immediately; IPX attempts to send the packet in the background
  2370.     this function is supported by Advanced NetWare 1.02+
  2371.     this function is nearly identical to BX=000Fh, except that it always
  2372.       copies the source address into the IPX header assumed to be at the
  2373.       beginning of the first fragment
  2374. SeeAlso: BX=0004h,BX=000Fh,INT 21/AH=EEh"Novell"
  2375.  
  2376. Format of Event Control Block:
  2377. Offset    Size    Description
  2378.  00h    DWORD    Link
  2379.  04h    DWORD    -> Event Service Routine (00000000h if none)
  2380.  08h    BYTE    in use flag (see below)
  2381.  09h    BYTE    completion code (see below)
  2382.  0Ah    WORD    (big-endian) socket number (see INT 7A/BX=0000h)
  2383.  0Ch  4 BYTEs    IPX workspace
  2384.  10h 12 BYTEs    driver workspace
  2385.  1Ch  6 BYTEs    immediate local node address
  2386.  22h    WORD    fragment count
  2387.  24h    var    fragment descriptors
  2388.         Offset    Size    Description
  2389.          00h    DWORD    -> fragment data
  2390.          04h    WORD    size of fragment in bytes.
  2391. Notes:    ESR is a far procedure that is called when the ECB has been handled.
  2392.       On call, the in use flag is zero if the ECB has been handled,
  2393.       non-zero otherwise. If the flag is zero, the completion code holds
  2394.       the result of the event.
  2395.     the first fragment should start with an IPX header
  2396.     all fragments are concatenated and sent in one piece
  2397.     node address FFh FFh FFh FFh FFh FFh broadcasts to all nodes
  2398.  
  2399. Format of AES-ECB:
  2400. Offset    Size    Description
  2401.  00h    DWORD    Link
  2402.  04h    DWORD    ESR address
  2403.  08h    BYTE    in use flag (see below)
  2404.  09h  5 BYTEs    AES workspace
  2405.  
  2406. Values for ECB in use flag:
  2407.  00h    available
  2408.  E0h    AES temporary
  2409.  F6h    \ special IPX/SPX processing for v3.02+
  2410.  F7h    /
  2411.  F8h    IPX in critical section
  2412.  F9h    SPX listening
  2413.  FAh    processing
  2414.  FBh    holding
  2415.  FCh    AES waiting
  2416.  FDh    AES couting down delay time
  2417.  FEh    awaiting packet reception
  2418.  FFh    sending packet
  2419.  
  2420. Values for ECB completion code:
  2421.  00h    success
  2422.  ECh    remote terminated connection without acknowledging packet
  2423.  EDh    abnormal connection termination
  2424.  EEh    invalid connection ID
  2425.  EFh    SPX connection table full
  2426.  F9h    event should not be cancelled
  2427.  FAh    cannot establish connection with specified destination
  2428.  FCh    cancelled
  2429.  FDh    malformed packet
  2430.  FEh    packet undeliverable
  2431.  FFh    physical error
  2432.  
  2433. Event Service Routine called with:
  2434.     AL = caller's identity (00h = AES, FFh = IPX)
  2435.     ES:SI -> event control block
  2436.     interrupts disabled
  2437.  
  2438. Format of IPX header:
  2439. Offset    Size    Description
  2440.  00h    WORD    (big-endian) checksum
  2441.  02h    WORD    (big-endian) length in bytes of total packet
  2442.  04h    BYTE    transport control
  2443.  05h    BYTE    packet type (see below)
  2444.  06h 10 BYTEs    destination internetwork address
  2445.  10h    WORD    (big-endian) destination socket
  2446.  12h 10 BYTEs    source internetwork address
  2447.  1Ch    WORD    (big-endian) source socket
  2448.  
  2449. Values for IPX packet type:
  2450.  00h    unknown packet type
  2451.  01h    routing information packet
  2452.  02h    echo packet
  2453.  03h    error packet
  2454.  04h    packet exchange packet (always use this one)
  2455.  05h    SPX packet
  2456.  11h    NetWare Core Protocol
  2457.  14h    Propagated Packet (for NetWare), NetBIOS name packet
  2458.  15h-1Eh experimental protocols
  2459.  
  2460. Format of Service Advertising Protocol Service Query Packet:
  2461. Offset    Size    Description
  2462.  00h 30 BYTEs    IPX header
  2463.  1Eh    WORD    (big-endian) query type
  2464.         0001h general find service
  2465.         0003h find nearest server
  2466.  20h    WORD    (big-endian) server type (see INT 21/AH=E3h"NetWare")
  2467.  
  2468. Format of Service Advertising Protocol Server Identification Packet:
  2469. Offset    Size    Description
  2470.  00h 30 BYTEs    IPX header
  2471.  1Eh    WORD    (big-endian) response type
  2472.         0002h general service
  2473.         0004h nearest service
  2474.  20h 64N BYTEs    server entries (1-7) (see below)
  2475.  
  2476. Format of SAP server entry:
  2477. Offset    Size    Description
  2478.  00h    WORD    (big-endian) server type (see INT 21/AH=E3h"NetWare")
  2479.  02h 48 BYTEs    ASCIZ server name
  2480.  32h  2 WORDs    (big-endian) network number
  2481.  34h  3 WORDs    (big-endian) node number
  2482.  3Ch    WORD    (big-endian) socket number
  2483.  3Eh    WORD    (big-endian) number of hops between caller and server
  2484.  
  2485. Format of Routing Information packet:
  2486. Offset    Size    Description
  2487.  00h 30 BYTEs    IPX header
  2488.  1Eh    WORD    operation (0001h request, 0002h response)
  2489.  20h 8N BYTEs    network entries (1-50) (see below)
  2490.  
  2491. Format of RIP network entry:
  2492. Offset    Size    Description
  2493.  00h    DWORD    network number (FFFFFFFFh = general request)
  2494.  04h    WORD    (response) number of hops
  2495.  06h    WORD    (response) number of clock ticks to reach destination
  2496. --------N-7A----BX0004-----------------------
  2497. INT 7A - Novell NetWare - IPX Driver - LISTEN FOR PACKET
  2498.     BX = 0004h
  2499.     ES:SI -> Event Control Block (see BX=0003h)
  2500. Return: AL = status
  2501.         00h successful
  2502.         FFh no listening socket for packet
  2503. Desc:    this function provides IPX with an ECB for receiving an IPX packet, but
  2504.       does not wait for a packet to arrive
  2505. Notes:    the application must open a socket and initialize the ECB's ESR
  2506.       address, socket number, fragment count, and fragment descriptor
  2507.       fields before invoking this function
  2508.     there is no limit on the number of ECBs which may simultaneously be
  2509.       listening on a socket
  2510.     this function is supported by Advanced NetWare 1.02+
  2511. SeeAlso: BX=0000h,BX=0003h
  2512. --------N-7A----BX0005-----------------------
  2513. INT 7A - Novell NetWare - IPX Driver - SCHEDULE IPX EVENT
  2514.     BX = 0005h
  2515.     AX = delay time in clock ticks
  2516.     ES:SI -> Event Control Block (see BX=0003h)
  2517. Note:    this function is supported by Advanced NetWare 1.02+
  2518. SeeAlso: BX=0006h,BX=0007h,BX=0008h
  2519. --------N-7A----BX0006-----------------------
  2520. INT 7A - Novell NetWare - IPX Driver - CANCEL EVENT
  2521.     BX = 0006h
  2522.     ES:SI -> Event Control Block (see BX=0003h)
  2523. Return: AL = return code
  2524.         00h success
  2525.         F9h event in use
  2526.         FCh event cancelled
  2527.         FFh unsuccessful, event not in use, or unrecognized ECB flag
  2528. Notes:    cannot cancel packets which the node's driver has already sent
  2529.     this function is supported by Advanced NetWare 1.02+
  2530. SeeAlso: BX=0005h
  2531. --------N-7A----BX0007-----------------------
  2532. INT 7A - Novell NetWare - IPX Driver - SCHEDULE SPECIAL EVENT
  2533.     BX = 0007h
  2534.     AX = delay time
  2535.     ES:SI -> Event Control Block (see BX=0003h)
  2536. Note:    this function is supported by Advanced NetWare 1.02+
  2537. SeeAlso: BX=0006h
  2538. --------N-7A----BX0008-----------------------
  2539. INT 7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER
  2540.     BX = 0008h
  2541. Return: AX = interval marker in clock ticks
  2542. Notes:    may be used to measure the time elapsed between two events, up to one
  2543.       hour
  2544.     this function is supported by Advanced NetWare 1.02+
  2545. SeeAlso: BX=0005h
  2546. --------N-7A----BX0009-----------------------
  2547. INT 7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS
  2548.     BX = 0009h
  2549.     ES:SI -> buffer for own internetwork address (see below)
  2550. Return: ES:SI buffer filled
  2551.     SI destroyed
  2552. Note:    this function is supported by Advanced NetWare 1.02+
  2553. SeeAlso: BX=0002h,BX=000Bh
  2554.  
  2555. Format of internetwork address:
  2556. Offset    Size    Description
  2557.  00h  4 BYTEs    (big-endian) network number
  2558.  04h  6 BYTEs    (big-endian) node number within network
  2559. --------N-7A----BX000A-----------------------
  2560. INT 7A - Novell NetWare - IPX Driver - RELINQUISH CONTROL
  2561.     BX = 000Ah
  2562. Desc:    this call indicates that the application is idle and permits the IPX
  2563.       driver to do some work
  2564. Note:    this function is supported by Advanced NetWare 1.02+
  2565. SeeAlso: INT 15/AX=1000h,INT 21/AH=89h,INT 2F/AX=1680h
  2566. --------N-7A----BX000B-----------------------
  2567. INT 7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET
  2568.     BX = 000Bh
  2569.     ES:SI -> internetwork address (see below)
  2570. Notes:    this function permits the network software on the remote machine to
  2571.       remove any virtual connection with the calling machine
  2572.     only use in point-to-point networks
  2573.     should never be called from within an Event Service Routine
  2574.     this function is supported by Advanced NetWare 1.02+
  2575. SeeAlso: BX=0002h,BX=0009h
  2576.  
  2577. Format of internetwork address:
  2578. Offset    Size    Description
  2579.  00h  4 BYTEs    (big-endian) destination network
  2580.  04h  6 BYTEs    (big-endian) destination node
  2581.  0Ah  2 BYTEs    (big-endian) destination socket
  2582. --------N-7A----BX000C-----------------------
  2583. INT 7A U - Novell NetWare - IPX Driver - internal - INITIALIZE NETWORK ADDRESS
  2584.     BX = 000Ch
  2585.     CX:DX = global network address (see INT 7A/BX=0002h)
  2586.     ES:DI -> "OSINCRITICALSECTION" flag
  2587.     DS:SI -> current mode for socket
  2588. Note:    the address cannot be changed once it has been initialized
  2589. --------N-7A----BX000D-----------------------
  2590. INT 7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE
  2591.     BX = 000Dh
  2592. Return: AX = maximum packet size
  2593.     CX = retry count
  2594. SeeAlso: BX=001Ah
  2595. --------N-7A----BX000E-----------------------
  2596. INT 7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS
  2597.     BX = 000Eh
  2598. Return: nothing
  2599. Note:    this function terminates all sockets opened with the current mode; this
  2600.       may be intended for future enhancements as the socket mode never
  2601.       changes in v2.15
  2602. --------N-7A----BX000F-----------------------
  2603. INT 7A U - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET
  2604.     BX = 000Fh
  2605.     ES:SI -> Event Control Block (see BX=0003h)
  2606. Note:    nearly identical to function 0003h, but does not copy address into
  2607.       the first fragment
  2608. SeeAlso: BX=0003h
  2609. --------N-7A----BX0010-----------------------
  2610. INT 7A - Novell NetWare - SPX Driver - INSTALLATION CHECK
  2611.     BX = 0010h
  2612.     AL = 00h
  2613. Return: AL = FFh if SPX loaded
  2614.         BH = SPX major version
  2615.         BL = SPX minor version
  2616.         CX = maximum SPX connections
  2617.         DX = SPX connections available
  2618. Note:    this function is supported by Advanced NetWare 2.1+
  2619.     this interrupt is used for IPX/SPX access in NetWare versions through
  2620.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  2621.       entry point even though INT 7A still exists.    For both INT 7A and
  2622.       the FAR entry point, BX contains the function number; IPX is
  2623.       sometimes called internally with BX bit 15 set.
  2624. SeeAlso: BX=0015h
  2625. --------N-7A----BX0011-----------------------
  2626. INT 7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION
  2627.     BX = 0011h
  2628.     AL = retry count
  2629.     AH = watchdog flag
  2630.     ES:SI -> Event Control Block (see BX=0003h)
  2631. Return: AL = status
  2632.         00h attempting to contact destination socket
  2633.         EFh local connection table full
  2634.         FDh buffer size not 42 or fragment count not 1
  2635.         FFh sending socket not open
  2636.     DX = assigned connection ID number
  2637. Desc:    attempt to establish a connection with a listening socket
  2638. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  2639.       that NetWare can perform its internal packet exchanges
  2640.     the first fragment should start with a SPX header.  Fill in all
  2641.       destination addresses.
  2642.     this function is supported by Advanced NetWare 2.1+
  2643. SeeAlso: BX=0000h,BX=0012h,BX=0013h,BX=0014h,BX=0015h
  2644.  
  2645. Format of SPX header:
  2646. Offset    Size    Description
  2647.  00h    WORD    (big-endian) checksum
  2648.  02h    WORD    (big-endian) length in bytes of total packet
  2649.  04h    BYTE    transport control
  2650.  05h    BYTE    packet type (see INT 7A/BX=0003h)
  2651.  06h 10 BYTEs    destination internet address
  2652.  10h    WORD    (big-endian) destination socket
  2653.  12h 10 BYTEs    source internet address
  2654.  1Ch    WORD    (big-endian) source socket
  2655.  1Eh    BYTE    connection control (see below)
  2656.  1Fh    BYTE    datastream type
  2657.         FEh terminate connection request packet
  2658.         FFh terminate connection acknowledgement packet
  2659.         other user-defined, ignored by SPX
  2660.  20h    WORD    (big-endian) source connection ID
  2661.  22h    WORD    (big-endian) destination connection ID
  2662.  24h    WORD    (big-endian) sequence number
  2663.  26h    WORD    (big-endian) acknowledge number
  2664.  28h    WORD    (big-endian) allocation number
  2665.  
  2666. Bitfield for connection control:
  2667.  bits 3-0 unused???
  2668.  bit 4    end of message
  2669.  bit 5    reserved
  2670.  bit 6    acknowledgement required
  2671.  bit 7    system packet
  2672. --------N-7A----BX0012-----------------------
  2673. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX CONNECTION
  2674.     BX = 0012h
  2675.     AH = watchdog flag
  2676.         00h disabled
  2677.         01h enabled
  2678.     AL = retry count (00h = default)
  2679.     ES:SI -> Event Control Block (see BX=0003h)
  2680. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  2681.       that NetWare can perform its internal packet exchanges
  2682.     this function is supported by Advanced NetWare 2.1+
  2683. SeeAlso: BX=0011h,BX=0013h,BX=0014h
  2684. --------N-7A----BX0013-----------------------
  2685. INT 7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION
  2686.     BX = 0013h
  2687.     DX = connection ID to terminate
  2688.     ES:SI -> Event Control Block (see BX=0003h)
  2689. Note:    this function is supported by Advanced NetWare 2.1+
  2690. SeeAlso: BX=0011h,BX=0012h,BX=0014h
  2691. --------N-7A----BX0014-----------------------
  2692. INT 7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION
  2693.     BX = 0014h
  2694.     DX = connection ID to terminate
  2695. Notes:    this function is supported by Advanced NetWare 2.1+
  2696.     this function does not tell the other side that the connection has been
  2697.       terminated
  2698.     also aborts any outstanding Establish Connection, Terminate Connection,
  2699.       and Send Sequenced Packet commands
  2700. SeeAlso: BX=0011h,BX=0013h
  2701. --------N-7A----BX0015-----------------------
  2702. INT 7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS
  2703.     BX = 0015h
  2704.     DX = connection ID
  2705.     ES:SI -> status buffer (see below)
  2706. Return: AL = return code
  2707.         00h connection still valid
  2708.         ES:SI -> status buffer filled
  2709.         EEh no such connection
  2710. Note:    this function is supported by Advanced NetWare 2.1+
  2711. SeeAlso: BX=0010h,BX=0011h
  2712.  
  2713. Format of status buffer:
  2714. Offset    Size    Description
  2715.  00h    BYTE    connection state
  2716.         01h waiting to establish connection
  2717.         02h starting (attempting to create connection)
  2718.         03h connection established
  2719.         04h terminating
  2720.  01h    BYTE    watchdog flag
  2721.         bit 0: used internally by SPX
  2722.         bit 1: SPX watchdog is monitoring connection
  2723.         bits 2-7 used internally by SPX
  2724.  02h    WORD    (big-endian) source connection ID
  2725.  04h    WORD    (big-endian) destination connection ID
  2726.  06h    WORD    (big-endian) sequence number of next packet sent
  2727.  08h    WORD    (big-endian) acknowledge number, expected sequence number of
  2728.           next received packet
  2729.  0Ah    WORD    (big-endian) maximum sequence number remote SPX may send
  2730.           without ACK from local SPX
  2731.  0Ch    WORD    (big-endian) remote acknowledge number, next sequence number
  2732.           remote SPX expects to receive
  2733.  0Eh    WORD    (big-endian) remote allocation number, maximum sequence number
  2734.           local SPX may send
  2735.  10h    WORD    (big-endian) connection socket
  2736.  12h  6 BYTEs    immediate node address--bridge on local network to destination
  2737.  18h 10 BYTEs    destination internetwork address (see INT 7A/BX=000Bh)
  2738.  22h    WORD    (big-endian) retransmit count
  2739.  24h    WORD    (big-endian) estimated roundtrip delay
  2740.  26h    WORD    (big-endian) retransmitted packets
  2741.  28h    WORD    (big-endian) suppressed packets
  2742.  2Ah 12 BYTEs    ??? (v2.15)
  2743. --------N-7A----BX0016-----------------------
  2744. INT 7A - Novell NetWare - SPX Driver - SEND SPX PACKET
  2745.     BX = 0016h
  2746.     DX = connection ID
  2747.     ES:SI -> Event Control Block (see BX=0003h)
  2748. Notes:    this function is supported by Advanced NetWare 2.1+
  2749.     CX may need to be 0001h ???
  2750. SeeAlso: BX=0011h,BX=0017h
  2751. --------N-7A----BX0017-----------------------
  2752. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX PACKET
  2753.     BX = 0017h
  2754.     DX = connection ID (unused in v2.15)
  2755.     ES:SI -> Event Control Block (see BX=0003h)
  2756. Notes:    this function is supported by Advanced NetWare 2.1+
  2757.     CX may need to be 0001h ???
  2758. SeeAlso: BX=0011h,BX=0016h
  2759. --------N-7A----BX0018-----------------------
  2760. INT 7A U - Novell NetWare - IPX Driver - internal - ADD DIAGNOSTIC ELEMENT
  2761.     BX = 0018h
  2762.     ES:SI -> diagnostic element (see below) to be added to Diagnostic Queue
  2763. Note:    this function is supported on file servers only under v2.15; v3.02 also
  2764.       supports it on workstations
  2765. SeeAlso: BX=0019h
  2766.  
  2767. Format of diagnostic element:
  2768. Offset    Size    Description
  2769.  00h    DWORD    pointer to next diagnostic element
  2770.  04h    DWORD    pointer to function for ???
  2771.  08h    DWORD    pointer to function for ???
  2772. --------N-7A----BX0019-----------------------
  2773. INT 7A U - Novell NetWare - IPX Driver - internal - CANCEL DIAGNOSTIC ELEMENT
  2774.     BX = 0019h
  2775.     ES:SI -> diagnostic element (see BX=0018h) to be removed
  2776. Note:    this function is supported on file servers only under v2.15; v3.02 also
  2777.       supports it on workstations
  2778. SeeAlso: BX=0018h
  2779. --------N-7A----BX001A-----------------------
  2780. INT 7A U - Novell NetWare - IPX Driver - internal - GET DRIVER PACKT SIZE LIMIT
  2781.     BX = 001Ah
  2782. Return: AX = packet size with preamble
  2783.     CX = IPX retry count
  2784. Note:    this function is supported on file servers only under v2.15; v3.02 also
  2785.       supports it on workstations
  2786. SeeAlso: BX=000Dh
  2787. --------N-7A----BX001B-----------------------
  2788. INT 7A U - Novell NetWare - IPX Driver - INTERNAL
  2789.     BX = 001Bh
  2790.     ???
  2791. Return: ???
  2792. Note:    this function is supported on file servers only under v2.15; v3.02 also
  2793.       supports it on workstations
  2794. --------A-7A0001-----------------------------
  2795. INT 7A R - AutoCAD Device Interface - DISPLAY - INITIALIZE (INIT1)
  2796.     AX = 0001h
  2797.     BX = configuration
  2798.     CX = interface level (0001h)
  2799. Return: AX = status
  2800.         0000h initialization failed
  2801.         0001h pre-v4.0 driver initialized successfully
  2802.         0003h post-v3.1 driver initialized successfully (driver truncates
  2803.               excessivly long packets)
  2804.     BX = width of graphics area in pixels, or 0000h if using packet
  2805.               communication
  2806.     DX:CX -> packet-mode entry point
  2807. SeeAlso: AX=0001h,AX=0200h,AX=07D0h,INT 61/AX=0007h"OPTIMA",INT 78"AutoCAD"
  2808. SeeAlso: INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD",INT 7C"AutoShade"
  2809.  
  2810. Call packet-mode entry point with:
  2811. STACK:    DWORD    pointer to request packet
  2812.     WORD    length of packet
  2813.  
  2814. Format of request packet:
  2815. Offset    Size    Description
  2816.  00h    WORD    function number (00h-45h for Compaq VGADI41.EXE)
  2817. --------A-7A0200BX0000-----------------------
  2818. INT 7A R - AutoCAD Device Interface - RENDERING DEVICE - INITIALIZE (RDLINKUP)
  2819.     AX = 0200h
  2820.     BX = 0000h
  2821.     CX = interface level (0001h)
  2822. Return: BX = 0000h (driver uses packet communication)
  2823.     DX:CX -> packet-mode entry point (see AX=0001h"AutoCAD")
  2824. SeeAlso: AX=0001h"AutoCAD",INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD"
  2825. --------I-7A04-------------------------------
  2826. INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE
  2827.     AH = 04h
  2828.     ???
  2829. Return: ???
  2830. SeeAlso: AH=06h
  2831. --------I-7A06-------------------------------
  2832. INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE
  2833.     AH = 06h
  2834.     ???
  2835. Return: ???
  2836. SeeAlso: AH=04h
  2837. ----------7A07D0-----------------------------
  2838. INT 7A R - AutoCAD Device Interface - Compaq VGADI41.EXE - GET ENTRY POINT
  2839.     AX = 07D0h
  2840. Return: AX = ??? (0003h)
  2841.     BX = 0000h
  2842.     DX:CX -> ADI entry point (see AX=0001h)
  2843. SeeAlso: AX=0001h
  2844. --------I-7A09--BX8020-----------------------
  2845. INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES
  2846.     AH = 09h
  2847.     BX = 8020h (synchronous request)
  2848.     CX = 0000h
  2849.     DX = ID of session manager (SESSMGR)
  2850.     AL = service
  2851.         01h get session ID
  2852.         02h get session info
  2853.         04h dettach from session
  2854.         05h attach to session
  2855.         06h get list of windows available
  2856.         07h get environment of window
  2857.         08h get 'PIF' (program information file) info
  2858.         0Ah get base window ID
  2859.         0Bh get cursor info
  2860.     ES:DI -> control block
  2861. Return: ???
  2862. --------I-7A09--BX8020-----------------------
  2863. INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES
  2864.     AH = 09h
  2865.     BX = 8020h (synchronous request)
  2866.     CX = 0000h
  2867.     DX = ID of keyboard manager
  2868.     AL = service
  2869.         01h connect to keyboard
  2870.         02h disconnect from keyboard
  2871.         03h read from keyboard
  2872.         04h send keystroke to session
  2873.         05h disable input
  2874.         06h enable input
  2875.         07h update status code
  2876.     ES:DI -> control block
  2877. Return: ???
  2878. --------I-7A09--BX8020-----------------------
  2879. INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES
  2880.     AH = 09h
  2881.     BX = 8020h (synchronous request)
  2882.     CX = 00FFh
  2883.     DX = ID of window service controller (WSCTRL)
  2884.     AL = service
  2885.         01h connect to WS control
  2886.         02h disconnect from WS control
  2887.         03h add a window
  2888.         04h change window's position on screen
  2889.         05h change window's size
  2890.         06h change window's color
  2891.         07h change window's position in the presentation space
  2892.         08h hide/unhide toggle
  2893.         09h enlarge/reduce toggle
  2894.         0Ah change screen background color
  2895.         0Bh get window's position on screen
  2896.         0Ch get window's size
  2897.         0Dh get window's color
  2898.         0Eh get window's position in the presentation space
  2899.         0Fh determine whether hidden
  2900.         10h determine whether enlarged
  2901.         11h get background color
  2902.         12h get window names
  2903.         13h delete all windows from profile
  2904.         14h pick active window
  2905.         15h redraw screen
  2906.         16h redraw window
  2907.         17h delete a window from profile
  2908.         18h get active window
  2909.         19h get active screen
  2910.         1Ah get window data
  2911.         1Bh change window data
  2912.         1Ch select active screen
  2913.     ES:DI -> control block
  2914. Return: ???
  2915. --------I-7A09--BX8020-----------------------
  2916. INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES
  2917.     AH = 09h
  2918.     BX = 8020h
  2919.     CX = 00FFh
  2920.     DX = ID of PCPSM
  2921.     AL = service
  2922.         01h define presentation space
  2923.         02h delete presentation space
  2924.         03h display presentation space
  2925.         04h position cursor in presentation space
  2926.         05h change default presentation space
  2927.     ES:DI -> control block
  2928. Return: ???
  2929. --------I-7A09--BX8020-----------------------
  2930. INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION
  2931.     AH = 09h
  2932.     BX = 8020h
  2933.     CX = 00FFh
  2934.     DX = ID of 3270EML
  2935.     AL = service
  2936.         01h connect
  2937.         02h disconnect
  2938.     ES:DI -> control block
  2939. Return: ???
  2940. --------I-7A09--BX8020-----------------------
  2941. INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA
  2942.     AH = 09h
  2943.     BX = 8020h
  2944.     CX = 00FFh
  2945.     DX = ID of OIAM
  2946.     AL = service
  2947.         01h read Operator Information Area
  2948.         02h read OIA subset
  2949.     ES:DI -> control block
  2950. Return: ???
  2951. Note: the OIA is the 25th line on the Host session
  2952. --------I-7A09--BX8020-----------------------
  2953. INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA
  2954.     AH = 09h
  2955.     BX = 8020h
  2956.     CX = 00FFh
  2957.     DX = ID of XLATE
  2958.     AL = service
  2959.         01h translate from host characters to ASCII and vice versa
  2960.         (determined by control block byte 11)
  2961.     ES:DI -> control block
  2962. Return: ???
  2963. --------I-7A09--BX8020-----------------------
  2964. INT 7A - IBM 3270 Workstation Program API - COPY SERVICE
  2965.     AH = 09h
  2966.     BX = 8020h
  2967.     CX = 00FFh
  2968.     DX = ID of copy service
  2969.     AL = service
  2970.         01h copy string from one presentation space to another
  2971.         02h copy block from one presentation space to another
  2972.         03h connect to PC session for copy
  2973.         04h disconnect PC session from copy
  2974.     ES:DI -> control block
  2975. Return: ???
  2976. --------I-7A09--BX8020-----------------------
  2977. INT 7A - IBM 3270 Workstation Program API - Multi-DOS
  2978.     AH = 09h
  2979.     BX = 8020h
  2980.     CX = 00FFh
  2981.     ES:DI -> control block
  2982.     DX = ID of INDJQRY
  2983.         get environment size
  2984.        = ID of INDJASY
  2985.         request DOS functions from workstation
  2986.        = ID of MEMORY
  2987.         AL = function
  2988.             01h allocate memory
  2989.             02h deallocate memory
  2990.             03h modify allocated size
  2991. Return: ???
  2992. --------I-7A09-------------------------------
  2993. INT 7A - IBM 3270 Workstation Program API - HOST SERVICES
  2994.     AH = 09h
  2995.     BX = request type (4000h async, 8028h synchronous)
  2996.     CX = 0000h
  2997.     DX = ID of MFIC
  2998.     AL = service
  2999.        01h connect to host
  3000.        02h disconnect from host
  3001.        03h read DFT structured data from host
  3002.        04h write DFT structured data to host
  3003.        05h create a host buffer
  3004.     ES:DI -> control block
  3005. --------I-7A13-------------------------------
  3006. INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE
  3007.     AH = 13h
  3008.     ???
  3009. Return: ???
  3010. ----------7A7A-------------------------------
  3011. INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE
  3012.     AH = 7Ah
  3013.     ???
  3014. Return: AX = 0000h success
  3015.          000Eh undefined function code
  3016. Note:    this interface is normally on INT 7A but can be changed via device
  3017.       driver command line arguments
  3018. --------I-7A81-------------------------------
  3019. INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME
  3020.     AH = 81h
  3021.     ES:DI -> 8-char blank-padded gate name
  3022.         "SESSMGR ", "KEYBOARD", "WSCTRL     ", "MFIC    ", "PCPSM     ",
  3023.         "3270EML ", "COPY    ", "XLATE     ", "OIAM    ", "MEMORY     ",
  3024.         "INDJQRY ", or "INDJASY "
  3025. Return: DX = gate ID
  3026. --------I-7A83-------------------------------
  3027. INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS
  3028.     AH = 83h
  3029.     ???
  3030. Return: ???
  3031. --------I-7AFDCB-----------------------------
  3032. INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK
  3033.     AX = FDCBh
  3034. Return: DX:AX -> PCS/3270 signature block if loaded (see below)
  3035.  
  3036. Format of signature block:
  3037. Offset    Size    Description
  3038.  04h    WORD    PCS/3270 signature (5741h)
  3039.  06h    WORD    version (0501h = PCS/3270 v1.0)
  3040. --------I-7AFE01-----------------------------
  3041. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  3042.     AX = FE01h
  3043.     ???
  3044. Return: ???
  3045. SeeAlso: AX=FE02h
  3046. --------I-7AFE02-----------------------------
  3047. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  3048.     AX = FE02h
  3049.     ???
  3050. Return: ???
  3051. SeeAlso: AX=FE01h
  3052. --------I-7AFF01-----------------------------
  3053. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  3054.     AX = FF01h
  3055.     ES:DI -> API function handler routine
  3056. Return: CX = 1200h
  3057. SeeAlso: AX=FF02h,AX=FF03h
  3058. --------I-7AFF02-----------------------------
  3059. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION
  3060.     AX = FF02h
  3061. Return: CX = 1200h
  3062. SeeAlso: AX=FF01h
  3063. --------I-7AFF03-----------------------------
  3064. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  3065.     AX = FF03h
  3066.     ES:DI -> send/receive function handler routine
  3067. Return: CX = 1200h
  3068. SeeAlso: AX=FF01h
  3069. --------I-7AFF04-----------------------------
  3070. INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ???
  3071.     AX = FF04h
  3072.     ES:DI -> ???
  3073. Return: CX = 1200h
  3074. --------f-7B---------------------------------
  3075. INT 7B - Btrieve API (single user)
  3076.     DS:DX -> 38-byte parameter record (see below)
  3077. Return: return code field set
  3078. Note:    Btrieve sets low byte of vector to 33h; this serves as the installation
  3079.       check
  3080. SeeAlso: INT 2F/AX=AB01h,INT 7F/AX=0200h
  3081.  
  3082. Format of Btrieve parameter record:
  3083. Offset    Size    Description
  3084.  00h    DWORD    pointer to data buffer
  3085.  04h    WORD    data buffer length
  3086.  06h    DWORD    pointer to 90-byte record containing positioning info
  3087.         (should be same for all calls for same file)
  3088.  0Ah    DWORD    pointer to 38-byte FCB info buffer
  3089.         (should be same for all calls for same file)
  3090.  0Eh    WORD    function code (see below)
  3091.  10h    DWORD    pointer to file name/key buffer
  3092.  14h    BYTE    key length
  3093.  15h    BYTE    key number
  3094.  16h    DWORD    pointer to status code (see below)
  3095.  1Ah    WORD    interface code (version specific)
  3096.         6176h version 5.10
  3097.  
  3098. Values for function code:
  3099.  00h    open
  3100.  01h    close
  3101.  02h    insert
  3102.  03h    update
  3103.  04h    delete
  3104.  05h    get_equal
  3105.  06h    get_next
  3106.  07h    get_prev
  3107.  08h    get_greater
  3108.  09h    get_gr_eql
  3109.  0Ah    get_less
  3110.  0Bh    get_less_eq
  3111.  0Ch    get_first
  3112.  0Dh    get_last
  3113.  0Eh    create
  3114.  0Fh    stat
  3115.  10h    extend
  3116.  11h    set_dir: set directory information
  3117.  12h    get_dir: get directory information
  3118.  13h    begin_trans
  3119.  14h    end_trans
  3120.  15h    abort_trans
  3121.  16h    get_pos: get record position number
  3122.  17h    get_direct: get data by sending record position
  3123.  18h    step_next
  3124.  19h    stop
  3125.  1Ah    version
  3126.  1Bh    unlock
  3127.  1Ch    reset
  3128.  1Dh    set owner
  3129.  1Eh    clear owner
  3130.  1Fh    create supplemental index
  3131.  20h    drop supplemental index
  3132.  21h    step first
  3133.  22h    step last
  3134.  23h    step previous
  3135.  24h    get next extended: get multiple records using a filter
  3136.  25h    get previous extended: get multiple records using a filter
  3137.  26h    step next extended: get multiple records using a filter
  3138.  27h    step previous extended: get multiple records using a filter
  3139.  28h    insert extended: insert one or more records
  3140.  31h    ???
  3141.  add 50 (32h) to any "get" operation to just return the key data
  3142.  add 100 (64h) for a single-record wait lock (automatically released on next
  3143.         get)
  3144.  add 200 (C8h) for a single-record nowait lock (nowait lock returns error 54h
  3145.         or 55h if record already locked)
  3146.  add 300 (12Ch) for a multiple-record wait lock (not released until unlock
  3147.         called)
  3148.  add 400 (190h) for a multiple-record nowait lock (nowait lock returns error
  3149.         54h or 55h if record already locked)
  3150.  
  3151. Values for status code:
  3152.  00h    successful
  3153.  01h    invalid operation
  3154.  02h    I/O error
  3155.  03h    file not open
  3156.  04h    key value not found
  3157.  05h    duplicate key value
  3158.  06h    invalid key number
  3159.  07h    different key number
  3160.  08h    invalid positioning
  3161.  09h    end of file
  3162.  0Ah    modifiable key value error
  3163.  0Bh    invalid file name
  3164.  0Ch    file not found
  3165.  0Dh    extended file error
  3166.  0Eh    pre-image open error
  3167.  0Fh    pre-image I/O error
  3168.  10h    expansion error
  3169.  11h    close error
  3170.  12h    disk full
  3171.  13h    unrecoverable error
  3172.  14h    record manager inactive
  3173.  15h    key buffer too short
  3174.  16h    data buffer length overrun
  3175.  17h    position block length
  3176.  18h    page size error
  3177.  19h    create I/O error
  3178.  1Ah    number of keys
  3179.  1Bh    invalid key position
  3180.  1Ch    invalid record length
  3181.  1Dh    invalid key length
  3182.  1Eh    not a Btrieve file
  3183.  1Fh    file already extended
  3184.  20h    extended I/O error
  3185.  22h    invalid extension name
  3186.  23h    directory error
  3187.  24h    transaction error
  3188.  25h    transaction is active
  3189.  26h    transaction control file I/O error
  3190.  27h    end/abort transaction error
  3191.  28h    transaction max files
  3192.  29h    operation not allowed
  3193.  2Ah    incomplete accelerated access
  3194.  2Bh    invalid record address
  3195.  2Ch    null key path
  3196.  2Dh    inconsistent key flags
  3197.  2Eh    access to file denied
  3198.  2Fh    maximum open files
  3199.  30h    invalid alternate sequence definition
  3200.  31h    key type error
  3201.  32h    owner already set
  3202.  33h    invalid owner
  3203.  34h    error writing cache
  3204.  35h    invalid interface
  3205.  36h    variable page error
  3206.  37h    autoincrement error
  3207.  38h    incomplete index
  3208.  39h    expanded memory error
  3209.  3Ah    compression buffer too short
  3210.  3Bh    file already exists
  3211.  3Ch    reject count reached
  3212.  3Dh    work space too small
  3213.  3Eh    incorrect descriptor
  3214.  3Fh    invalid extended insert
  3215.  40h    filter limit reached
  3216.  41h    incorrect field offset
  3217.  4Ah    automatic transaction abort
  3218.  4Eh    deadlock detected
  3219.  50h    conflict
  3220.  51h    lock error
  3221.  52h    lost position
  3222.  53h    read outside transaction
  3223.  54h    record in use
  3224.  55h    file in use
  3225.  56h    file table full
  3226.  57h    handle table full
  3227.  58h    incompatible open mode
  3228.  5Ah    redirected device table full
  3229.  5Bh    server error
  3230.  5Ch    transaction table full
  3231.  5Dh    incompatible lock type
  3232.  5Eh    permission error
  3233.  5Fh    session no longer valid
  3234.  60h    communications environment error
  3235.  61h    data message too small
  3236.  62h    internal transaction error
  3237. --------I-7B---------------------------------
  3238. INT 7B - Eicon Access API (3270/5250 gateways)
  3239. SeeAlso: INT 5C"NetBIOS"
  3240. --------E-7B---------------------------------
  3241. INT 7B - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ3
  3242. Note:    this vector is overwritten when GO32 starts but is not restored by
  3243.       early versions of the extender
  3244. SeeAlso: INT 0B,INT 10/AH=FFh"GO32",INT 7A"GO32",INT 7C"GO32"
  3245. --------A-7B---------------------------------
  3246. INT 7B CR - AutoCAD Device Interface - PRINTER/PLOTTER - SEND PLOTTING DATA
  3247.     AX = data length (0000h-7FFFh)
  3248.     CX:BX -> data to be plotted
  3249.     DX = vertical position of line on page
  3250. Return: nothing
  3251. Notes:    This interrupt is called by AutoCAD to perform its output
  3252.     A data length of 0000h indicates that a blank line is to be output
  3253. SeeAlso: AX=8001h,AX=8002h,INT 78"AutoCAD",INT 7A/AX=0001h"AutoCAD"
  3254. --------A-7B8001-----------------------------
  3255. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - BEGIN PLOT
  3256.     AX = 8001h
  3257.     BX = file level
  3258.         0000h binary file
  3259.         0001h CAD/camera image file
  3260.         0002h installed ADI driver
  3261.     CX = horizontal size in pixels
  3262.     DX = vertical size in pixels
  3263. Return: AX = status (0000h initialization failed, 0001h init successful)
  3264.     BX = allowed output format
  3265.         0000h monochrome
  3266.         0001h color (4 bits per pixel)
  3267. SeeAlso: AX=8002h,AX=8003h,INT 7B"AutoCAD",INT 7C"AutoShade"
  3268. --------A-7B8002-----------------------------
  3269. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - END PLOT
  3270.     AX = 8002h
  3271. SeeAlso: AX=8001h,AX=8003h
  3272. --------A-7B8003-----------------------------
  3273. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - ABORT PLOT
  3274.     AX = 8003h
  3275. SeeAlso: AX=8001h,AX=8002h
  3276. --------r-7C---------------------------------
  3277. INT 7C U - IBM REXX88PC command language
  3278.     ???
  3279. --------E-7C---------------------------------
  3280. INT 7C - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ4
  3281. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  3282.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  3283. Note:    this vector is overwritten when GO32 starts but is not restored by
  3284.       early versions of the extender
  3285. SeeAlso: INT 0C,INT 7B"GO32",INT 7D"GO32"
  3286. --------P-7C---------------------------------
  3287. INT 7C - PRINDIR v8.02+ - API
  3288.     AH = function
  3289.        00h set output to Invisible mode
  3290.        01h set output to LPT1
  3291.        02h set output to LPT2
  3292.        03h set output to LPT3
  3293.        04h set output to COM1
  3294.        05h set output to COM2
  3295.        06h set output to COM3
  3296.        07h set output to COM4
  3297.        08h set output to screen
  3298.        09h set output to file
  3299.        0Ah change file path
  3300.            ES:DI -> new path
  3301.            CX = length of path (max 41, but not range-checked)
  3302.        0Bh change file name
  3303.            ES:DI -> new filename
  3304.            CX = length of new name (max 41, but not range-checked)
  3305.        0Ch set redirected device
  3306.         (01h = LPT1 ... 03h = LPT3, 04h = COM1 ... 07h = COM4)
  3307.        0Dh force buffer dump
  3308.        0Eh set display color
  3309.            AL = new color attribute (see INT 10/AH=08h)
  3310.        0Fh set popup hotkey
  3311.            AL = hotkey scancode
  3312.        10h toggle byte display
  3313.            AL = new state (00h off, 01h on)
  3314.        11h change buffer flush delay
  3315.            AL = timer ticks before flush
  3316. Return: AX = status
  3317.         0000h successful
  3318.         0001h invalid function or nothing in buffer to be dumped
  3319.         (documented as "nonzero = error")
  3320. Program: PRINDIR is a shareware printer-redirection program by J.M. Allen
  3321.       Creations
  3322. Notes:    the installation check consists of testing for the ASCIZ signature
  3323.       "PRINDIR N.NN" (where N.NN is the version number) two bytes beyond
  3324.       the start of the interrupt handler
  3325.     prior versions of PRINDIR used INT 7A instead of INT 7C
  3326. SeeAlso: INT 7A"PRINDIR"
  3327. Index:    hotkeys;PRINDIR
  3328. --------A-7C---------------------------------
  3329. INT 7C - AutoShade v2 - RENDERING HARDCOPY DRIVER
  3330. Note:    this is the default interrupt vector for rendering hardcopy drivers
  3331.       instead of INT 7A used by AutoCAD drivers
  3332. SeeAlso: INT 7A/AX=0001h"AutoCAD"
  3333. --------N-7C---------------------------------
  3334. INT 7C - SK-UPPS/SK-PASSPORT Data Link Interface (DLI) API
  3335. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3336.       which provides an API on top of it Data Link Interface, allowing the
  3337.       use of any of several network transport layers; this product is
  3338.       called SK-PASSPORT in the USA.
  3339. Notes:    The installation check consists of testing for the ASCII signature
  3340.       string "UPPS_DLI" immediately preceding the interrupt handler.
  3341.     To find the service interrupt being used by the driver, an application
  3342.       should scan through the interrupt table until it finds an interrupt
  3343.       vector with the "UPPS_DLI" string.
  3344.     There may be more than one DLI loaded, each having its own service
  3345.       interrupt.
  3346. SeeAlso: AX=0000h,AX=0002h,AX=000Fh
  3347. Index:    installation check;SK-UPPS
  3348. --------N-7C0000-----------------------------
  3349. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER VERSION
  3350.     AX = 0000h
  3351. Return: AH = major DLI version
  3352.     AL = minor DLI version
  3353.     DX = OEM signature (see below)
  3354.     CL = DLI 2.8+ topology: 1=Ethernet, 2=FDDI, 3=Token-Ring
  3355. SeeAlso: AX=0002h,AX=000Bh,AX=000Dh,AX=000Eh
  3356.  
  3357. OEM signatures (defined by SK):
  3358.  0001h experimental
  3359.  3343h 3COM
  3360.  4942h IBM
  3361.  4943h Intellicom
  3362.  494Eh Intel
  3363.  4B4Fh Kodiak
  3364.  4D41h Madge
  3365.  4E45h Novell
  3366.  4F43h Olicom
  3367.  5349h Siemens
  3368.  534Bh Schneider & Koch (SysKonnect)
  3369.  5744h Western Digital
  3370. --------N-7C0001-----------------------------
  3371. INT 7C - SK-UPPS Data Link Interface API - DOWN DRIVER
  3372.     AX = 0001h
  3373. Return: AX = completion code (see below)
  3374. Note:    the DLI will refuse to unload if there are any protocols
  3375.       (see AX=0007h) or clients (see AX=0010h) active.
  3376. Index:    uninstall;SK-UPPS Data Link Interface
  3377.  
  3378. Completion codes:
  3379.  0000h SUCCESS
  3380.  0005h INVALID_MULTICAST
  3381.  0006h BUFFER_TOO_SMALL
  3382.  0007h NO_BUFFERS_LEFT
  3383.  0008h NO_RESOURCES_LEFT
  3384.  000Bh ILLEGAL_PROTOCOL_ID
  3385.  000Ch PROTOCOL_IN_USE
  3386.  000Dh NO_MULTICAST_ADDRESS
  3387.  000Fh PROTOCOLS_ACTIVE
  3388.  0010h CLIENTS_ACTIVE
  3389.  001Bh INVALID_MODE
  3390.  001Ch MODE_NOT_SUPPORTED
  3391.  FFFFh UNKNOWN_SERVICE
  3392. --------N-7C0002-----------------------------
  3393. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATUS
  3394.     AX = 0002h
  3395.     ES:DI -> Status Information Block (SIB) (see AX=000Eh, description of
  3396.           Driver Information Block)
  3397. Return: AX = completion code (see AX=0001h)
  3398. Note:    GET DRIVER INFO (AX=000Eh) should be used instead.
  3399. SeeAlso: AX=0000h,AX=000Bh,AX=000Dh,AX=000Eh
  3400. --------N-7C0003-----------------------------
  3401. INT 7C - SK-UPPS Data Link Interface API - CHANGE DRIVER ADDRESS
  3402.     AX = 0003h
  3403.     ES:DI -> new node address (6 bytes)
  3404. Return: AX = completion code (see AX=0001h)
  3405. Note:    the DLI will refuse to change the address if any protocols
  3406.       (see AX=0007h) are active
  3407. SeeAlso: AX=0001h,AX=000Eh
  3408. --------N-7C0004-----------------------------
  3409. INT 7C - SK-UPPS Data Link Interface API - REQUEST BUFFER
  3410.     AX = 0004h
  3411.     DX = protocol ID (see AX=0007h)
  3412. Return: AX = completion code (see also AX=0001h)
  3413.         0000h successful
  3414.         ES:BX -> Memory Buffer (Mbuf) (see below)
  3415. Note:    if the DLI has no free Mbufs, it will set an internal flag for the
  3416.       protocol and later call the protocol's Event Upcall with
  3417.       EV_BUFFER_AVAILABLE (see AX=0007h) as soon as an Mbuf becomes
  3418.       available.  There will only be one "buffer available" Upcall, even
  3419.       if this function has been called several times before.
  3420. SeeAlso: AX=0005h,AX=0006h,AX=0012h,AX=0013h
  3421.  
  3422. Format of Memory Buffer (Mbuf):
  3423. Offset    Size    Description
  3424.  00h    DWORD    -> NEXT Mbuf (linked list)
  3425.  04h    WORD    OFFSET of actual data within DATA area
  3426.  06h  2 BYTEs    reserved (currently unused)
  3427.  08h    WORD    LENGTH of actual data found in DATA area starting at OFFSET
  3428.  0Ah  2 BYTEs    reserved (currently unused)
  3429.  0Ch    DWORD    -> DATA area (size can be obtained via AX=000Eh call)
  3430.  10h    WORD    PROTOCOL ID of protocol currently "owning" the Mbuf
  3431.  12h    BYTE    IN USE flag; nonzero if Mbuf still in use by DLI (see AX=0006h)
  3432.  13h    BYTE    RECEIVE STATUS (bit 0-7 only; see AX=0007h - Receive Upcall)
  3433. --------N-7C0005-----------------------------
  3434. INT 7C - SK-UPPS Data Link Interface API - RELEASE BUFFER
  3435.     AX = 0005h
  3436.     ES:BX -> Mbuf (see AX=0004h)
  3437. Return: nothing
  3438. SeeAlso: AX=0004h
  3439. --------N-7C0006-----------------------------
  3440. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME
  3441.     AX = 0006h
  3442.     ES:BX -> Mbuf (see AX=0004h)
  3443. Return: nothing
  3444. Notes:    The DLI will send LENGTH bytes found in the Mbuf's DATA area starting
  3445.       at OFFSET. A complete and valid frame must be stored there. The DLI
  3446.       will only copy the current node address (see AX=0003h) to the
  3447.       source node field of the frame's MAC header.
  3448.     On Ethernet, the DLI will always send a minimum of 60 bytes, regardless
  3449.       of the value found in the LENGTH field.
  3450.     This function returns immediately; the DLI will call the protocol's
  3451.       Transmit Upcall (see AX=0007h) when the frame has been sent.
  3452.     The Mbuf's IN USE field will be non-zero until the DLI calls the
  3453.       Transmit Upcall.
  3454. SeeAlso: AX=0002h,AX=0004h,AX=0013h
  3455.  
  3456. Transmit Upcall called with:
  3457.     ES:BX -> Mbuf (NEXT field destroyed)
  3458.     interrupts disabled
  3459. Note:    On FDDI the bytes of the source and destination node fields in the MAC
  3460.       header have been bit-swapped to physical address format.
  3461. --------N-7C0007-----------------------------
  3462. INT 7C - SK-UPPS Data Link Interface API - REGISTER PROTOCOL
  3463.     AX = 0007h
  3464.     ES:BX -> Protocol Control Block (see below)
  3465. Return: AX = completion code (see AX=0001h)
  3466. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3467.       which provides an API on top of its Data Link Interface, allowing the
  3468.       use of any of several network transport layers
  3469. SeeAlso: AX=0008h,AX=000Bh
  3470.  
  3471. Format of Protocol Control Block (PCB):
  3472. Offset    Size    Description
  3473.  00h    WORD    protocol type (high-low)
  3474.  02h    WORD    protocol mode (see below)
  3475.  04h    DWORD    -> Receive Upcall routine
  3476.  08h    DWORD    -> Transmit Upcall routine
  3477.  0Ch    DWORD    -> Event Upcall routine
  3478.  10h    DWORD    -> ASCIZ protocol name (zero if none)
  3479.  14h    WORD    protocol ID will be returned here (always non-zero)
  3480.  
  3481. Bitfields for protocol mode:
  3482.  bit 0    promiscuous mode; protocol receives all frames regardless of their
  3483.       destination (PROTOCOL TYPE must be FFFFh)
  3484.  bit 1    if set, protocol's Event Upcall will be called on entry and exit of the
  3485.       DLI's Interrupt Service Routine (see event codes below)
  3486.  bit 2    DLI 2.2+ hook mode; protocol receives all directed frames destined for
  3487.       this station (PROTOCOL TYPE must be FFFFh)
  3488.  bit 3    DLI 2.3+ receive error frames (only valid in promiscuous mode (bit 0))
  3489.  bit 4-5 DLI 2.5+ frame type:
  3490.     00 Ethernet II; specify type code in PROTOCOL TYPE field (high-low)
  3491.     01 IEEE 802.2; specify Service Access Point (SAP) in MSB
  3492.         (offset 0) of PROCOTOL TYPE field; LSB must be zero
  3493.     10 IEEE 802.2 with SNAP header; specify type code in PROTOCOL TYPE
  3494.         field (high-low)
  3495.     11 reserved (currently unused)
  3496.  bit 6    DLI 2.5+ if set, protocol's Event Upcall will be called with event code
  3497.       EV_BUFFER_WANTED, when DLI runs out of Mbufs
  3498.  bit 7    DLI 2.7+ chain mode; if set, client allows the specified frame type to
  3499.       be shared with other clients
  3500.  bit 8    DLI 2.8+ receive non-LLC frames rather than LLC frames
  3501.  bit 9    DLI 2.8+ receive all multicast frames (see also AX=0009h)
  3502.  bit 10-15 reserved (currently unused; must be zero)
  3503. Notes:    If PROTOCOL TYPE is FFFFh and neither the "promiscuous" nor the "hook"
  3504.       mode bit is set, the protocol receives all frames that did not match
  3505.       any registered frame type (demultiplexor mode).
  3506.     Protocols using "promiscuous", "hook" or "chain" mode should always
  3507.       return from the Receive Upcall with the received Mbuf in ES:BX and the
  3508.       Carry Flag set. The DLI will then pass the Mbuf to the FEED BACK
  3509.       BUFFER function (see AX=000Fh).
  3510.     Some DLIs do not support all or even any of the "promiscuous",
  3511.       "receive non-LLC" and "receive all multicasts" mode bits.
  3512.  
  3513. Receive Upcall called with:
  3514.  ES:BX -> Mbuf
  3515.  AX = receive status (see below; also stored in Mbuf's RECEIVE STATUS field)
  3516.  interrupts disabled
  3517.  
  3518. Bitfields for receive status (reserved bits currently unused and always zero):
  3519.  bit 0-2 reserved
  3520.  bit 3    frame check sequence (FCS) error
  3521.  bit 4    overflow (frame too long)
  3522.  bit 5    framing error
  3523.  bit 6    reserved
  3524.  bit 7    non-LLC frame (see bit 8 of PCB's protocol mode field)
  3525.  bit 8-15 reserved
  3526. Notes:    The protocol's Receive Upcall routine will be called whenever a frame
  3527.       matching the specified frame type is received. A received frame is
  3528.       passed to the protocol in the Mbuf's DATA area at OFFSET and its size
  3529.       is LENGTH bytes.
  3530.     The receive status passed to the Receive Upcall in register AL is
  3531.       always zero, except for protocols using "non-LLC" mode (bit 8 of PCB's
  3532.       protocol mode field) or "promiscuous" mode together with "receive
  3533.       error frames" (bits 0 & 3).
  3534.     Upcalls are FAR routines and must return with a RET FAR. If the Carry
  3535.       Flag is set on return from a Receive or Transmit Upcall, then ES:BX
  3536.       must point to an Mbuf, which the DLI will then pass to the RELEASE
  3537.       BUFFER function (see AX=0005h). See also notes for PROTOCOL MODE.
  3538.  
  3539. Event Upcall called with:
  3540.  AX = event code (see below)
  3541. Note:    All Event Upcalls may be ignored by the protocol.
  3542.  
  3543. Event codes found in register AX on Event Upcall:
  3544.  00h EV_BUFFER_AVAILABLE  client may now call REQUEST BUFFER (AX=0004h)
  3545.  01h EV_ISR_START    start of Interrupt Service Routine
  3546.  02h EV_ISR_END        end of ISR (see bit 1 in PCB's protocol mode field)
  3547.  03h EV_BUFFER_WANTED    DLI temporarily out of Mbufs
  3548.  04h EV_NETWORK_STATUS    DLI 2.8+ network status (DX=status; see below)
  3549.  05h EV_IO_CONTROL    DLI 2.8+ I/O control (DX=subfunction; see AX=0016h)
  3550.  
  3551. Bitfields for EV_NETWORK_STATUS in register DX:
  3552.     Token-Ring        FDDI
  3553.  bit 15 SIGNAL_LOSS        SIGNAL_LOSS
  3554.  bit 14 HARD_ERROR        HARD_ERROR
  3555.  bit 13 SOFT_ERROR        SOFT_ERROR
  3556.  bit 12 TRANSMIT_BEACON        TRANSMIT_BEACON
  3557.  bit 11 LOBE_WIRE_FAULT        PATH_TEST_FAILED
  3558.  bit 10 AUTO_REMOVAL        SELF_TEST_REQUIRED
  3559.  bit 9    reserved        reserved
  3560.  bit 8    REMOVE_RECEIVED        REMOTE_DISCONNECT
  3561.  bit 7    COUNTER_OVERFLOW    reserved
  3562.  bit 6    SINGLE_STATION        DUPLICATE_ADDRESS
  3563.  bit 5    RING_RECOVERY        NO_RING_OP_STATUS
  3564.  bit 4    reserved        VERSION_MISMATCH
  3565.  bit 3    reserved        STUCK_BYPASS
  3566.  bit 2    reserved        FDDI_EVENT
  3567.  bit 1    reserved        RING_OP_CHANGE
  3568.  bit 0    reserved        reserved
  3569. Note:    EV_NETWORK_STATUS is not supported on Ethernet
  3570. --------N-7C0008-----------------------------
  3571. INT 7C - SK-UPPS Data Link Interface API - DISABLE PROTOCOL
  3572.     AX = 0008h
  3573.     BX = protocol ID (see AX=0007h)
  3574. Return: AX = completion code (see AX=0001h)
  3575. Note:    the DLI will handle any Mbufs given to TRANSMIT FRAME (AX=0006h) as if
  3576.       they had been given to TRANSMIT FRAME RELEASE (AX=0013h).
  3577.     all multicast addresses registered for this protocol will be disabled.
  3578.     after this function returns, the protocol's Upcall routines will no
  3579.       longer be called.
  3580. SeeAlso: AX=0007h,AX=000Bh
  3581. --------N-7C0009-----------------------------
  3582. INT 7C - SK-UPPS Data Link Interface API - REGISTER MULTICAST
  3583.     AX = 0009h
  3584.     BX = protocol ID (see AX=0007h)
  3585.     ES:DI -> multicast address (6 bytes)
  3586. Return: AX = completion code (see AX=0001h)
  3587. Notes:    The broadcast address is always enabled.
  3588.     Set bit 9 of PCB's protocol mode field in REGISTER PROTOCOL call
  3589.       (AX=0007h) to receive all multicast frames.
  3590. SeeAlso: AX=000Ah,AX=0014h
  3591. --------N-7C000A-----------------------------
  3592. INT 7C - SK-UPPS Data Link Interface API - DISABLE MULTICAST
  3593.     AX = 000Ah
  3594.     BX = protocol ID (see AX=0007h)
  3595.     ES:DI -> multicast address (6 bytes)
  3596. Return: AX = completion code (see AX=0001h)
  3597. SeeAlso: AX=0009h,AX=0014h
  3598. --------N-7C000B-----------------------------
  3599. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL LIST
  3600.     AX = 000Bh
  3601.     ES:DI -> protocol ID buffer
  3602.     CX = number of 2-byte protocol IDs that may be stored in buffer
  3603. Return: AX = completion code (see AX=0001h)
  3604.     CX = number of active protocols (regardless of value returned in AX)
  3605.     protocol ID buffer filled with active protocol IDs
  3606. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3607.       which provides an API on top of its Data Link Interface, allowing the
  3608.       use of any of several network transport layers
  3609. Note:    If the buffer supplied is too small, CX still contains the total number
  3610.       of active protocols and the buffer has been filled until full.
  3611. SeeAlso: AX=000Ch,AX=0014h
  3612. --------N-7C000C-----------------------------
  3613. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL STATUS
  3614.     AX = 000Ch
  3615.     BX = protocol ID (see AX=000Bh)
  3616.     ES:DI -> Protocol Status Block (see below)
  3617. Return: AX = completion code (see AX=0001h)
  3618. SeeAlso: AX=000Bh,AX=0014h
  3619.  
  3620. Format of Protocol Status Block (PSB):
  3621. Offset    Size    Description
  3622.  00h    DWORD    -> ASCIZ protocol name
  3623.  04h    WORD    protocol mode (see AX=0007h)
  3624.  06h    WORD    protocol type (see AX=0007h)
  3625.  08h    WORD    number of registered multicasts (see AX=0009h, AX=0014h)
  3626. --------N-7C000D-----------------------------
  3627. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATISTICS
  3628.     AX = 000Dh
  3629.     BX = flag: 0=don't clear statistics, 1=clear statistics
  3630.     ES:DI -> Statistics Data Block (see below)
  3631. Return: AX = completion code (see AX=0001h)
  3632. SeeAlso: AX=0002h,AX=0015h
  3633.  
  3634. Format of Statistics Data Block (SDB):
  3635. Offset    Size    Description
  3636.  00h    DWORD    node uptime in ticks (1/18.21 sec.)
  3637.  04h    DWORD    bytes received
  3638.  08h    DWORD    bytes transmitted
  3639.  0Ch    DWORD    frames received
  3640.  10h    DWORD    frames transmitted
  3641.  14h    DWORD    multicast bytes received
  3642.  18h    DWORD    multicast frames received
  3643.  1Ch    DWORD    unrecognized frames
  3644.  20h    WORD    missed frames
  3645.  22h    WORD    frame check sequence (FCS) errors
  3646.  24h    WORD    framing errors
  3647.  26h    WORD    babbling errors
  3648.  28h    WORD    late collision errors
  3649.  2Ah    WORD    loss of carrier errors
  3650.  2Ch    WORD    16 retries failed errors
  3651.  2Eh    WORD    overflow errors
  3652. Note:    fields 26h through 2Ch are always zero, except in some very old
  3653.       versions of the DLI.    Use GET MEDIA STATISTICS (AX=0015h) to get
  3654.       more detailed information.
  3655. --------N-7C000E-----------------------------
  3656. INT 7C - SK-UPPS Data Link Interface API - DLI 2.5+ - GET DRIVER INFO
  3657.     AX = 000Eh
  3658.     ES:DI -> Driver Information Block (see below)
  3659.     BX = offset of 1st field within DIB to be returned
  3660.     CX = number of bytes to be returned
  3661. Return: AX = completion code (see AX=0001h)
  3662.     CX = number of bytes copied (regardless of value returned in AX)
  3663. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3664.       which provides an API on top of its Data Link Interface, allowing the
  3665.       use of any of several network transport layers
  3666. SeeAlso: AX=0000h,AX=0002h,AX=000Bh,AX=000Dh,AX=0015h
  3667.  
  3668. Format of Driver Information Block (DIB):
  3669. Offset    Size    Description
  3670.  00h  6 BYTEs    physical node address (from adapter's ROM)
  3671.  06h  6 BYTEs    current node address (see AX=0003h)
  3672.  0Ch    BYTE    adapter id (defined by OEM)
  3673.  0Dh    BYTE    IRQ line (FFh if none)
  3674.  0Eh    DWORD    -> shared memory (zero if none)
  3675.  12h    DWORD    size of shared memory (zero if none)
  3676.  16h    WORD    base I/O port (zero if none)
  3677.  18h    BYTE    DMA line (FFh if none)
  3678.  19h    BYTE    DLI 2.4+ topology (see AX=0000h)
  3679.  1Ah    WORD    size of an Mbuf's DATA area (see AX=0004h)
  3680.  1Ch  2 BYTEs    reserved (currently unused)
  3681.  1Eh    WORD    total number of Mbufs the DLI has
  3682.  20h    WORD    maximum number of Mbufs that can be allocated via REQUEST
  3683.          BUFFER (AX=0004h) and SYNC REQUEST BUFFER (AX=0012h)
  3684.  ---- end of Status Information Block returned by GET DRIVER STATUS (AX=0002h)
  3685.  22h    DWORD    -> ASCIZ adapter name
  3686.  26h    WORD    number of I/O ports used (zero if none)
  3687.  28h    DWORD    line speed in bits/sec.
  3688. --------N-7C000F-----------------------------
  3689. INT 7C - SK-UPPS Data Link Interface API - FEED BACK BUFFER
  3690.     AX = 000Fh
  3691.     ES:BX -> Mbuf
  3692. Return: nothing
  3693. Notes:    A protocol may call this function instead of returning the Mbuf
  3694.       directly from the Receive Upcall if it is running in "promiscuous",
  3695.       "hook" or "chain" mode.
  3696. SeeAlso: AX=0007h
  3697. --------N-7C0010-----------------------------
  3698. INT 7C - SK-UPPS Data Link Interface API - CLIENT HOOK
  3699.     AX = 0010h
  3700. Return: nothing
  3701. Notes:    An application having no active protocols may call this function to
  3702.       prevent the DLI from unloading.
  3703. SeeAlso: AX=0001h,AX=0011h
  3704. --------N-7C0011-----------------------------
  3705. INT 7C - SK-UPPS Data Link Interface API - CLIENT UNHOOK
  3706.     AX = 0011h
  3707. Return: nothing
  3708. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3709.       which provides an API on top of its Data Link Interface, allowing the
  3710.       use of any of several network transport layers
  3711. SeeAlso: AX=0010h
  3712. --------N-7C0012-----------------------------
  3713. INT 7C - SK-UPPS Data Link Interface API - SYNC REQUEST BUFFER
  3714.     AX = 0012h
  3715.     DX = protocol ID (see AX=0007h)
  3716. Return: AX = completion code (see AX=0001h)
  3717.     if AX=0000h: ES:BX -> Mbuf (see AX=0004h)
  3718. Note:    If the protocol wants to be informed when an Mbuf becomes available,
  3719.       REQUEST BUFFER (AX=0004h) should be used instead.
  3720. SeeAlso: AX=0004h,AX=0005h,AX=0006h,AX=0013h
  3721. --------N-7C0013-----------------------------
  3722. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME RELEASE
  3723.     AX = 0013h
  3724.     ES:BX -> Mbuf (see AX=0004h)
  3725. Return: nothing
  3726. Notes:    Returns immediately; The protocol's Transmit Upcall will NOT be called.
  3727.     The Mbuf may no more be used by the protocol in any way (i.e. the
  3728.       Mbuf's IN USE field may not be polled).
  3729. SeeAlso: AX=0004h,AX=0013h
  3730. --------N-7C0014-----------------------------
  3731. INT 7C - SK-UPPS Data Link Interface API - GET MULTICAST LIST
  3732.     AX = 0014h
  3733.     BX = protocol ID (see AX=000Bh)
  3734.     ES:DI -> multicast address buffer
  3735.     CX = number of 6-byte multicast addresses that may be stored in buffer
  3736. Return: AX = completion code (see AX=0001h)
  3737.     CX = number of registered multicast addresses for this protocol
  3738.       (regardless of value returned in AX)
  3739.     multicast address buffer filled with multicast addresses registered for
  3740.       this protocol
  3741. Note:    If the buffer supplied is too small, CX still contains the total number
  3742.       of registered multicast addresses for this protocol and the buffer has
  3743.       been filled until full.
  3744. SeeAlso: AX=000Bh,AX=0009h,AX=000Ch
  3745. --------N-7C0015-----------------------------
  3746. INT 7C - SK-UPPS Data Link Interface API - DLI 2.6+ - GET MEDIA STATISTICS
  3747.     AX = 0015h
  3748.     ES:DI -> media-specific statistics buffer (see below)
  3749.     BX = offset of 1st field within MSS to be returned
  3750.     CX = number of bytes to be returned
  3751. Return: AX = completion code (see AX=0001h)
  3752.     CX = number of bytes copied (regardless of value returned in AX)
  3753. Note:    not supported by all DLIs (will return AX=FFFFh if not supported).
  3754. SeeAlso: AX=0000h,AX=000Dh
  3755.  
  3756. Format of media-specific statistics for Ethernet:
  3757. Offset    Size    Description
  3758.  00h    DWORD    alignment errors
  3759.  04h    DWORD    frame check sequence (FCS) errors
  3760.  08h    DWORD    single collision frames
  3761.  0Ch    DWORD    multiple collision frames
  3762.  10h    DWORD    signal quality error (SQE) test errors
  3763.  14h    DWORD    deferred transmissions
  3764.  18h    DWORD    late collisions
  3765.  1Ch    DWORD    excessive collisions
  3766.  20h    DWORD    internal MAC transmit errors
  3767.  24h    DWORD    carrier sense errors
  3768.  28h    DWORD    excessive deferrals
  3769.  2Ch    DWORD    frame too longs
  3770.  30h    DWORD    in range length errors
  3771.  34h    DWORD    out of range length fields
  3772.  38h    DWORD    internal MAC receive errors
  3773.  
  3774. Format of media-specific statistics for FDDI:
  3775. Offset    Size    Description
  3776.  00h    DWORD    SMT operating version id (refer to ANSI 7.1.2.2)
  3777.  04h    DWORD    SMT CF state: 1=Isolated, 2= Wrap_S, 3=Wrap_A, 4=Wrap_B,
  3778.          5=Wrap_AB, 6=Thru (refer to ANSI SMT 9.7.4.3)
  3779.  08h    DWORD    SMT frames sent
  3780.  0Ch    DWORD    SMT frames received
  3781.  10h    DWORD    SMT ring up count
  3782.  14h  6 BYTEs    MAC upstream neighbour
  3783.  1Ah  6 BYTEs    MAC downstream neighbour
  3784.  20h    DWORD    MAC frame counter (refer to ANSI MAC 2.2.1)
  3785.  24h    DWORD    MAC error counter ( " )
  3786.  28h    DWORD    MAC lost counter ( " )
  3787.  2Ch    BYTE    port 1 link error estimate (ranges from 10**-4 to 10**-15 and
  3788.          is reported as the absolute value of the exponent)
  3789.  2Dh    BYTE    port 2 link error estimate ( " )
  3790.  2Eh  2 BYTEs    reserved (currently unused)
  3791.  30h    DWORD    attachment class: 1=single-attachment (S PORT),
  3792.          2=dual-attachment (A/B PORT pairs), 3=concentrator (M PORTs)
  3793.  34h    DWORD    attachment optical bypass present: 1=true, 2=false
  3794.  
  3795. Format of media-specific statistics for Token-Ring:
  3796. Offset    Size    Description
  3797.  00h  6 BYTEs    upstream neighbour
  3798.  06h    WORD    local ring number
  3799.  08h    DWORD    ring up count
  3800.  0Ch    DWORD    signal loss errors
  3801.  10h    DWORD    lobe wire faults
  3802.  14h    DWORD    ring recovery count
  3803.  18h    DWORD    line errors
  3804.  1Ch    DWORD    burst errors
  3805.  20h    DWORD    ARI/FCI errors
  3806.  24h    DWORD    lost frame errors
  3807.  28h    DWORD    receive congestion errors
  3808.  2Ch    DWORD    frame copied errors
  3809.  30h    DWORD    token errors
  3810.  34h    DWORD    DMA bus errors
  3811.  38h    DWORD    DMA parity errors
  3812.  3Ch    DWORD    receive overflow errors
  3813. --------N-7C0016-----------------------------
  3814. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - DRIVER I/O CONTROL
  3815.     AX = 0016h
  3816.     DX = subfunction; bits 14-15 specify direction of I/O:
  3817.         00 no data at all (ES:BX undefined)
  3818.         01 driver -> application (GET)
  3819.         10 application -> driver (SET)
  3820.         11 both directions (GET/SET)
  3821.     ES:BX -> I/O buffer (optional)
  3822.     CX = size of buffer (if ES:BX valid)
  3823. Return: AX = completion code; defined by OEM
  3824. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3825.       which provides an API on top of its Data Link Interface, allowing the
  3826.       use of any of several network transport layers
  3827. Notes:    not supported by all DLIs (will return AX=FFFFh if not supported)
  3828.     subfunction codes are defined by OEMs
  3829. SeeAlso: AX=0001h
  3830. --------N-7C0017-----------------------------
  3831. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - INTERRUPT REQUEST
  3832.     AX = 0017h
  3833. Return: AX = completion code (see AX=0001h)
  3834. Notes:    not supported by all DLIs (will return AX=FFFFh, if not supported).
  3835.     must be called with interrupts disabled; when the client re-enables
  3836.       interrupts, an interrupt will be generated and reported to the client
  3837.       through an Event Upcall (see AX=0007h [EV_ISR_START/EV_ISR_END])
  3838. SeeAlso: AX=0007h
  3839. --------t-7D---------------------------------
  3840. INT 7D - [obsoleted proposal] - ALTERNATE MULTIPLEX INTERRUPT
  3841. Note:    this interface has been moved to INT 2D; there are no known
  3842.       implementations on INT 7D
  3843. SeeAlso: INT 2D,INT 2F
  3844. --------S-7D---------------------------------
  3845. INT 7D U - YTERM 1.4 - CLOCK SUPPORT
  3846. SeeAlso: INT 7E"YTERM"
  3847. --------E-7D---------------------------------
  3848. INT 7D - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ5
  3849. Note:    this vector is overwritten when GO32 starts but is not restored by
  3850.       early versions of the extender
  3851. SeeAlso: INT 0D,INT 7C"GO32",INT 7E"GO32"
  3852. --------U-7D---------------------------------
  3853. INT 7D - HyperPAD v2.2 - API ACCESS
  3854. Note:    this vector is hooked but immediately passed on (without checking
  3855.       whether the previous handler was 0000h:0000h).  The sole purpose of
  3856.       this vector is to provide the address of the data area described
  3857.       below.
  3858.  
  3859. Format of HyperPAD data area:
  3860. Offset    Size    Description
  3861.  -16h    DWORD    pointer to ??? FAR function
  3862.  -12h    DWORD    pointer to callback setting function
  3863.         [C calling conventions, (*callback)(int (_loadds far *)()) ]
  3864.  -0Eh 6 BYTEs    signature "BRC001"
  3865.  -08h    DWORD    pointer to previous INT 7D handler
  3866.  -04h    DWORD    pointer to ??? data
  3867.  00h        HyperPAD INT 7D handler
  3868. ----------7D---------------------------------
  3869. INT 7D - IBM DOS 6.1 E.EXE - ???
  3870. Note:    E.EXE checks whether this interrupt is in use (not 0000h:0000h),
  3871.       and if it is used, attempts to load E55VGA.EX instead of the 
  3872.       default E.EX overlay.     However, E55VGA.EX is not included in
  3873.       IBM DOS 6.1.
  3874. ----------7D00-------------------------------
  3875. INT 7D - SCSILink - RESET SCSI BUS
  3876.     AH = 00h
  3877. Program: SCSILink is a TSR by Cross Products Ltd which allows its PC-hosted
  3878.       cross assemblers and similar products to communicate with Cross
  3879.       Products hardware debuggers
  3880. Desc:    reset all devices on the SCSI bus
  3881. Note:    the installation check is the signature "SCSILINK" immediately prior
  3882.       to the interrupt handler
  3883. Index:    installation check;SCSILink
  3884. ----------7D01-------------------------------
  3885. INT 7D - SCSILink - CONNECT TO TARGET
  3886.     AH = 01h
  3887.     AL = target ID
  3888. Return: CF clear if successful
  3889.     CF set on error
  3890.         AL = initiator error
  3891.         AH = target error
  3892. Desc:    arbitrate the use of the bus and select the specified target device
  3893. ----------7D02-------------------------------
  3894. INT 7D - SCSILink - SEND COMMAND
  3895.     AH = 02h
  3896.     ES:BX -> parameter block (see below)
  3897. Return: CF clear if successful
  3898.     CF set on error
  3899.         AL = initiator error
  3900.         AH = target error
  3901. Desc:    send the specified command block to the target device and perform any
  3902.       related I/O
  3903.  
  3904. Format of parameter block:
  3905. Offset    Size    Description
  3906.  00h    DWORD    size of command block
  3907.  04h    DWORD    address of command block (see below)
  3908.  08h    DWORD    size of buffer
  3909.  0Ch    DWORD    address of buffer
  3910.  
  3911. Format of command block:
  3912. Offset    Size    Description
  3913.  00h        info not yet available
  3914. ----------7D03-------------------------------
  3915. INT 7D - SCSILink - SET TIMEOUT
  3916.     AH = 03h
  3917.     AL = timeout selector (see below)
  3918.     BX = new value in 55ms ticks
  3919. Desc:    change an internal timeout value to allow communication with very
  3920.       slow targets
  3921.  
  3922. Values for timeout selector:
  3923.  00h    time to wait for bus (default 18)
  3924.  01h    time to wait for new phase (default 5)
  3925.  02h    maximum time to send/receive block (default 18)
  3926.  03h    time to wait for reselect (default 180)
  3927. ----------7D04-------------------------------
  3928. INT 7D - SCSILink - GET ERROR STRING
  3929.     AH = 04h
  3930.     AL = error number
  3931. Return: ES:BX -> ASCIZ error string for error number
  3932. ----------7D05-------------------------------
  3933. INT 7D - SCSILink - GET ADDRESS
  3934.     AH = 05h
  3935. Return: AL = DMA channel
  3936.     AH = initiator ID
  3937.     BX = card address
  3938. Desc:    determine the current hardware configuration
  3939. ----------7D06-------------------------------
  3940. INT 7D - SCSILink - PUT DATA
  3941.     AH = 06h
  3942.     CX = number of bytes to store (0001h-0100h)
  3943.     ES:BX -> data to be saved
  3944. Return: CF clear if successful
  3945.     CF set on error
  3946.         AL = error code (01h = too much data)
  3947. Note:    the specified data is stored in SCSILink's PSP
  3948. SeeAlso: AH=07h
  3949. ----------7D07-------------------------------
  3950. INT 7D - SCSILink - GET DATA
  3951.     AH = 07h
  3952.     CX = number of bytes to retrieve (0001h-0100h)
  3953.     ES:BX -> buffer for data
  3954. Return: CF clear if successful
  3955.     CF set on error
  3956.         AL = error code (01h = too much data)
  3957. Note:    retrieve data previously stored with AH=06h
  3958. SeeAlso: AH=06h
  3959. ----------7D08-------------------------------
  3960. INT 7D - SCSILink - TERMINATE SESSION
  3961.     AH = 08h
  3962. Desc:    indicate to any other programs that intercept INT 7D that the program
  3963.       has finished with the link
  3964. Note:    the program should call this function even if a SCSI error caused its
  3965.       termination
  3966. ----------7D09-------------------------------
  3967. INT 7D - SCSILink - POLL REQUEST
  3968.     AH = 09h
  3969.     AL = target ID
  3970. Return: AL = status
  3971.         FEh resident driver experienced SCSI error
  3972.         FFh resident driver handleded event
  3973. Desc:    give any drivers chained onto INT 7D a chance to handle an exception
  3974.       not specifically handled by the calling program
  3975. Notes:    this service exists so that resident disk servers, etc. can continue
  3976.       running even while debuggers and profilers are active
  3977.     the resident driver assumes that a connection has been established and
  3978.       attempts to leave the target connected
  3979. --------*-7E---------------------------------
  3980. INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY
  3981. --------S-7E---------------------------------
  3982. INT 7E U - YTERM 1.4 - ???
  3983. SeeAlso: INT 7D"YTERM",INT 7F"YTERM"
  3984. --------E-7E---------------------------------
  3985. INT 7E - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ6
  3986. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  3987.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  3988. Note:    this vector is overwritten when GO32 starts but is not restored by
  3989.       early versions of the extender
  3990. SeeAlso: INT 0E,INT 7D"GO32",INT 7F"GO32"
  3991. --------m-7E5857BL57-------------------------
  3992. INT 7E - XLOAD - INSTALLATION CHECK
  3993.     AX = 5857h
  3994.     BL = 57h
  3995. Return: AX = 0000h if installed
  3996. Program: XLOAD is the LOADHIGH-equivalent from Helix Software's Netroom
  3997. SeeAlso: AX=5857h/BL=5Ah,AX=5857h/BL=5Bh
  3998. --------m-7E5857BL5A-------------------------
  3999. INT 7E - XLOAD - GET ???
  4000.     AX = 5857h
  4001.     BL = 5Ah
  4002. Return: AX = 0000h
  4003.     CX = ???
  4004.     DS:SI -> ???
  4005. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Bh
  4006. --------m-7E5857BL5B-------------------------
  4007. INT 7E - XLOAD - GET XLOAD MEMORY SIZE
  4008.     AX = 5857h
  4009.     BL = 5Bh
  4010. Return: AX = 0000h
  4011.     CX = segment of XLOAD TSR
  4012.     DX = size of memory block in which XLOAD TSR is located
  4013. SeeAlso: AX=5857h/BL=57h/AX=5857h/BL=5Ah
  4014. --------V-7F---------------------------------
  4015. INT 7F - IBM XGA - ???
  4016. --------V-7F---------------------------------
  4017. INT 7F - Halo88 - API
  4018.     BX = function
  4019.         64h arc
  4020.         65h bar
  4021.         66h box
  4022.         67h circle
  4023.         68h clr
  4024.         69h default hatch style
  4025.         6Ah default line style
  4026.         6Bh delhcur
  4027.         6Ch delln / deltcur
  4028.         6Dh ellipse
  4029.         6Eh fill
  4030.         6Fh flood
  4031.         70h flood2
  4032.         71h init graphics
  4033.         72h init hcur
  4034.         73h init marker
  4035.         74h init tcur
  4036.         75h inqarc
  4037.         76h inqbknd
  4038.         77h inqclr
  4039.         78h inqerr
  4040.         79h inqgcur
  4041.         7Ah inqhcur
  4042.         7Bh inqmarker
  4043.         7Dh inqtcur
  4044.         7Eh inqtext
  4045.         7Fh lnabs
  4046.         80h lnrel
  4047.         81h markerabs
  4048.         82h markerrel
  4049.         83h moveabs
  4050.         84h movehcurabs
  4051.         85h movehcurrel
  4052.         86h moverel
  4053.         87h movetcurabs
  4054.         88h movetcurrel
  4055.         89h movefrom
  4056.         8Ah moveto
  4057.         8Bh pie
  4058.         8Ch polylnabs
  4059.         8Dh polylnrel
  4060.         8Eh ptabs
  4061.         8Fh ptrel
  4062.         91h setasp
  4063.         92h set color
  4064.         93h set font
  4065.         94h set hatch style
  4066.         95h set line style
  4067.         97h settext
  4068.         98h set text color
  4069.         99h btext
  4070.         9Ah setseg
  4071.         9Bh display
  4072.         9Ch setscreen
  4073.         9Eh close graphics
  4074.         9Fh ftinit
  4075.         A0h ftlocate
  4076.         A1h ftext
  4077.         A5h set viewport
  4078.         A6h set window
  4079.         A7h set world
  4080.         AAh ftcolor
  4081.         ACh initlp
  4082.         ADh inqasp
  4083.         AEh inqdev
  4084.         AFh inqdisplay
  4085.         B0h inqft
  4086.         B1h inqftcolor
  4087.         B2h inqinterlace
  4088.         B3h inqlpa
  4089.         B4h inqlpg
  4090.         B5h inqmode
  4091.         B6h inqscreen
  4092.         B7h inqversion
  4093.         B8h roam
  4094.         B9h scroll
  4095.         BAh setieee
  4096.         BBh set interlace
  4097.         BCh shift
  4098.         BDh start graphics
  4099.         BEh vpan
  4100.         CBh gwrite
  4101.         CCh gread
  4102.         CDh setxor
  4103.         CEh rbox
  4104.         CFh rcir
  4105.         D0h rlnabs
  4106.         D1h rlnrel
  4107.         D2h delbox
  4108.         D3h delcir
  4109.         D5h setseg2
  4110.         DCh worldoff
  4111.         DDh mapwtod
  4112.         DEh mapdtow
  4113.         DFh mapwton
  4114.         E0h mapntow
  4115.         E1h mapdton
  4116.         E2h mapntod
  4117.         E3h inqworld
  4118.         E4h inqviewport
  4119.         E5h set line width
  4120.         E6h lnjoint
  4121.         E7h set locator
  4122.         E8h read locator
  4123.         E9h setdev
  4124.         EBh setstext
  4125.         ECh setstclr
  4126.         EDh setstang
  4127.         EEh stext
  4128.         EFh inqstext
  4129.         F0h setdegree
  4130.         F1h inqstsize
  4131.         F2h polyfabs
  4132.         F3h polyfrel
  4133.         F4h inqdrange
  4134.         F5h inqstang
  4135.         F6h orglocator
  4136.         F7h inqlocator
  4137.         F8h inqarea
  4138.         F9h setipal
  4139.         FAh setborder
  4140.         FBh inqcrange
  4141.         FEh setclip
  4142.         FFh fcir
  4143.            100h setcrange
  4144.            101h setdrange
  4145.            102h setlattr
  4146.            103h polycabs
  4147.            104h polycrel
  4148.            108h memcom
  4149.            109h memexp
  4150.            10Ah memmov
  4151.            10Eh movefx
  4152.            10Fh movetx
  4153.            110h inqrgb
  4154.            111h save image
  4155.            112h restore image
  4156.            113h setapal
  4157.            114h setxpal
  4158.            118h inqtsize
  4159.            12Eh gprint
  4160.            130h setprn
  4161.            131h setpattr
  4162.            133h setbattr
  4163.            135h pexpand
  4164.            136h ptnorm
  4165.            137h pfnorm
  4166.            13Bh inqprn
  4167.            13Ch lopen
  4168.            13Dh lclose
  4169.            13Eh lappend
  4170.            13Fh lrecord
  4171.            140h lswitch
  4172.            142h inqfun
  4173.            15Dh lsetup
  4174.            15Eh lrest
  4175.            15Fh lsave
  4176.     additional parameters on stack
  4177. Return: ???
  4178. Program: Halo88 is a suite of graphics routines
  4179. Note:    according to Stuart Kemp, the code appears to make no provisions for
  4180.        chaining
  4181. --------N-7F---------------------------------
  4182. INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
  4183.     AL = request ID
  4184.         01h "Request"/"RequestDirect"
  4185.         ES:BX -> pRq
  4186.         DX ignored
  4187.         04h "Wait"
  4188.         ES:BX -> ppMsgRet
  4189.         DX = exchange
  4190.         05h "AllocExch"
  4191.         ES:BX -> pExchRet
  4192.         06h "DeAllocExch"
  4193.         DX = exchange
  4194.         07h "Check"
  4195.         ES:BX -> ppMsgRet
  4196.         DX = exchange
  4197.     CX = 4354h ('CT')
  4198. Return: AX = status
  4199.         0000h successful
  4200. --------S-7F---------------------------------
  4201. INT 7F - Telebit ACS SERIAL I/O
  4202.     ES:SI-> parameter block
  4203. Return: CF set on error
  4204.     CF clear on success
  4205. Notes:    the signature "PDGATEWRKSTNIF" appears just prior to the interrupt
  4206.       handler; this serves as the installation check
  4207. Index:    installation check;Telebit ACS Serial I/O
  4208.  
  4209. Format of Telebit ACS parameter block:
  4210. Offset    Size    Description
  4211.  00h    BYTE    command (see below)
  4212.  01h    BYTE    gateway number
  4213.  02h    BYTE    reserved
  4214.  03h    BYTE    port
  4215.  04h 17 BYTEs    auxiliary buffer
  4216.  15h    BYTE    session
  4217.  16h    WORD    count of bytes passed to API
  4218.  18h    DWORD    buffer pointer passed to/from API
  4219.  1Ch    WORD    count of bytes passed from API
  4220.  1Eh    BYTE    return code (see below)
  4221.  
  4222. Values for command:
  4223.  3Ch    status
  4224.  3Dh    connect
  4225.  3Eh    disconnect
  4226.  3Fh    read
  4227.  40h    data/command write
  4228.  41h    clear receive buffer
  4229.  42h    get configuration
  4230.  43h    get receiver status
  4231.  44h    raw write
  4232.  45h    search servers
  4233.  46h    set transmit buffer size
  4234.  
  4235. Values for return code:
  4236.  00h    success
  4237.  01h    invalid session
  4238.  05h    servername invalid
  4239.  06h    NetWare fileserver bindery is locked
  4240.  07h    communication server not active
  4241.  08h    general failure in NetWare fileserver
  4242.  09h    not logged into a fileserver
  4243.  10h    connection table full
  4244.  11h    no response from communication server
  4245.  12h    connection attempt terminated abnormally
  4246.  13h    connection refused - no sessions available
  4247.  14h    gateway number/port already in use
  4248.  15h    invalid connection response
  4249.  16h    port invalid
  4250.  17h    incorrect version in server response
  4251.  18h    gateway number/port combination not configured
  4252.  19h    initialization has not been completed
  4253.  20h    no more sockets are available
  4254.  21h    no active poolname
  4255.  23h    FATAL internal interface error
  4256.  24h    registration of host workstation failed - name is already in use
  4257.  25h    registration of host workstation failed - workstation name table full
  4258.  26h    registration of host workstation failed - only one session may be
  4259.       registered for dial-in
  4260.  FFh    Telebit ACS API is busy - retry later
  4261. --------N-7F---------------------------------
  4262. INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE
  4263. Notes:    the installation check consists of checking for the signature "Lynn"
  4264.       in the four bytes preceding the interrupt handler; if present, the
  4265.       current program is running as a DOS task on a non-dedicated NetWare
  4266.       2.x file server.
  4267.     Before placing the server into "console" mode, it is recommended that
  4268.       NetWare broadcast messages be disabled with INT 21/AX=DE00h.
  4269. SeeAlso: INT 21/AX=DE00h
  4270. Index:    installation check;non-dedicated NetWare server
  4271. --------S-7F---------------------------------
  4272. INT 7F U - YTERM - ???
  4273. SeeAlso: INT 7E"YTERM"
  4274. --------E-7F---------------------------------
  4275. INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7
  4276. Note:    this vector is overwritten when GO32 starts but is not restored by
  4277.       early versions of the DOS extender
  4278. SeeAlso: INT 0F,INT 7E"GO32"
  4279. ----------7F---------------------------------
  4280. INT 7F - Canon IXHND2 Scanner Interface
  4281. --------N-7F---------------------------------
  4282. INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)
  4283. Notes:    the words at C800h:0000h and C800h:0002h will both be 584Eh if the
  4284.       MW386 multitasking system is present (i.e. signature "NXNX")
  4285.     NTNX allows its API to be placed on a different interrupt than 7Fh at
  4286.       load time.  To determine the actual vector used, open the device
  4287.       "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with
  4288.       INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will
  4289.       be the actual interrupt number being used; the other interrupts may
  4290.       be found with INT 7F/AH=09h/CL=03h
  4291. --------N-7F---------------------------------
  4292. INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK
  4293. Note:    a program may determine that it is running on an ANSK Slave by checking
  4294.       the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this
  4295.       address is RAM, and should not be written.  However, the above check
  4296.       will not work on Slaves with <1MB RAM or those using the SLIM.SYS
  4297.       device driver
  4298. --------N-7F00-------------------------------
  4299. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
  4300.     AH = 00h
  4301.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  4302. Return: AL = status (see below)
  4303.     AH = semaphore owner if status=02h
  4304. SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h
  4305.  
  4306. Values for status:
  4307.  00h    successful
  4308.  01h    invalid function
  4309.  02h    semaphore already locked
  4310.  03h    unable to lock/unlock semaphore
  4311.  04h    semaphore space exhausted
  4312.  05h    host/target PC did not respond (NTNX)
  4313. --------N-7F00-------------------------------
  4314. INT 7F - G8BPQ - proposed addition - GET NODE/SWITCH VERSION AND DESCRIPTION
  4315.     AH = 00h
  4316.     ES:SI -> buffer for "USERS" text string
  4317. Return: AH = major version
  4318.     AL = minor version
  4319.     CX = length of returned string
  4320. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  4321.       John Wiseman which allows a PC to act as a node in an AX.25 network
  4322. SeeAlso: AH=01h"G8BPQ",AH=09h"G8BPQ"
  4323. --------N-7F01-------------------------------
  4324. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
  4325.     AH = 01h
  4326.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  4327. Return: AL = status (see AH=00h)
  4328.     AH = semaphore owner if status=02h
  4329. SeeAlso: AH=00h,AH=02h,AH=41h
  4330. --------V-7F01-------------------------------
  4331. INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS
  4332.     AH = 01h
  4333. Return: BX = 1234h if installed
  4334.         DX:AX -> array of FAR entry points
  4335.         CH = driver major version
  4336.         CL = driver minor version
  4337. Note:    TIGACD 2.05 returns CF set on unrecognized functions in AX
  4338. SeeAlso: AX=1234h,AX=4321h
  4339. --------N-7F01-------------------------------
  4340. INT 7F - G8BPQ v4.00+ - HOST MODE - SET APPLICATION FLAGS AND MASK
  4341.     AH = 01h
  4342.     AL = stream number (01h-40h)
  4343.     CL = new application flags
  4344.         bit 7: monitored frames available via AH=0Bh"G8BPQ"
  4345.     DL = new application mask
  4346. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  4347.       John Wiseman which allows a PC to act as a node in an AX.25 network
  4348. Note:    INT 7Fh is the default, which may be changed in the configuration file
  4349.       for v4.03+
  4350. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=0Bh"G8BPQ"
  4351. --------I-7F0104BX0000-----------------------
  4352. INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)
  4353.     AX = 0104h (HLLAPI gate ID)
  4354.     BX = 0000h
  4355.     DS:SI -> parameter control block (see below)
  4356. Return: parameter control block updated
  4357. SeeAlso: AX=0105h,AX=ABCDh
  4358.  
  4359. Format of parameter control block:
  4360. Offset    Size    Description
  4361.  00h  3 BYTEs    signature = 'PCB'
  4362.  03h    BYTE    function number (see below)
  4363.  04h    WORD    segment of control string
  4364.  06h    WORD    offset of control string
  4365.  08h    WORD    length of control string, unless explicit end-of-str char set
  4366.  0Ah    BYTE    unused (IBM)
  4367.         ControlString[0] (Rabbit)
  4368.  0Bh    WORD    return code (see below)
  4369.  0Dh    WORD    maximum length of control string (IBM)
  4370.         unused (Rabbit)
  4371.  
  4372. Values for HLLAPI function number:
  4373.  00h    OEM function (Query system for Attachmate implementation)
  4374.  01h    Connect presentation space
  4375.  02h    Disconnect presentation space
  4376.  03h    Send string of keystrokes as if typed from keyboard
  4377.  04h    Wait ~60s, returns status of presentation space
  4378.  05h    Copy current presentation space into a user-defined buffer
  4379.  06h    Search presentation space for first occurrence of a specified string
  4380.  07h    Query cursor location in current presentation space
  4381.  08h    Copy part or all of current presentation space into user buffer
  4382.  09h    Set session parameters; parameters vary by vendor
  4383.  0Ah    Get info on sessions currently connected
  4384.  0Bh    Lock current presentation space
  4385.  0Ch    Unlock previously locked presentation space
  4386.  0Dh    Return copy of operator info area (OIA) of current presentation space
  4387.  0Eh    get attribute byte for given position in the current presentation space
  4388.  0Fh    copy string of characters to the current presentation space
  4389.  10h    workstation control functions
  4390.  11h    storage manager functions, intended primarily for BASIC applications
  4391.     (not implemented by Rabbit)
  4392.  12h    set delay period in half-second intervals
  4393.  14h    get info on level of workstation support used
  4394.  15h    reset session parameters to default values
  4395.  16h    get detailed info on the current session
  4396.  17h    start host notification to application on presentation sp or OIA update
  4397.  18h    check host update when host notification enabled
  4398.  19h    stop host notification
  4399.  1Eh    search field within current presentation space for string
  4400.  1Fh    get first positionof a selected field in the current presentation space
  4401.  20h    get length of specified field
  4402.  21h    copy string into a specified field
  4403.  22h    copy specified field into a user-defined buffer
  4404.  23h    create alternate presentation space (IBM only), don't use with BASIC
  4405.  24h    switch to alternate presentation space (IBM only), not with BASIC
  4406.  25h    display cursor in specified area (IBM only), don't use with BASIC
  4407.  26h    display alternate presentation space (IBM only), don't use with BASIC
  4408.  27h    delete alternate presentation space (IBM only), don't use with BASIC
  4409.  28h    set cursor
  4410.  29h    start Close Intercept
  4411.  2Ah    query Close Intercept
  4412.  2Bh    stop Close Intercept
  4413.  32h    start intercepting keystrokes to allow filtering
  4414.  33h    get keystrokes after turning on interception
  4415.  34h    notify operator when keystroke rejected by filter subroutine
  4416.  35h    stop intercepting keystrokes
  4417.  5Ah    send file
  4418.  5Bh    receive file
  4419.  5Ch    run a program (not implemented by Rabbit)
  4420.  5Dh    execute DOS command (not implemented by Rabbit)
  4421.  63h    change presentation space position to PC display row/col or vice versa
  4422.  65h    connect to Window Services
  4423.  66h    disconnect from Window Services
  4424.  67h    set/query window coordinates
  4425.  68h    set/query window status
  4426.  69h    change presentation space name
  4427.  78h    connect Structured Fields
  4428.  79h    disconnect Structured Fields
  4429.  7Ah    query size of communications buffer
  4430.  7Bh    allocate communications buffer
  4431.  7Ch    free communications buffer
  4432.  7Dh    get request completion state
  4433.  7Eh    read Structured Fields
  4434.  7Fh    write Structured Fields
  4435.  FFh    Get info on DCA implementation
  4436.  
  4437. Values for LLAPI function number:
  4438.  80h    initialize LLAPI (internal call)
  4439.  83h    set Session ID (one-character ID)
  4440.  84h    read Session ID (one-character ID)
  4441.  85h    lock 327x keyboard
  4442.  86h    unlock 327x keyboard
  4443.  87h    wait for Clear to Send
  4444.  88h    type ASCII character
  4445.  89h    type 327x key
  4446.  8Ah    read keyboard lock state
  4447.  8Fh    force screen update
  4448.  90h    view session
  4449.  91h    relinquish (suspend foreground until background becomes idle)
  4450.  92h    poke screen character
  4451.  93h    poke translated character
  4452.  94h    peek screen character
  4453.  95h    peek translated character
  4454.  96h    set cursor position
  4455.  97h    send scan code (Rabbit only)
  4456.  98h    synchronize (returns after keystroke queue empty)
  4457.  99h    type PC key (Rabbit only)
  4458.  
  4459. Session Parameters for function 09h:
  4460.  ASCII        ??? (Rabbit only)
  4461.  ATTRIB        return attributes in hex
  4462.  NOATTRIB    return attributes as blanks
  4463.  CONPHYS    make physical connection
  4464.  CONLOG        only make logical connection
  4465.  EAB        copy extended attribute bytes along with data
  4466.  NOEAB        copy data only
  4467.  ESC=n        set escape character to "n" (default '@')
  4468.  EOT=n        set end of string character (default 00h)
  4469.  FPAUSE        full-duration pause
  4470.  FTNOWAIT    return immediately from functions 5Ah and 5Bh (Rabbit only)
  4471.  FTWAIT        wait for file transfer to complete (Rabbit only)
  4472.  IPAUSE        interruptable pause
  4473.  RABESC        ??? (Rabbit only)
  4474.  NORABESC    ??? (Rabbit only)
  4475.  SCANCODE    ??? (Rabbit only)
  4476.  STRLEN        use explicit string lengths
  4477.  STREOT        use terminated strings
  4478.  SRCHALL    search entire presentation space
  4479.  SRCHFROM    search from specified offset
  4480.  SRCHFRWD    search forward from position 1
  4481.  SRCHBKWD    search backward from last position in presentation space
  4482.  TIMEOUT=n    ??? (Rabbit only)
  4483.  TWAIT        wait specified time for keyboard ready
  4484.  LWAIT        wait until keyboard ready
  4485.  NWAIT        no wait
  4486.  TRON        enable tracing
  4487.  TROFF        disable tracing
  4488.  AUTORESET    send reset before sending keys with function 03h
  4489.  NORESET    don't send reset
  4490.  QUIET        don't display messages sent with INT 21/AH=09h
  4491.  NOQUIET    allow messages to be displayed
  4492.  TIMEOUT=n    set timeout in 30-second intervals, 0 = wait until ^Break
  4493.  XLATE        translate extended attribute bytes
  4494.  NOXLATE    don't translate
  4495.  NEWRET        use HLLAPI v3.0 return code conventions
  4496.  OLDRET        use HLLAPI v2.0 return code conventions
  4497.  
  4498. Values for Windows HLLAPI return code:
  4499.  00h    successful
  4500.  01h    Presentation Space not connected/requested size unavailable
  4501.  02h    invalid function or parameter error/invalid block ID
  4502.  03h    file transfer complete
  4503.  04h    file transfer complete (segmented)/Presentation Space busy
  4504.  05h    inhibited or keyboard locked
  4505.  06h    data truncated
  4506.  07h    invalid Presentation Space position
  4507.  08h    operation not available
  4508.  09h    system error
  4509.  0Ah    blocking error
  4510.  0Bh    resource not available
  4511.  0Ch    session stopped
  4512.  14h    undefined key combination
  4513.  15h    OIA updated
  4514.  16h    Presentation Space updated
  4515.  17h    both Presentation Space and OIA updated
  4516.  18h    no such field
  4517.  19h    no keystrokes available
  4518.  1Ah    Presentation Space or Operator Information Area changed
  4519.  1Bh    file transfer aborted
  4520.  1Ch    zero-length field
  4521.  1Eh    cursor type invalid
  4522.  1Fh    keystroke overflow
  4523.  20h    another application is already connected
  4524.  22h    message sent to host cancelled
  4525.  23h    transmission from host cancelled
  4526.  24h    lost contact with host
  4527.  25h    function successful
  4528.  26h    function incomplete
  4529.  27h    a DDM session is already connected
  4530.  28h    disconnected, but asynchronous requests still pending
  4531.  29h    buffer already in use
  4532.  2Ah    no matching request found
  4533. 12Dh    invalid function number
  4534. 12Eh    file not found
  4535. 131h    access denied
  4536. 134h    out of memory
  4537. 136h    environment invalid
  4538. 137h    format invalid
  4539. 270Eh (9998) invalid Presentation Space ID
  4540. 270Fh (9999) invalid row or column code
  4541. ---Windows HLLAPI extensions---
  4542. F000h    asynchronous call already in progress
  4543. F001h    invalid asynchronous task ID
  4544. F002h    blocking call cancelled
  4545. F003h    underlying subsystem not started
  4546. F004h    unsupported application version
  4547. --------V-7F0105-----------------------------
  4548. INT 7F - HDILOAD.EXE - 8514/A VIDEO CONTROLLER INTERFACE
  4549.     AX = 0105h
  4550. Return: CF set on error
  4551.     CF clear if successful
  4552.         CX:DX -> array of FAR pointers to entry points
  4553. Note:    most functions are invoked by pushing the DWORD parameter block pointer
  4554.       and then performing a FAR call via the appropriate vector of the
  4555.       entry point array
  4556. SeeAlso: AX=0104h,AX=ABCDh
  4557.  
  4558. Function numbers: (do FAR call via entry_points+4*function)
  4559.  08h    HOPEN
  4560.  10h    HINT
  4561.  13h    HLDPAL
  4562.  15h    HBBW
  4563.  17h    HBBR
  4564.  18h    HBBCHN
  4565.  1Dh    HQMODE
  4566.  22h    HCLOSE
  4567.  30h    HINIT
  4568.  31h    HSYNC
  4569.  39h    HSPAL
  4570.  3Ah    HRPAL
  4571. --------N-7F02-------------------------------
  4572. INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
  4573.     AH = 02h
  4574.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  4575. Return: AL = status (see AH=00h"NTNX")
  4576.     AH = semaphore owner if status=02h
  4577. SeeAlso: AH=00h,AH=01h,AH=42h
  4578. --------N-7F02-------------------------------
  4579. INT 7F - G8BPQ v4.00+ - HOST MODE - SEND FRAME
  4580.     AH = 02h
  4581.     AL = stream number (01h-40h)
  4582.     CX = length of frame
  4583.     ES:SI -> frame to be sent
  4584. SeeAlso: AH=03h"G8BPQ",AH=07h"G8BPQ",AH=0Ah"G8BPQ"
  4585. --------f-7F0200-----------------------------
  4586. INT 7F - Btrieve Multi-User - GIVE UP TIME???
  4587.     AX = 0200h
  4588. SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve"
  4589. --------N-7F03-------------------------------
  4590. INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER
  4591.     AH = 03h
  4592. Return: AL = user number
  4593.     AH = machine number (MW386)
  4594. Note:    this function call is the recommended method for a CPU-bound process to
  4595.       prevent its priority from being lowered
  4596. SeeAlso: AH=04h,AH=05h,AH=A1h
  4597. --------N-7F03-------------------------------
  4598. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE FRAME
  4599.     AH = 03h
  4600.     AL = stream number (01h-40h)
  4601.     ES:DI -> buffer for frame (must be large enough for a full frame; 350
  4602.           bytes is usually sufficient)
  4603. Return:    BX = number of pending frames (0000h if returned frame was last avail)
  4604.     CX = length of received frame
  4605. SeeAlso: AH=02h"G8BPQ",AH=07h"G8BPQ",AH=0Bh"G8BPQ"
  4606. --------N-7F04-------------------------------
  4607. INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS
  4608.     AH = 04h
  4609. Return: AL = total number of users on currrent machine (MW386)
  4610.     AL = number of slaves on system (NTNX)
  4611. SeeAlso: AH=03h
  4612. --------N-7F04-------------------------------
  4613. INT 7F - G8BPQ v4.00+ - HOST MODE - GET STREAM STATUS
  4614.     AH = 04h
  4615.     AL = stream number (01h-40h)
  4616. Return: CX = state (0000h disconnected, 0001h connected)
  4617.     DX = delta state (0000h no change, 0001h changed since last check)
  4618. SeeAlso: AH=02h"G8BPQ",AH=05h"G8BPQ"
  4619. --------N-7F05-------------------------------
  4620. INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL
  4621.     AH = 05h
  4622.     AL = function
  4623.         00h lock system (disable slave services)
  4624.         01h unlock system
  4625.         02h enable spooler
  4626.         03h disable spooler
  4627.         04h enable slave timer update
  4628.         05h disable slave timer update
  4629.         06h enable form feeds
  4630.         07h disable form feeds
  4631. SeeAlso: INT 17/AH=A4h
  4632. --------N-7F05-------------------------------
  4633. INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
  4634.     AH = 05h
  4635.     DX:DI -> buffer for user information record (see below)
  4636. Notes:    MW386 provides this function for backward compatibility only, and sets
  4637.       many of the fields to zero because they are meaningless under MW386
  4638.     this function has no effect when called by the host (user 0)
  4639. SeeAlso: AH=03h
  4640.  
  4641. Format of user information record:
  4642. Offset    Size    Description
  4643.  00h    WORD    segment of video RAM
  4644.  02h    WORD    segment of secondary copy of video RAM
  4645.  04h    WORD    offset of screen update flag (see INT 10/AH=8Bh)
  4646.         flag nonzero if update needed
  4647.  06h    WORD    video NMI enable port
  4648.         (not used by MW386, set to 0000h)
  4649.  08h    WORD    video NMI disable port
  4650.         (not used by MW386, set to 0000h)
  4651.  0Ah    BYTE    processor type
  4652.         00h 8088
  4653.         01h V20
  4654.         02h 8086
  4655.         03h V30
  4656.         06h 80386
  4657.  0Bh    WORD    multitasking flag (00h = single tasking, 01h = multitasking)
  4658.         (not used by MW386, set to 0000h)
  4659.  0Dh    WORD    offset of terminal driver
  4660.         (not used by MW386, set to 0000h)
  4661.  0Fh    BYTE    port for console I/O
  4662.         (not used by MW386, set to 0000h)
  4663.  10h    WORD    offset of processor communication busy flag
  4664.         bit 7 set when slave communicating with host
  4665.  12h    WORD    pointer to FAR NX system call
  4666.         (not used by MW386, set to 0000h)
  4667.  14h    WORD    offset of 16-byte user configuration record (see AH=38h)
  4668.  16h    WORD    offset of command/status word
  4669.  18h    WORD    offset of screen valid flag (see INT 10/AH=93h)
  4670.         nonzero if screen must be repainted
  4671.  1Ah    WORD    offset of screen repaint flag
  4672.  1Ch    WORD    pointer to NEAR NX system call
  4673.         (not used by MW386, set to 0000h)
  4674.  1Eh    WORD    offset for intercept flags
  4675.         (not used by MW386, set to 0000h)
  4676.         intercept flag = FFh if MS-DOS intercepts should be disabled
  4677.  20h    WORD    offset of terminal lock flag (see INT 10/AH=92h)
  4678.         lock flag = FFh if backgrnd screen updates should be suspended
  4679.  22h 26 BYTEs    reserved
  4680. --------N-7F05-------------------------------
  4681. INT 7F - G8BPQ v4.00+ - HOST MODE - ACKNOWLEDGE STREAM STATUS CHANGE
  4682.     AH = 05h
  4683.     AL = stream number (01h-40h)
  4684. Note:    this function must be called in order to receive a report of another
  4685.       status change
  4686. SeeAlso: AH=04h"G8BPQ"
  4687. --------N-7F06-------------------------------
  4688. INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO
  4689.     AH = 06h
  4690.     AL = drive number (1=A:, 2=B:, etc)
  4691.     ES:DI -> drive info record (see below)
  4692. Return: AX = status
  4693.         0000h successful
  4694.         ES:DI buffer filled
  4695.         0001h not shared drive
  4696.  
  4697. Format of drive info record:
  4698. Offset    Size    Description
  4699.  00h    WORD    segment of drive IO-REQUEST structure (MS-DOS DPB)
  4700.  02h    WORD    segment of allocation map (owner table)
  4701.         one byte per FAT entry, containing user ID owning that entry
  4702.  04h    WORD    segment of master FAT for drive (copy of FAT on disk)
  4703.  06h    WORD    pointer to configuration file
  4704.  08h    WORD    total number of clusters
  4705.  0Ah    WORD    bytes per sector
  4706.  0Ch    WORD    sectors per cluster
  4707.  0Eh    BYTE    FAT type (0Ch = 12-bit, 10h = 16-bit)
  4708. --------N-7F06-------------------------------
  4709. INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE
  4710.     AH = 06h
  4711.     DL = drive number (1=A:,2=B:,etc)
  4712.     CX = number of clusters to allocate
  4713. Return: AH = status
  4714.         00h successful
  4715.         CX = number of clusters still free
  4716.         10h invalid shared drive request
  4717.         CL = first and second shared drives
  4718.         11h invalid cluster count (must be 01h-FFh)
  4719. --------N-7F06-------------------------------
  4720. INT 7F - G8BPQ v4.00+ - HOST MODE - SESSION CONTROL
  4721.     AH = 06h
  4722.     AL = stream number (01h-40h)
  4723.     CX = subfunction
  4724.         0000h connect to node
  4725.         DL bit 0: use BBS callsign instead of Node Call
  4726.         0001h connect ot node
  4727.         use BBS Call if APPLMASK=1
  4728.         0002h disconnect
  4729.         0003h return user to node
  4730. SeeAlso: AH=01h"G8BPQ",AH=04h"G8BPQ"
  4731. --------N-7F07-------------------------------
  4732. INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
  4733.     AH = 07h
  4734. Return: ES:DI -> shared drive list (see below)
  4735. Note:    MW386 considers all fixed disks to be shared drives; only C and D will
  4736.       be returned as shared
  4737.  
  4738. Format of shared drive list:
  4739. Offset    Size    Description
  4740.  00h    BYTE    string length
  4741.  01h    BYTE    number of shared drives
  4742.  02h  N BYTEs    one byte per shared drive
  4743. --------N-7F07-------------------------------
  4744. INT 7F - G8BPQ v4.00+ - HOST MODE - GET BUFFER COUNTS FOR STREAM
  4745.     AH = 07h
  4746.     AL = stream number (01h-40h)
  4747. Return: BX = number of pending receive frames
  4748.     CX = number of unacknowledged sent frames
  4749.     DX = number of buffers available
  4750. SeeAlso: AH=02h"G8BPQ",AH=03h"G8BPQ"
  4751. --------N-7F08-------------------------------
  4752. INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS
  4753.     AH = 08h
  4754.     CL = function
  4755.         00h get original interrupt vector
  4756.         01h get Network Executive interrrupt
  4757.     AL = interrupt number
  4758.     DX:SI -> DWORD to hold interrupt vector
  4759. Return: AL = status
  4760.         00h successful
  4761.         01h interrupt vector not used by network executive
  4762.         02h invalid subfunction
  4763. Note:    the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h,
  4764.       1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh
  4765. SeeAlso: AH=09h/CL=03h,INT 21/AH=35h
  4766. --------N-7F08--CL02-------------------------
  4767. INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT
  4768.     AH = 08h
  4769.     CL = 02h
  4770.     DX = timeout in seconds
  4771. Return: AL = status
  4772.         00h successful
  4773.         02h invalid subfunction
  4774. --------N-7F08-------------------------------
  4775. INT 7F - G8BPQ v4.00+ - HOST MODE - PORT CONTROL/INFORMATION
  4776.     AH = 08h
  4777.     AL = stream number (01h-40h)
  4778. Return: ES:DI -> 10-byte buffer containing blank-padded callsign
  4779.     ---v4.05+ ---
  4780.     AL = radio port to which channel is connected (level 2)
  4781.     AH = session type (see below)
  4782.     BX = L2 paclen for session
  4783.     CX = maximum frame size
  4784.     DX = L4 window size or 0000h if not L4 circuit
  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",AH=02h"G8BPQ",AH=03h"G8BPQ",AH=0Ah"G8BPQ"
  4788.  
  4789. Bitfields for session type:
  4790.  bit 0    L2LINK
  4791.  bit 1    SESSION
  4792.  bit 2    UPLINK
  4793.  bit 3    DOWNLIND
  4794.  bit 5    BPQHOST
  4795. --------T-7F09-------------------------------
  4796. INT 7F - MultiLink Advanced - SET TASK PRIORITY
  4797.     AH = 09h
  4798.     AL = priority (0-7)
  4799. Note:    the installation check consists of ensuring that the interrupt vector
  4800.       is not pointing at segment 0000h, then checking whether the byte
  4801.       at offset 0000h in the interrupt handler's segment is E9h
  4802. Index:    installation check;MultiLink Advanced
  4803. --------N-7F09-------------------------------
  4804. INT 7F - G8BPQ - proposed addition - GET NODE/APPLICATION CALLSIGN AND ALIAS
  4805.     AH = 09h
  4806.     AL = application
  4807.         00h node
  4808.         01h BBS
  4809.         02h HOST
  4810.         03h SYSOP
  4811.     BL = what to get (00h callsign, 01h application name)
  4812.     ES:SI -> buffer for callsign/name string
  4813. Return: CX = length of returned string
  4814. SeeAlso: AH=00h"G8BPQ",AH=01h"G8BPQ",AH=0Ch"G8BPQ"
  4815. --------N-7F09-------------------------------
  4816. INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING
  4817.     AH = 09h
  4818.     CL = function
  4819.         00h enable checking of RTNX.MUD file
  4820.         01h disable RTNX.MUD checking
  4821. --------N-7F09--CL02-------------------------
  4822. INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE
  4823.     AH = 09h
  4824.     CL = 02h
  4825. Note:    in dedicated mode, the host will only poll for I/O requests from the
  4826.       slave processors, and not provide workstation services
  4827. --------N-7F09--CL03-------------------------
  4828. INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT
  4829.     AH = 09h
  4830.     CL = 03h
  4831.     AL = default interrupt number (67h,7Fh,etc)
  4832. Return: CL = actual interrupt which handles specified interrupt's calls
  4833. SeeAlso: AH=08h
  4834. --------N-7F0A--CL00-------------------------
  4835. INT 7F - Alloy NTNX - GET SYSTEM FLAGS
  4836.     AH = 0Ah
  4837.     CL = 00h
  4838.     ES:DI -> buffer for system flags (see below)
  4839. Return: ES:DI buffer filled
  4840. Notes:    on a slave, only the NX_Busy flag is returned
  4841.     all three flags are at fixed positions, so this function only needs to
  4842.       be called once
  4843.     an interrupt handler should only perform DOS or device accesses when
  4844.       all three flags are 00h
  4845.  
  4846. Format of system flags:
  4847. Offset    Size    Description
  4848.  00h    DWORD    pointer to NX_Busy flag (nonzero when communicating with users)
  4849.  04h    DWORD    pointer to device driver busy flag
  4850.  08h    DWORD    pointer to InTimer flag
  4851. --------N-7F0A-------------------------------
  4852. INT 7F - G8BPQ v4.00+ - HOST MODE - TRANSMIT RAW (KISS) FRAME
  4853.     AH = 0Ah
  4854.     AL = radio port
  4855.     ES:SI -> buffer containing data to be sent
  4856.     CX = number of bytes to send
  4857. SeeAlso: AH=02h"G8BPQ",AH=08h"G8BPQ",AH=0Bh"G8BPQ"
  4858. --------N-7F0B--CL02-------------------------
  4859. INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE
  4860.     AH = 0Bh
  4861.     CL = 02h
  4862.     AL = slave ID number
  4863.     CH = DOS to activate
  4864.         00h graphics DOS
  4865.         01h character DOS
  4866. Return: AL = status
  4867.         00h successful
  4868.         01h nothing done, proper DOS type already loaded
  4869. --------N-7F0B-------------------------------
  4870. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE TRACE (RAW DATA) FRAME
  4871.     AH = 0Bh
  4872.     ES:DI -> buffer for received data (see below)
  4873. Return: CX = number of bytes received
  4874. Note:    the specified buffer must be large enough to receive a full frame
  4875. SeeAlso: AH=03h"G8BPQ",AH=08h"G8BPQ",AH=0Ah"G8BPQ"
  4876.  
  4877. Format of received data:
  4878. Offset    Size    Description
  4879.  00h    WORD    internal control information
  4880.  02h    BYTE    port number (bit 7 set if transmitted frame)
  4881.  03h    WORD    frame length including this header
  4882.  05h    var    user data
  4883. --------N-7F0C-------------------------------
  4884. INT 7F - G8BPQ v4.00+ - HOST MODE - UPDATE SWITCH INFORMATION
  4885.     AH = 0Ch
  4886.     DX = function
  4887.         0001h update beacon text
  4888.         CX = length of data
  4889.         ES:SI -> data to be sent in beacons
  4890. SeeAlso: AH=09h"G8BPQ"
  4891. --------N-7F0F-------------------------------
  4892. INT 7F - G8BPQ v4.00+ - HOST MODE - GET TIME MARKER
  4893.     AH = 0Fh
  4894. Return: AX = time marker (clock ticks modulo 64K)
  4895. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  4896.       John Wiseman which allows a PC to act as a node in an AX.25 network
  4897. SeeAlso: AH=01h"G8BPQ",INT 1A/AH=00h
  4898. --------N-7F10--CL00-------------------------
  4899. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL
  4900.     AH = 10h
  4901.     CL = 00h
  4902.     AL = channel number
  4903.     DX:DI -> channel buffer
  4904. Return: AL = status (00h-03h,0Dh) (see below)
  4905. Note:    may not be invoked from within a hardware interrupt handler
  4906. SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h
  4907.  
  4908. Values for status:
  4909.  00h    successful
  4910.  01h    busy
  4911.  02h    channel range error (not 00h-3Fh)
  4912.  03h    invalid subfunction
  4913.  0Ah    channel not open
  4914.  0Ch    channel already locked
  4915.  0Dh    unable to open
  4916. --------N-7F10--CL01-------------------------
  4917. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
  4918.     AH = 10h
  4919.     CL = 01h
  4920.     AL = channel number
  4921. Return: AL = status (00h-03h,0Ah) (see AH=10h/CL=00h)
  4922. Note:    may not be invoked from within a hardware interrupt handler
  4923. SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h
  4924. --------N-7F10--CL02-------------------------
  4925. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
  4926.     AH = 10h
  4927.     CL = 02h
  4928.     AL = channel number
  4929. Return: AL = status (00h-03h,0Ah,0Ch) (see AH=10h/CL=00h)
  4930. Note:    may not be invoked from within a hardware interrupt handler
  4931. SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h
  4932. --------N-7F10--CL03-------------------------
  4933. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
  4934.     AH = 10h
  4935.     CL = 03h
  4936.     AL = channel number
  4937. Return: AL = status (00h-03h,0Ah) (see AH=10h/CL=00h)
  4938. Notes:    should only be used on channels locked with AH=10h/CL=02h, not on those
  4939.       locked by receipt of a datagram
  4940.     may not be invoked from within a hardware interrupt handler
  4941. SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h
  4942. --------N-7F10--CL04-------------------------
  4943. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
  4944.     AH = 10h
  4945.     CL = 04h
  4946.     AL = channel number
  4947. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  4948. Notes:    unlocks buffer after received datagram has been processed
  4949.     may not be invoked from within a hardware interrupt handler
  4950. SeeAlso: AH=10h/CL=00h
  4951. --------N-7F10--CL05-------------------------
  4952. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
  4953.     AH = 10h
  4954.     CL = 05h
  4955. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  4956. Notes:    clears all pending datagrams and clears buffer pointers before closing
  4957.       the channels
  4958.     may not be invoked from within a hardware interrupt handler
  4959. SeeAlso: AH=10h/CL=01h
  4960. --------N-7F10--CL06-------------------------
  4961. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
  4962.     AH = 10h
  4963.     CL = 06h
  4964. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  4965. Note:    may not be invoked from within a hardware interrupt handler
  4966. SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h
  4967. --------N-7F10--CL07-------------------------
  4968. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
  4969.     AH = 10h
  4970.     CL = 07h
  4971. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  4972. Notes:    unlocks all locked channels which have no pending datagrams
  4973.     may not be invoked from within a hardware interrupt handler
  4974. SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h
  4975. --------N-7F10--CL08-------------------------
  4976. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS
  4977.     AH = 10h
  4978.     CL = 08h
  4979.     DX = maximum channel number to lock
  4980. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  4981. Notes:    locks channels numbered 00h through the value in DX
  4982.     may not be invoked from within a hardware interrupt handler
  4983. SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h
  4984. --------N-7F10--CL09-------------------------
  4985. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS
  4986.     AH = 10h
  4987.     CL = 09h
  4988.     DX = maximum channel number to unlock
  4989. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  4990. Notes:    unlocks channels numbered 00h through the value in DX
  4991.     may not be invoked from within a hardware interrupt handler
  4992. SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h
  4993. --------N-7F11-------------------------------
  4994. INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
  4995.     AH = 11h
  4996.     DX:SI -> request block (see below)
  4997. Return: AL = status (see below)
  4998. Note:    if wildcard channel FFh used, actual channel number will be filled in
  4999. SeeAlso: AH=12h
  5000.  
  5001. Values for status:
  5002.  00h    successful
  5003.  01h    busy
  5004.  02h    channel range error (not 00h-3Fh)
  5005.  03h    invalid subfunction
  5006.  0Ah    packet too large (or <2 bytes if NTNX)
  5007.  0Bh    can't send packet to itself
  5008.  0Ch    invalid number of destinations
  5009.  0Dh    destination channel number out of range
  5010.  0Eh    destination user is busy
  5011.  0Fh    destination user has locked channel
  5012.  10h    channel not open
  5013.  11h    no datagram server on destination (NTNX)
  5014.  
  5015. Format of request block:
  5016. Offset    Size    Description
  5017.  00h    DWORD    pointer to packet to send
  5018.  04h    WORD    packet size in bytes (1-4096)
  5019.  06h    BYTE    number of destinations for packet (max 1Fh)
  5020.  07h 31 BYTEs    destination user IDs (FFh = broadcast to all except sender)
  5021.  26h 31 BYTEs    destination channels (FFh = first available channel)
  5022.  45h 31 BYTEs    return destination statuses
  5023. --------N-7F12-------------------------------
  5024. INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM
  5025.     AH = 12h
  5026.     AL = channel number being acknowledged
  5027.     DI:DX = 32-bit status to return to sender
  5028. Return: AL = status (see below)
  5029. Note:    also unlocks the channel, allowing the next datagram to be received
  5030. SeeAlso: AH=11h,AH=15h/CL=04h
  5031.  
  5032. Values for status:
  5033.  00h    successful
  5034.  01h    busy
  5035.  02h    channel range error (not 00h-3Fh)
  5036.  03h    invalid subfunction
  5037.  0Ah    channel not open
  5038.  0Bh    no message in channel
  5039.  0Ch    destination slave busy--retry (NTNX)
  5040.  0Dh    destination user not active
  5041.  0Eh    destination slave not active (NTNX)
  5042.  0Fh    destination disabled datagram service
  5043. --------V-7F1234-----------------------------
  5044. INT 7F - TIGA Communications Driver v2.05 - UNINSTALL
  5045.     AX = 1234h
  5046. SeeAlso: AX=4321h
  5047. --------N-7F13--CL00-------------------------
  5048. INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS
  5049.     AH = 13h
  5050.     CL = 00h
  5051. Note:    clears all pending datagrams and removes all channels opened in NTNX
  5052.       compatibility mode
  5053. --------N-7F14--CL00-------------------------
  5054. INT 7F - Alloy NTNX, MW386 -  SET RECEIVE ISR
  5055.     AH = 14h
  5056.     CL = 00h
  5057.     DX:DI -> application FAR receive service routine (see below)
  5058. Return: AL = status (00h-03h) (see AH=12h)
  5059. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  5060.  
  5061. Service routine called with:
  5062.     DH = sender ID
  5063.     DL = channel with datagram
  5064.     interrupts disabled
  5065. Return: AL = response code
  5066.         00h leave buffer locked, set channel status, and repeat call later
  5067.         01h release channel buffer
  5068.         02h change buffer pointer to DX:DI
  5069.     AH,CX,DX,DI,SI may be destroyed
  5070. --------N-7F14--CL01-------------------------
  5071. INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
  5072.     AH = 14h
  5073.     CL = 01h
  5074.     DX:DI -> application FAR acknowledge service routine (see below)
  5075. Return: AL = status (00h-03h) (see AH=12h)
  5076. Note:    the service routine will be called as soon as an acknowledgment arrives
  5077. SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h
  5078.  
  5079. Service routine called with:
  5080.     DS:SI -> acknowledge structure (see AH=15h/CL=04h)
  5081. Return: AL = response code
  5082.         00h application busy, network executive should call again later
  5083.         01h acknowledge accepted
  5084.     AH,DX,SI may be destroyed
  5085. --------N-7F14--CL02-------------------------
  5086. INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER
  5087.     AH = 14h
  5088.     CL = 02h
  5089.     AL = channel number
  5090.     DX:DI -> receive buffer
  5091. Return: AL = status (00h-03h) (see AH=12h)
  5092. Note:    may be called from within a receive ISR or when a datagram is pending
  5093. SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h
  5094. --------N-7F14--CL03-------------------------
  5095. INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR
  5096.     AH = 14h
  5097.     CL = 03h
  5098. Return: DX:DI -> current receive ISR
  5099. SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h
  5100. --------N-7F14--CL04-------------------------
  5101. INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR
  5102.     AH = 14h
  5103.     CL = 04h
  5104. Return: DX:DI -> current acknowledge ISR
  5105. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  5106. --------N-7F14--CL05-------------------------
  5107. INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
  5108.     AH = 14h
  5109.     CL = 05h
  5110.     DX:DI -> buffer for busy structure (see below)
  5111. Return: DX:DI buffer filled
  5112.  
  5113. Format of busy structure:
  5114. Offset    Size    Description
  5115.  00h    DWORD    pointer to busy flag byte
  5116.  04h    WORD    fixed port address (FF00h)
  5117. --------N-7F15--CL00-------------------------
  5118. INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
  5119.     AH = 15h
  5120.     CL = 00h
  5121.     AL = channel number
  5122.     DX:DI -> status structure (see below)
  5123. Return: AL = status (00h-03h) (see AH=12h)
  5124. SeeAlso: AH=15h/CL=01h
  5125.  
  5126. Format of status structure:
  5127. Offset    Size    Description
  5128.  00h    BYTE    channel status
  5129.         bit 0: channel open
  5130.         bit 1: channel buffer contains received data
  5131.         bit 7: channel locked
  5132.  01h    BYTE    sender ID
  5133. --------N-7F15--CL01-------------------------
  5134. INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
  5135.     AH = 15h
  5136.     CL = 01h
  5137.     DX:DI -> full-channel structure
  5138. Return: AL = status
  5139.         00h successful
  5140.         01h busy
  5141.         0Ah no datagrams available
  5142. Note:    MW386 v1.0 returns the lowest channel with a datagram; newer versions
  5143.       and NTNX return the oldest datagram
  5144. SeeAlso: AH=15h/CL=00h
  5145.  
  5146. Format of full-channel structure:
  5147. Offset    Size    Description
  5148.  00h    BYTE    number of channel with oldest datagram
  5149.  01h    BYTE    sender ID
  5150. --------N-7F15--CL02-------------------------
  5151. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS
  5152.     AH = 15h
  5153.     CL = 02h
  5154. Return: AH = number of channels available (40h for MW386)
  5155. Note:    the application may always assume at least 32 channels available
  5156. SeeAlso: AH=15h/CL=03h
  5157. --------N-7F15--CL03-------------------------
  5158. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE
  5159.     AH = 15h
  5160.     CL = 03h
  5161.     DX:DI -> WORD for return value
  5162. Return: buffer WORD filled with maximum packet size (4096 for MW386)
  5163. SeeAlso: AH=15h/CL=02h
  5164. --------N-7F15--CL04-------------------------
  5165. INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
  5166.     AH = 15h
  5167.     CL = 04h
  5168.     DX:DI -> status structure (see below)
  5169. Return: AL = status
  5170.         00h successful
  5171.         DX:DI structure filled
  5172.         01h busy
  5173.         0Ah no acknowledgement has arrived
  5174. SeeAlso: AH=12h,AH=14h/CL=01h
  5175.  
  5176. Format of status structure:
  5177. Offset    Size    Description
  5178.  00h    BYTE    sender ID
  5179.  01h    BYTE    channel number
  5180.  02h  4 BYTEs    receiver status (see AH=12h)
  5181. --------N-7F16-------------------------------
  5182. INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
  5183.     AH = 16h
  5184.     DX:SI -> transfer structure (see below)
  5185. Return: AL = status
  5186.         00h successful
  5187.         0Ah source or destination out of range
  5188.         0Bh transfer kernal busy--try again
  5189. Notes:    this call transfers memory contents directly between users; both source
  5190.       and destination user IDs may differ from the caller's ID
  5191.     no segment wrap is allowed
  5192.  
  5193. Format of transfer structure:
  5194. Offset    Size    Description
  5195.  00h    WORD    bytes to transfer
  5196.  02h    BYTE    source ID
  5197.         FEh = caller
  5198.  03h    DWORD    source address
  5199.  07h    BYTE    destination ID
  5200.         FFh = all slaves except caller
  5201.         FEh = caller
  5202.  08h    DWORD    destination address
  5203. --------N-7F21-------------------------------
  5204. INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)
  5205.     AH = 21h
  5206.     AL = sender's user ID
  5207.     DS:DX -> control packet (see below)
  5208. Note:    messages or commands are ignored if disabled by the destination user
  5209. SeeAlso: AH=22h
  5210.  
  5211. Format of control packet:
  5212. Offset    Size    Description
  5213.  00h    BYTE    packet type
  5214.         00h message
  5215.         01h NTNX command
  5216.         02h MW386 command
  5217.  01h    BYTE    destination user ID or 'A' for all users
  5218.  02h 62 BYTEs    ASCIZ message (packet type 00h)
  5219.         BIOS keycodes terminated by NUL byte (type 01h) or word (02h)
  5220. Note:    a maximum of 16 keycodes will be processed for NTNX and MW386 commands
  5221. --------N-7F22-------------------------------
  5222. INT 7F - Alloy NTNX - GET MESSAGE
  5223.     AH = 22h
  5224. Return: pending messages displayed on user's screen
  5225. SeeAlso: AH=21h
  5226. --------N-7F24-------------------------------
  5227. INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS
  5228.     AH = 24h
  5229.     CL = function
  5230.         00h attach
  5231.         01h release
  5232.     CH = drive (0=A:,1=B:,etc)
  5233. Return: AX = status
  5234.         00h successful
  5235.         01h invalid request
  5236.         02h already attached
  5237.         03h not attached
  5238.         04h lock table full
  5239. Note:    only drives on the current machine may be attached
  5240. --------N-7F24-------------------------------
  5241. INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
  5242.     AH = 24h
  5243.     CL = function
  5244.         02h attach host
  5245.         03h release host
  5246. Return: AX = status
  5247.         00h successful
  5248.         01h invalid request
  5249.         02h already attached
  5250.         03h not attached
  5251.         04h lock table full
  5252. Note:    the host processor may be attached in order to perform I/O via the host
  5253. --------N-7F25--CL00-------------------------
  5254. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION
  5255.     AH = 25h
  5256.     CL = 00h
  5257. Return: AH = version suffix letter
  5258.     CH = major version number
  5259.     CL = minor version number
  5260. SeeAlso: AH=25h/CL=01h
  5261. --------N-7F25--CL01-------------------------
  5262. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
  5263.     AH = 25h
  5264.     CL = 01h
  5265. Return: CL = type
  5266.         00h RTNX
  5267.         01h ATNX
  5268.         02h NTNX
  5269.         03h BTNX
  5270.         04h MW386
  5271.         05h ANSK
  5272. SeeAlso: AH=25h/CL=00h
  5273. ----------7F2525-----------------------------
  5274. INT 7F - TIGA Communications Driver v2.05 - ???
  5275.     AX = 2525h
  5276.     BX = ???
  5277. Return: ???
  5278. SeeAlso: AX=4321h,AX=5555h
  5279. --------N-7F26--CL00-------------------------
  5280. INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
  5281.     AH = 26h
  5282.     CL = 00h
  5283. Return: AX = file mode bits (see below)
  5284. Note:    MW386 does not support file modes, and always returns AX=001Fh
  5285. SeeAlso: AH=26h,AH=26h/CL=06h
  5286.  
  5287. Bitfields for file mode bits:
  5288.  bit 0    directory protection enabled
  5289.  bit 1    extended open enabled
  5290.  bit 2    flush on every disk write
  5291.  bit 3    flush on every disk write in locked interval
  5292.  bit 4    flush on reads from simultaneously opened file
  5293. --------N-7F26-------------------------------
  5294. INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL
  5295.     AH = 26h
  5296.     CL = check type to set/reset
  5297.         01h directory protection
  5298.         02h extended open
  5299.         03h flush on every disk write
  5300.         04h flush on disk write if any lock set during write
  5301.         05h flush on all reads if file written
  5302.     AL = new state (00h off, 01h on)
  5303. SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h
  5304. --------N-7F26--CL06-------------------------
  5305. INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE
  5306.     AH = 26h
  5307.     CL = 06h
  5308. Note:    cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h
  5309. SeeAlso: AH=26h/CL=00h
  5310. --------N-7F30-------------------------------
  5311. INT 7F - Alloy MW386 - GET PORT INFORMATION
  5312.     AH = 30h
  5313.     CX = MW386 port number
  5314. Return: AL = FFh if port not found
  5315.        else     driver unit number
  5316.            BL = port mode
  5317.            BH = port type
  5318.            02h remote
  5319.            DH = owner's machine ID
  5320.            DL = owner's user ID
  5321. SeeAlso: INT 17/AH=8Bh
  5322. --------N-7F31-------------------------------
  5323. INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
  5324.     AH = 31h
  5325.     ???
  5326. Return: ???
  5327. --------N-7F37-------------------------------
  5328. INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
  5329.     AH = 37h
  5330. Return: ES:AX -> semaphore table
  5331. --------N-7F37-------------------------------
  5332. INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL
  5333.     AH = 37h
  5334.     DS:DX -> ASCIZ string to display
  5335. Note:    if the string is empty, a terminal update will be forced
  5336. --------N-7F38-------------------------------
  5337. INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER
  5338.     AH = 38h
  5339.     AL = new terminal driver number
  5340.         FFh dummy driver
  5341.         FEh current driver
  5342.         FDh load new driver
  5343.         DS:SI -> new driver
  5344. SeeAlso: AH=39h
  5345. --------N-7F39-------------------------------
  5346. INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
  5347.     AH = 39h
  5348.     AL = new terminal driver number
  5349.     DL = user number (FFh = caller)
  5350.     DH = machine number if DL <> FFh
  5351. Return: CF set if invalid user number
  5352.     CF clear if successful
  5353. Notes:    only available to supervisors
  5354.     the new driver number will not take effect until the user is rebooted
  5355. SeeAlso: AH=38h
  5356. --------N-7F3A-------------------------------
  5357. INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS
  5358.     AH = 3Ah
  5359.     DL = user number (FFh = caller)
  5360.     DH = machine number
  5361. Return: CF clear if successful
  5362.         AH = terminal driver number
  5363.         AL = baud rate (00h = 38400, 01h = 19200, etc)
  5364.         CL = parity (00h none, 01h even, 02h odd)
  5365.         CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  5366.     CF set if invalid user number
  5367. SeeAlso: AH=3Bh
  5368. --------N-7F3B-------------------------------
  5369. INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS
  5370.     AH = 3Bh
  5371.     AL = baud rate (00h = 38400, 01h = 19200, etc)
  5372.     CL = parity (00h none, 01h even, 02h odd)
  5373.     CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  5374.     DL = user number (FFh = caller)
  5375.     DH = machine number for user
  5376. Return: CF set if invalid user number
  5377. Notes:    only available to supervisors
  5378.     the new parameters will take effect immediately if the user's terminal
  5379.       has not been started, else AH=3Dh must be called to post the changes
  5380. SeeAlso: AH=3Ah,AH=3Dh
  5381. --------N-7F3C-------------------------------
  5382. INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT
  5383.     AH = 3Ch
  5384.     AL = new state
  5385.          00h disabled, 01h enabled
  5386.     DL = user number (FFh = caller)
  5387.     DH = machine number for user
  5388. Return: CF set if invalid user number
  5389. Note:    only available to supervisors
  5390. SeeAlso: AH=3Dh
  5391. --------N-7F3D-------------------------------
  5392. INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES
  5393.     AH = 3Dh
  5394. Note:    should be called whenever a program changes the terminal type or its
  5395.       parameters
  5396. SeeAlso: AH=3Bh
  5397. --------N-7F41-------------------------------
  5398. INT 7F - Alloy NTNX - LOCK FILE FOR USER
  5399.     AH = 41h
  5400.     AL = user ID
  5401.     DS:DX -> ASCIZ filename
  5402. Return: AL = status
  5403.         00h successful
  5404.         01h invalid function
  5405.         02h already locked
  5406.         03h unable to lock
  5407.         04h lock table full
  5408. Note:    requests exclusive read/write access to file
  5409. SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX"
  5410. --------N-7F41-------------------------------
  5411. INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
  5412.     AH = 41h
  5413.     AL = user ID
  5414.     DS:DX -> ASCIZ semaphore name
  5415. Return: AL = status
  5416.         00h successful
  5417.         01h invalid function
  5418.         02h semaphore already locked
  5419.         03h unable to lock semaphore
  5420.         04h semaphore space exhausted
  5421. SeeAlso: AH=00h,AH=42h"MW386"
  5422. --------N-7F42-------------------------------
  5423. INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
  5424.     AH = 42h
  5425.     AL = user ID
  5426.     DS:DX -> ASCIZ filename
  5427. Return: AL = status
  5428.         00h successful
  5429.         01h invalid function
  5430.         02h already locked
  5431.         03h unable to lock
  5432.         04h lock table full
  5433. SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386"
  5434. --------N-7F42-------------------------------
  5435. INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER
  5436.     AH = 42h
  5437.     AL = user ID
  5438.     DS:DX -> ASCIZ semaphore name
  5439. Return: AL = status
  5440.         00h successful
  5441.         01h invalid function
  5442.         03h unable to unlock semaphore
  5443. SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX"
  5444. ----------7F4321-----------------------------
  5445. INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK
  5446.     AX = 4321h
  5447. Return: AX = 0000h if installed
  5448. Note:    INT 7F is the default, but may be overridden
  5449. SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555h
  5450. --------N-7F4E-------------------------------
  5451. INT 7F - Alloy MW386 v2+ - SET ERROR MODE
  5452.     AH = 4Eh
  5453.     AL = error mode flags
  5454.         bit 0: display critical disk errors
  5455.         bit 1: display sharing errors
  5456.     DX = 4E58h ("NX")
  5457. Return: AL = status
  5458.         00h successful
  5459. SeeAlso: AH=4Fh
  5460. --------N-7F4F-------------------------------
  5461. INT 7F - Alloy MW386 v2+ - SET FCB MODE
  5462.     AH = 4Fh
  5463.     AL = FCB mode
  5464.         02h read/write compatibility
  5465.         42h read/write shared
  5466.     DX = 4E58h ("NX")
  5467. Return: AL = status
  5468.         00h successful
  5469. --------V-7F5555-----------------------------
  5470. INT 7F - TIGA Communications Driver v2.05 - ???
  5471.     AX = 5555h
  5472.     BX = ???
  5473. Return: ???
  5474. SeeAlso: AX=4321h
  5475. --------N-7F81-------------------------------
  5476. INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
  5477.     AH = 81h
  5478.     AL = user ID
  5479.     DS:DX -> ASCIZ device name
  5480. SeeAlso: AH=82h
  5481. --------N-7F82-------------------------------
  5482. INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
  5483.     AH = 82h
  5484.     AL = user ID
  5485.     DS:DX -> ASCIZ device name
  5486. SeeAlso: AH=81h
  5487. --------N-7FA0-------------------------------
  5488. INT 7F - Alloy MW386 - GET USER NAME
  5489.     AH = A0h
  5490.     DL = user number (FFh = caller)
  5491.     DH = machine number for user
  5492.     ES:DI -> 17-byte buffer for ASCIZ user name
  5493. Return: CF set if invalid user number
  5494. SeeAlso: AH=03h,AH=A1h
  5495. --------N-7FA1-------------------------------
  5496. INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER
  5497.     AH = A1h
  5498. Return: AL = process number
  5499.     DL = user number
  5500.     DH = machine number
  5501. SeeAlso: AH=03h,AH=A0h,AH=A2h
  5502. --------N-7FA2-------------------------------
  5503. INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL
  5504.     AH = A2h
  5505.     DL = user number (FFh = caller)
  5506.     DH = machine number for user
  5507. Return: CF clear if successful
  5508.         AL = privilege level
  5509.         00h supervisor
  5510.         01h high
  5511.         02h medium
  5512.         03h low
  5513.     CF set if invalid user number
  5514. SeeAlso: AH=A1h,AH=A3h
  5515. --------N-7FA3-------------------------------
  5516. INT 7F - Alloy MW386 - GET USER LOGIN STATE
  5517.     AH = A3h
  5518.     DL = user number
  5519.     DH = machine number for user
  5520. Return: CF clear if successful
  5521.         AL = login state
  5522.         00h never logged in
  5523.         01h currently logged out
  5524.         03h currently logged in
  5525.     CF set if invalid user number or user not active
  5526. SeeAlso: AH=A2h
  5527. --------N-7FA4-------------------------------
  5528. INT 7F - Alloy MW386 - VERIFY USER PASSWORD
  5529.     AH = A4h
  5530.     DS:DX -> ASCIZ password (null-padded to 16 bytes)
  5531. Return: AL = 00h if accepted
  5532.        else     invalid password
  5533. --------N-7FA500-----------------------------
  5534. INT 7F - Alloy MW386 - GET USER STATUS
  5535.     AX = A500h
  5536.     DI = machine number and user number
  5537. Return: CF clear if successful
  5538.         BX = user flags
  5539.         bit 5: allow messages
  5540.         CL = scan code for task manager hotkey
  5541.         CH = scan code for spooler hotkey
  5542.         DL = scan code for task swapper hotkey
  5543.         DH = modifier key status
  5544.     CF set if invalid user number
  5545. SeeAlso: AX=A501h
  5546. Index:    hotkeys;Alloy MW386
  5547. --------N-7FA501-----------------------------
  5548. INT 7F - Alloy MW386 - SET USER STATUS
  5549.     AX = A501h
  5550.     BX = user flags (see above)
  5551.     CL = scan code for task manager hotkey
  5552.     CH = scan code for spooler hotkey
  5553.     DL = scan code for task swapper hotkey
  5554.     DH = modifier key status
  5555.     DI = machine number and user number
  5556. Return: CF set if invalid user number
  5557. Note:    must have supervisor privilege to set another user's status
  5558. SeeAlso: AX=A500h
  5559. Index:    hotkeys;Alloy MW386
  5560. --------V-7FABCDBX0000-----------------------
  5561. INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY
  5562.     AX = ABCDh
  5563.     BX = 0000h
  5564. Return: AX = total number of functions available
  5565.     ES:BX -> entry point array
  5566. SeeAlso: AX=0104h,AX=0105h
  5567.  
  5568. Function numbers:
  5569.  00h    check initialization and reset
  5570.  14h    set user-defined subroutine
  5571. Notes:    each driver function takes two stack parameters using Pascal calling
  5572.       conventions: address of parameter block and address of results buffer
  5573.     all pointers are FAR pointers
  5574.     on return, AX contains the status of the call:
  5575.         AX = 0000h successful
  5576.          0001h invalid input
  5577.          0002h interface error
  5578.          0003h unable to perform function
  5579.  
  5580. Format of parameter block for function 00h:
  5581. Offset    Size    Description
  5582.  00h    WORD    0000h (function number)
  5583. Note:    this function should be called before any other device driver functions
  5584.  
  5585. Format of results buffer for function 00h:
  5586. Offset    Size    Description
  5587.  00h    WORD    touch screen status
  5588.         0000h unavailable
  5589.         0001h uncalibrated
  5590.         FFFFh available
  5591.  02h    WORD    aux mouse status (0000h not present, FFFFh present)
  5592. Notes:    the following driver parameters will have been reset to zero:
  5593.       touchdown counter, liftoff counter, position at last touch, position
  5594.       at last lift, int call mask, select on count, select off count,
  5595.       pos select on count, pos select off count.
  5596.     the following driver parameters will have been reset as listed:
  5597.       mouse emulation mode: left on
  5598.       thresholds: 46 on screen, 96 push harder, 80 push release
  5599.       x, y hysteresis: 400
  5600.       data repeat rate: 40/sec
  5601.       select mechanism: push-harder - first-touch
  5602.       coordinate origin: upper left corner
  5603.       filter frequency: medium
  5604.       data block mask: all enabled
  5605.       click lock: on
  5606. --------N-7FB0-------------------------------
  5607. INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER
  5608.     AH = B0h
  5609.     AL = user number
  5610.     DS = code segment
  5611. Note:    MW386 ignores AL and DS; it releases all semaphores locked using INT 67
  5612.       or INT 7F locking functions
  5613. SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h
  5614. --------N-7FB1--SF00-------------------------
  5615. INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
  5616.     AH = B1h subfn 00h
  5617.     AL = (bits 7-5) 000
  5618.          (bits 4-0) user ID
  5619. Note:    MW386 ignores AL; it releases all semaphores locked using INT 67 or
  5620.       INT 7F locking functions
  5621. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  5622. --------N-7FB2--SF01-------------------------
  5623. INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
  5624.     AH = B2h subfn 01h
  5625.     AL = (bits 7-5) 001
  5626.          (bits 4-0) user ID
  5627. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h
  5628. --------N-7FB3--SF02-------------------------
  5629. INT 7F - Alloy NTNX - RELEASE FILES FOR USER
  5630.     AH = B3h subfn 02h
  5631.     AL = (bits 7-5) 010
  5632.          (bits 4-0) user ID
  5633. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h
  5634. --------N-7FB4-------------------------------
  5635. INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
  5636.     AH = B4h
  5637.     AL = user ID
  5638. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h
  5639. --------N-7FC3-------------------------------
  5640. INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT
  5641.     AH = C3h
  5642.     AL = byte to write
  5643. Return: CF clear if successful
  5644.     CF set on error
  5645. SeeAlso: AH=C6h
  5646. --------N-7FC5-------------------------------
  5647. INT 7F - Alloy MW386 - CHANGE CONSOLE MODE
  5648.     AH = C5h
  5649.     AL = new console mode
  5650.         00h keyboard indirect
  5651.         01h keyboard direct
  5652.         02h data handshake enforced
  5653.         03h no data handshake
  5654. Return: CF clear if successful
  5655.         AL = prior console mode
  5656.     CF set on error (caller is not remote user)
  5657. Note:    modes 2 and 3 may be used for input through the console port; no video
  5658.       output should be performed in these modes
  5659. --------N-7FC6-------------------------------
  5660. INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT
  5661.     AH = C6h
  5662.     AL = byte to write
  5663. Return: CF clear if successful
  5664.     CF set on error (caller is not remote user)
  5665. Note:    any terminal driver data translation will be bypassed
  5666. SeeAlso: AH=C3h,AH=C7h
  5667. --------N-7FC7-------------------------------
  5668. INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE
  5669.     AH = C7h
  5670. Return: CF clear if successful
  5671.         AL = byte read
  5672.     CF set on error (no data available or caller is not remote user)
  5673. Note:    used to read data after placing console in mode 2 or 3 (see AH=C5h)
  5674. SeeAlso: AH=C5h,AH=C6h,AH=C8h
  5675. --------N-7FC8-------------------------------
  5676. INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER
  5677.     AH = C8h
  5678.     AL = maximum bytes to read
  5679.     ES:DI -> buffer for console data
  5680. Return: CF clear if successful
  5681.         CX = number of bytes read
  5682.     CF set on error (caller is not remote user)
  5683. SeeAlso: AH=C7h
  5684. --------N-7FCF-------------------------------
  5685. INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
  5686.     AH = CFh
  5687.     DS:DX -> ASCIZ string containing user number to be reset
  5688. SeeAlso: AH=D6h
  5689. --------N-7FD6-------------------------------
  5690. INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
  5691.     AH = D6h
  5692.     DS:DX -> reset packet (see below)
  5693. Return: never if successful
  5694. Note:    all users will be shut down immediately if successful
  5695. SeeAlso: AH=CFh
  5696.  
  5697. Format of reset packet:
  5698. Offset    Size    Description
  5699.  00h    DWORD    reset code (60606060h)
  5700.  04h 16 BYTEs    ASCIZ supervisor password padded with nulls
  5701. --------N-7FD7-------------------------------
  5702. INT 7F - Alloy MW386 - POST EVENT
  5703.     AH = D7h
  5704.     AL = user number (if local event)
  5705.     DX = event number
  5706. --------N-7FD8-------------------------------
  5707. INT 7F - Alloy MW386 - FLUSH DISK BUFFERS
  5708.     AH = D8h
  5709. Return: CF set on error
  5710. Note:    forces all disk buffers to be written out immediately
  5711. SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h
  5712. --------N-7FDB-------------------------------
  5713. INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE
  5714.     AH = DBh
  5715. Return: AL = drive from which MW386 was started (2=C:,3=D:,etc)
  5716. --------N-7FE0-------------------------------
  5717. INT 7F - Alloy MW386 - CREATE DOS TASK
  5718.     AH = E0h
  5719.     AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  5720.     DS:DX -> ASCIZ task name (max 16 bytes)
  5721. Return: CF clear if successful
  5722.         AL = task create ID
  5723.     CF set on error
  5724. Note:    only foreground DOS tasks can use this function
  5725. SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h
  5726. --------N-7FE1-------------------------------
  5727. INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID
  5728.     AH = E1h
  5729.     AL = create ID (from AH=E0h)
  5730. Return: AL = DOS process number
  5731.     CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  5732. Note:    this function should not be called immediately after creating a new
  5733.       DOS task, since the new task is being initialized by a concurrent
  5734.       process
  5735. SeeAlso: AH=E0h,AH=E2h
  5736. --------N-7FE2-------------------------------
  5737. INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK
  5738.     AH = E2h
  5739.     AL = DOS process number (from AH=E1h)
  5740. Return: CF set on error (invalid process number or caller not foreground task)
  5741. Notes:    specified task becomes the foreground task and current task is placed
  5742.       in the background
  5743.     may only be called by a foreground task
  5744. SeeAlso: AH=E0h,AH=E1h
  5745. --------N-7FE3-------------------------------
  5746. INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
  5747.     AH = E3h
  5748. ---v1.x---
  5749.     AL = user number
  5750. ---v2+---
  5751.     BH = user number
  5752.     BL = task number
  5753. ---
  5754.     DS:DX -> ASCIZ task name
  5755. Return: CF set on error (invalid process number)
  5756. SeeAlso: AH=E0h,AH=E4h,AH=E5h
  5757. --------N-7FE4-------------------------------
  5758. INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
  5759.     AH = E4h
  5760. ---v1.x---
  5761.     AL = user number
  5762. ---v2+---
  5763.     BH = user number
  5764.     BL = task number
  5765. ---
  5766.     ES:DI -> buffer for task name
  5767. Return: CF clear if successful
  5768.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  5769.         DX = task flags
  5770.         bit 7: MS-DOS process
  5771.         ES:DI buffer filled
  5772.     CF set on error (invalid process number)
  5773. SeeAlso: AH=E3h,AH=E5h
  5774. --------N-7FE5-------------------------------
  5775. INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME
  5776.     AH = E5h
  5777.     DS:DX -> ASCIZ task name
  5778.     BH = user number
  5779. Return: CF clear if successful
  5780.         AL = DOS process number
  5781.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  5782.     CF set on error (no match for name)
  5783. SeeAlso: AH=E3h,AH=E4h
  5784. --------N-7FE6-------------------------------
  5785. INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS
  5786.     AH = E6h
  5787. Return: AX = number of processes available to current user
  5788. SeeAlso: AH=E0h
  5789. --------N-7FE7-------------------------------
  5790. INT 7F - Alloy MW386 - REMOVE DOS TASK
  5791.     AH = E7h
  5792.     AL = DOS process number
  5793. Return: CF set on error (invalid process number or first process)
  5794. Note:    can only be called by a foreground task
  5795. SeeAlso: AH=E0h
  5796. --------N-7FE8-------------------------------
  5797. INT 7F - Alloy MW386 - DOS TASK DELAY
  5798.     AH = E8h
  5799.     CX = delay time in milliseconds
  5800. Note:    a delay of 0 may be used to surrender the current time slice
  5801. SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS"
  5802. SeeAlso: INT 2F/AX=1680h
  5803. --------N-7FF0-------------------------------
  5804. INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP
  5805.     AH = F0h
  5806.     AL = group number
  5807.     DS:DX -> ASCIZ directory name
  5808. Return: CF clear if successful
  5809.         AX = status
  5810.         0002h directory not found
  5811.         0003h directory not found
  5812.         0005h directory in use, cannot be restricted
  5813.         02xxh restricted to group xxh
  5814.     CF set on error
  5815. Note:    the restriction on the directory may be removed by calling this
  5816.       function with group 0, then using AH=F1h to assign the directory to
  5817.       group 0
  5818. SeeAlso: AH=F1h,AH=F2h,AH=F3h
  5819. --------N-7FF1-------------------------------
  5820. INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP
  5821.     AH = F1h
  5822.     AL = group number
  5823.     DS:DX -> ASCIZ directory name
  5824. Notes:    performs permanent assignment to a group; no immediate action is taken
  5825.       unless the directory has been restricted with AH=F0h
  5826.     may be used to restrict a nonexistent directory
  5827. SeeAlso: AH=F0h
  5828. --------N-7FF2-------------------------------
  5829. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY
  5830.     AH = F2h
  5831.     CX = entry number
  5832.     ES:DI -> 64-byte buffer
  5833. Return: CF clear if successful
  5834.         buffer filled with 63-byte directory info and 1-byte group number
  5835.     CF set on error (invalid entry)
  5836. SeeAlso: AH=F0h,AH=F3h
  5837. --------N-7FF3-------------------------------
  5838. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP
  5839.     AH = F3h
  5840.     AL = group number
  5841.     CX = entry number
  5842.     ES:DI -> 64-byte buffer
  5843. Return: CF clear if successful
  5844.         CX = next entry number
  5845.         buffer filled with 63-byte directory info and 1-byte group number
  5846.     CF set on error (no more matching entries)
  5847. Note:    like AH=F2h, but only returns directories belonging to the specified
  5848.       group
  5849. SeeAlso: AH=F2h
  5850. --------N-7FF8-------------------------------
  5851. INT 7F - Alloy MW386 - ASSIGN USER TO GROUP
  5852.     AH = F8h
  5853.     AL = group number
  5854.     DL = user number
  5855.     DH = machine number (currently 00h)
  5856. Return: CF clear if successful
  5857.     CF set on error (user already in maximum number of groups)
  5858. Note:    each user is allowed eight group assignments
  5859. SeeAlso: AH=F9h,AH=FAh
  5860. --------N-7FF9-------------------------------
  5861. INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
  5862.     AH = F9h
  5863.     AL = group number
  5864.     DL = user number
  5865.     DH = machine number (currently 00h)
  5866. Return: CF set if failed
  5867. SeeAlso: AH=F8h,AH=FAh
  5868. --------N-7FFA-------------------------------
  5869. INT 7F - Alloy MW386 - GET USER GROUP LIST
  5870.     AH = FAh
  5871.     DL = user number
  5872.     DH = machine number (currently 00h)
  5873.     ES:DI -> 16-byte buffer for group list
  5874. Return: CX = number of groups
  5875.     ES:DI buffer filled with group numbers
  5876. SeeAlso: AH=F8h,AH=F9h
  5877. --------N-7FFB-------------------------------
  5878. INT 7F - Alloy MW386 - ASSIGN GROUP NAME
  5879.     AH = FBh
  5880.     CL = group number
  5881.     ES:DI -> ASCIZ group name (max 17 bytes)
  5882. SeeAlso: AH=FCh
  5883. --------N-7FFC-------------------------------
  5884. INT 7F - Alloy MW386 - GET GROUP NAME
  5885.     AH = FCh
  5886.     CL = group number
  5887.     ES:DI -> 17-byte buffer for ASCIZ name
  5888. Return: ES:DI buffer filled
  5889. Note:    if the group has not been named, "(unnamed)" is returned
  5890. SeeAlso: AH=FBh
  5891. ----------80---------------------------------
  5892. INT 80 - Q-PRO4 - ???
  5893. --------r-80---------------------------------
  5894. INT 80 - reserved for BASIC
  5895. Note:    this vector and INT 81 through INT ED are modified but not restored by
  5896.       Direct Access v4.0, and may be left dangling by other programs
  5897.       written with the same version of compiled BASIC
  5898. SeeAlso: INT 81"BASIC"
  5899. --------s-80----BL00-------------------------
  5900. INT 80 - SBSIM - "STARTSND" - START SOUND ON SPECIFIED DRIVER
  5901.     BL = 00h
  5902.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  5903. Return: AX = initialization result (see below)
  5904. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  5905.       which provides access to multiple drivers for the SoundBlaster
  5906.       board through a single interface
  5907. Note:    SBSIM may use any interrupt in the range 80h to BFh; the installation
  5908.       check consists of testing for the signature "SBSIM" at offset 103h
  5909.       in the interrupt handler's segment.
  5910. SeeAlso: INT 80/BL=01h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=03h"SBSIM"
  5911. SeeAlso: INT 80/BX=0000h"SBSIM"
  5912.  
  5913. Values for error code:
  5914.  01h    busy--currently in use
  5915.  02h    bad driver specified
  5916.  03h    invalid function
  5917.  04h    voice process already active
  5918.  05h    couldn't start CT-VOICE
  5919.  06h    couldn't start CTVDSK
  5920.  07h    invalid SBSIM handle
  5921.  08h    buffer not initialized yet
  5922.  09h    bad filename
  5923.  0Ah    bad file handle
  5924.  0Bh    driver not started yet
  5925.  0Ch    XMS driver not installed
  5926.  0Dh    no free SBSIM handles
  5927.  0Eh    bad file type
  5928.  0Fh    couldn't free XMS block
  5929.  10h    invalid source selected
  5930.  11h    get pan position failed
  5931.  12h    set pan position failed
  5932.  13h    set volume failed
  5933.  14h    couldn't start fade/pan
  5934.  15h    couldn't stop fade/pan
  5935.  16h    couldn't pause fade/pan
  5936.  17h    not a fade/pan operation
  5937.  18h    bad mode for fade/pan
  5938.  19h    couldn't start fade/pan
  5939.  1Ah    source not fading/panning
  5940.  1Bh    FM or MIDI already playing
  5941.  1Ch    bad MIDI mapper format
  5942. --------s-80----BL01-------------------------
  5943. INT 80 - SBSIM - "PLAYSND" - PLAY MUSIC/VOICE ON SELECTED DRIVER
  5944.     BL = 01h
  5945.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  5946. Return: AX = result
  5947. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  5948. --------s-80----BL02-------------------------
  5949. INT 80 - SBSIM - "STOPSND" - STOP MUSIC/VOICE ON SELECTED DRIVER
  5950.     BL = 02h
  5951.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  5952. Return: nothing
  5953. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  5954. --------s-80----BL03-------------------------
  5955. INT 80 - SBSIM - "PAUSESND" - TEMPORARILY PAUSE PLAYBACK ON SELECTED DRIVER
  5956.     BL = 03h
  5957.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  5958. Return: nothing
  5959. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  5960. SeeAlso: INT 80/BL=05h
  5961. --------s-80----BL04-------------------------
  5962. INT 80 - SBSIM - "RESUMESND" - RESTART PLAYBACK ON SELECTED DRIVER
  5963.     BL = 04h
  5964.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  5965. Return: nothing
  5966. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=03h"SBSIM",INT 80/BL=05h"SBSIM"
  5967. --------s-80----BL05-------------------------
  5968. INT 80 - SBSIM - "GETSNDSTAT" - GET DRIVER'S STATUS
  5969.     BL = 05h
  5970.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  5971. Return: AX = status
  5972. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  5973. --------s-80----BX0000-----------------------
  5974. INT 80 - SoundBlaster SBFM driver - GET VERSION
  5975.     BX = 0000h
  5976. Return: ???
  5977. Note:    SBFM installs at a free interrupt in the range 80h through BFh
  5978. SeeAlso: BX=0008h"SBFM",INT 2F/AX=FBFBh
  5979. --------s-80----BX0000-----------------------
  5980. INT 80 - SBSIM - "QUERYVERSION" - GET VERSION
  5981.     BX = 0000h
  5982. Return: AX = version (AH = major, AL = minor)
  5983. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  5984.       which provides access to multiple drivers for the SoundBlaster
  5985.       board through a single interface
  5986. Note:    SBSIM may use any interrupt in the range 80h to BFh; the installation
  5987.       check consists of testing for the signature "SBSIM" at offset 103h
  5988.       in the interrupt handler's segment.
  5989. SeeAlso: BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  5990. Index:    installation check;SBSIM|installation check;SoundBlaster
  5991. --------s-80----BX0001-----------------------
  5992. INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
  5993.     BX = 0001h
  5994.     DX:AX -> music status byte
  5995. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0003h"SBFM"
  5996. --------s-80----BX0001-----------------------
  5997. INT 80 - SBSIM - "QUERYDRIVERS" - CHECK DRIVERS INSTALLED
  5998.     BX = 0001h
  5999. Return: AX = bit flags for loaded drivers (see below)
  6000. SeeAlso: BX=0000h"SBSIM",BX=0002h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  6001.  
  6002. Bitfields for loaded drivers:
  6003.  bit 0    FM
  6004.  bit 1    double disk-buffered voice driver (DDBV)
  6005.  bit 2    memory voice driver
  6006.  bit 3    auxiliary driver (mixer)
  6007.  bit 4    MIDI
  6008. --------s-80----BX0002-----------------------
  6009. INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
  6010.     BX = 0002h
  6011.     CX = number of instruments
  6012.     DX:AX -> instrument table
  6013. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0005h"SBFM"
  6014. --------s-80----BX0002-----------------------
  6015. INT 80 - SBSIM - GETADDRESS" - GET SELECTED DRIVER'S ENTRY POINT
  6016.     BX = 0002h
  6017.     AX = driver (00h = FM,01h = DDBV,02h = memvoice,03h = mixer,04h = MIDI)
  6018. Return: CF clear if successful
  6019.         DX:AX = entry point
  6020.     CF set on error
  6021. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  6022. --------s-80----BX0003-----------------------
  6023. INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE
  6024.     BX = 0003h
  6025.     AX = clock rate divisor (1193180 / desired frequency in Hertz)
  6026.         FFFFh to restore to 18.2 Hz
  6027. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0004h"SBFM"
  6028. --------s-80----BX0004-----------------------
  6029. INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE
  6030.     BX = 0004h
  6031.     AX = driver clock rate divisor (1193180 / frequency in Hertz)
  6032. Note:    default frequency is 96 Hz
  6033. SeeAlso: BX=0000h"SBFM",BX=0003h"SBFM"
  6034. --------s-80----BX0005-----------------------
  6035. INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
  6036.     BX = 0005h
  6037.     AX = semi-tone offset
  6038. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0006h"SBFM"
  6039. --------s-80----BX0005-----------------------
  6040. INT 80 - SBSIM - "GETBUFFERINFO" - GET DRIVER'S BUFFER ADDRESS
  6041.     BX = 0005h
  6042.     AX = driver (00h = FM, 01h = DDB Voice, 04h = MIDI)
  6043. Return: CF clear if successful
  6044.         DX:AX -> buffer
  6045.         CX = buffer size in K
  6046.     CF set on error
  6047. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  6048.       which provides access to multiple drivers for the SoundBlaster
  6049.       board through a single interface
  6050. Note:    SBSIM may use any interrupt in the range 80h to BFh; the installation
  6051.       check consists of testing for the signature "SBSIM" at offset 103h
  6052.       in the interrupt handler's segment.
  6053. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0002h"SBSIM",INT 80/BL=00h"SBSIM"
  6054. --------s-80----BX0006-----------------------
  6055. INT 80 - SoundBlaster SBFM driver - PLAY MUSIC
  6056.     BX = 0006h
  6057.     DX:AX -> music block
  6058. Return: AX = status
  6059.         0000h successful
  6060.         0001h music already active
  6061. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF04h
  6062. --------s-80----BX0007-----------------------
  6063. INT 80 - SoundBlaster SBFM driver - STOP MUSIC
  6064.     BX = 0007h
  6065. Return: AX = status
  6066.         0000h successful
  6067.         0001h music not active
  6068. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM",INT 1A/AX=FF05h
  6069. --------s-80----BX0008-----------------------
  6070. INT 80 - SoundBlaster SBFM driver - RESET DRIVER
  6071.     BX = 0008h
  6072. Return: AX = status
  6073.         0000h successful
  6074.         0001h music is active
  6075. SeeAlso: BX=0000h"SBFM"
  6076. --------s-80----BX0009-----------------------
  6077. INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
  6078.     BX = 0009h
  6079. Return: AX = status
  6080.         0000h successful
  6081.         0001h no music active
  6082. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF01h
  6083. --------s-80----BX000A-----------------------
  6084. INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
  6085.     BX = 000Ah
  6086. Return: AX = status
  6087.         0000h successful
  6088.         0001h no music paused
  6089. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM"
  6090. --------s-80----BX000B-----------------------
  6091. INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
  6092.     BX = 000Bh
  6093.     DX:AX -> trap routine
  6094. SeeAlso: BX=0000h"SBFM"
  6095. --------s-80----BX0400-----------------------
  6096. INT 80 - SBSIM - "GETVOLUME" - GET SOURCE'S VOLUME
  6097.     BX = 0400h
  6098.     AX = sound source (see below)
  6099. Return: CF clear if successful
  6100.         AX = volume
  6101.     CF set on error
  6102.         AX = error code (see INT 80/BL=00h)
  6103. SeeAlso: BX=0401h"SBSIM"
  6104.  
  6105. Values for sound source:
  6106.  00h    master volume
  6107.  01h    voice
  6108.  02h    FM
  6109.  03h    CD
  6110.  04h    line in
  6111.  05h    microphone
  6112. --------s-80----BX0401-----------------------
  6113. INT 80 - SBSIM - "SETVOLUME" - SET SOURCE'S VOLUME
  6114.     BX = 0401h
  6115.     AX = sound source (see INT 80/BX=0400h)
  6116.     DX = new volume
  6117. Return: AX = result (0000h = success) (see also INT 80/BL=00h)
  6118. SeeAlso: BX=0400h"SBSIM"
  6119. --------N-8001-------------------------------
  6120. INT 80 - QPC Software PKTINT.COM - INITIALIZE
  6121.     AH = 01h
  6122. Return: AX = 0000h
  6123.     CX = FFFFh
  6124.     DX = FFFFh
  6125. Notes:    this interrupt is the WinQVTNet protected mode interface to Windows 3.0
  6126.     all buffer pointers are reset back to 0
  6127. --------N-8002-------------------------------
  6128. INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES
  6129.     AH = 02h
  6130.     BX = extra bytes to allocate per packet
  6131. Return: AX = segment address of 10K buffer (for receives???)
  6132.     BX = segment address of 2K buffer (for sends???)
  6133. SeeAlso: AH=05h
  6134. --------N-8003-------------------------------
  6135. INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT
  6136.     AH = 03h
  6137. Return: CX:DX -> receive call address
  6138. Note:    the returned address can be used in the packet driver calls since it
  6139.       will be a valid address in all DOS boxes
  6140. SeeAlso: AH=06h
  6141. --------N-8004-------------------------------
  6142. INT 80 - QPC Software PKTINT.COM - ENABLE???
  6143.     AH = 04h
  6144.     BX = ???
  6145. Return: ???
  6146. SeeAlso: AH=01h
  6147. --------N-8005-------------------------------
  6148. INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS
  6149.     AH = 05h
  6150. Return: AX = amount of buffer currently in use
  6151.     BX = current offset in buffer
  6152.     CX = number of times receive has been called
  6153. SeeAlso: AH=02h
  6154. --------N-8006-------------------------------
  6155. INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET
  6156.     AH = 06h
  6157. Return: BX = next packet offset
  6158.     CX = number of bytes still buffered
  6159.     DX = size of packet released back into buffer pool
  6160. SeeAlso: AH=03h
  6161. --------r-81---------------------------------
  6162. INT 81 - reserved for BASIC
  6163. Note:    this vector is modified but not restored by Direct Access v4.0, and
  6164.       may be left dangling by other programs written with the same version
  6165.       of compiled BASIC
  6166. SeeAlso: INT 80"BASIC",INT 82"BASIC"
  6167. --------N-81---------------------------------
  6168. INT 81 - IBM TOKEN RING ADAPTER - ???
  6169. SeeAlso: INT 82"TOKEN RING",INT 91"TOKEN RING"
  6170. --------r-82---------------------------------
  6171. INT 82 - reserved for BASIC
  6172. SeeAlso: INT 81"BASIC",INT 83"BASIC"
  6173. --------N-82---------------------------------
  6174. INT 82 - IBM TOKEN RING ADAPTER - ???
  6175.     AH = function
  6176.         00h display message???
  6177.         DS:BX -> string
  6178.     ???
  6179. Return: ???
  6180. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  6181. --------r-83---------------------------------
  6182. INT 83 - reserved for BASIC
  6183. SeeAlso: INT 82"BASIC",INT 84"BASIC"
  6184. --------r-84---------------------------------
  6185. INT 84 - reserved for BASIC
  6186. SeeAlso: INT 83"BASIC",INT 85"BASIC"
  6187. --------r-85---------------------------------
  6188. INT 85 - reserved for BASIC
  6189. Note:    INT 80 through INT ED are modified but not restored by Direct Access
  6190.       v4.0, and may be left dangling by other programs written with the
  6191.       same version of compiled BASIC
  6192. SeeAlso: INT 84"BASIC",INT 86"BASIC"
  6193. --------N-86---------------------------------
  6194. INT 86 - NetBIOS - ORIGINAL INT 18
  6195. Note:    some implementations of NetBIOS reportedly relocate INT 18 here
  6196. SeeAlso: INT 18
  6197. --------r-86---------------------------------
  6198. INT 86 - IBM ROM BASIC - used while in interpreter
  6199. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6200.     BASIC.COM/BASICA.COM do not restore vector on termination
  6201. SeeAlso: INT 85"BASIC",INT 87"BASIC"
  6202. --------r-86---------------------------------
  6203. INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS
  6204. SeeAlso: INT 21/AH=4Ch,INT 87"APL"
  6205. --------r-87---------------------------------
  6206. INT 87 - IBM ROM BASIC - used while in interpreter
  6207. Notes:    called by ROM BASIC
  6208.     BASIC.COM/BASICA.COM do not restore vector on termination
  6209. SeeAlso: INT 86"BASIC",INT 88"BASIC"
  6210. --------r-87---------------------------------
  6211. INT 87 - APL*PLUS/PC - ???
  6212. SeeAlso: INT 86"APL",INT 88/AL=00h
  6213. --------v-87---------------------------------
  6214. INT 87 - VIRUS - "ZeroHunt" - VIRAL CODE (NOT A VECTOR!)
  6215. Note:    the ZeroHunt virus copies its resident code down to 0000h:021Ch and
  6216.       following
  6217. SeeAlso: INT 8B"VIRUS"
  6218. --------r-88---------------------------------
  6219. INT 88 - IBM ROM BASIC - used while in interpreter
  6220. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6221.     BASIC.COM/BASICA.COM do not restore vector on termination
  6222. SeeAlso: INT 87"BASIC",INT 89"BASIC"
  6223. --------r-88--00-----------------------------
  6224. INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE
  6225.     AL = 00h
  6226.     BX = STPTR of the variable to be assigned
  6227.     ES:SI -> model of type, rank, and shape (see below)
  6228. Return: ES:DI -> first data byte of object
  6229.     DX:CX = number of elements in the object
  6230. SeeAlso: INT C8"APL"
  6231.  
  6232. Format of shape model:
  6233. Offset    Size    Description
  6234.  00h    BYTE    type
  6235.         01h character (2-byte dimension sizes)
  6236.         02h integer (2-byte dimension sizes)
  6237.         08h floating point (2-byte dimension sizes)
  6238.         11h character (4-byte dimension sizes)
  6239.         12h integer (4-byte dimension sizes)
  6240.         18h floating point (4-byte dimension sizes)
  6241.  01h    BYTE    rank
  6242.  02h    WORD/DWORD first dimension of shape
  6243.  N    WORD/DWORD second dimension of shape
  6244.     ...
  6245. --------r-88--01-----------------------------
  6246. INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE
  6247.     AL = 01h
  6248.     AH = rank
  6249.     BX = STPTR of the variable to be assigned
  6250.     CX = first dimension (if any)
  6251.     DX = second dimension (if any)
  6252. Return: ES:DI -> object
  6253.     CX = number of elements in the object
  6254. Note:    each dimension must be 32767 or smaller
  6255. SeeAlso: AL=02h,AL=08h,INT C8"APL"
  6256. --------r-88--02-----------------------------
  6257. INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE
  6258.     AL = 02h
  6259.     AH = rank
  6260.     BX = STPTR of the variable to be assigned
  6261.     CX = first dimension (if any)
  6262.     DX = second dimension (if any)
  6263. Return: ES:DI -> object
  6264.     CX = number of elements in the object
  6265. Note:    each dimension must be 32767 or smaller
  6266. SeeAlso: AL=01h,AL=08h,INT C8"APL"
  6267. --------r-88--08-----------------------------
  6268. INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE
  6269.     AL = 08h
  6270.     AH = rank
  6271.     BX = STPTR of the variable to be assigned
  6272.     CX = first dimension (if any)
  6273.     DX = second dimension (if any)
  6274. Return: ES:DI -> object
  6275.     CX = number of elements in the object
  6276. Note:    each dimension must be 32767 or smaller
  6277. SeeAlso: AL=01h,AL=02h,INT C8"APL"
  6278. --------r-88--F5-----------------------------
  6279. INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL
  6280.     AL = F5h
  6281.     BX = STPTR of object
  6282. SeeAlso: INT C8"APL"
  6283. --------r-88--F6-----------------------------
  6284. INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING
  6285.     AL = F6h
  6286.     BX = STPTR of object
  6287. SeeAlso: AL=F7h,AL=F8h,INT C8"APL"
  6288. --------r-88--F7-----------------------------
  6289. INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING
  6290.     AL = F7h
  6291.     BX = STPTR of object
  6292. SeeAlso: AL=F6h,AL=F8h,INT C8"APL"
  6293. --------r-88--F8-----------------------------
  6294. INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING
  6295.     AL = F8h
  6296.     BX = STPTR of object
  6297. Return: BX = name's status
  6298.         0000h eligible
  6299.         0001h not eligible
  6300. SeeAlso: AL=F6h,AL=F7h,INT C8"APL"
  6301. --------r-88--F9-----------------------------
  6302. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  6303.     AL = F9h
  6304.     ES:SI -> name
  6305.     CX = length of name
  6306. Return: CF set if name ill-formed or already in use
  6307.         BX = STPTR if already in symbol table
  6308.     CF clear if name is available for use
  6309.         BX = 0000h
  6310. Note:    does not force the name into the workspace
  6311. SeeAlso: AL=FEh,AL=FFh,INT C8"APL"
  6312. --------r-88--FC-----------------------------
  6313. INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION
  6314.     AL = FCh
  6315.     BX = amount of memory needed (paragraphs)
  6316. Return: CF clear if memory available
  6317.     CF set if a workspace compaction is required
  6318. SeeAlso: AL=FDh,INT C8"APL"
  6319. --------r-88--FD-----------------------------
  6320. INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY
  6321.     AL = FDh
  6322. Return: BX = number of paragraphs available in workspace
  6323. SeeAlso: AL=FCh,INT C8"APL"
  6324. --------r-88--FE-----------------------------
  6325. INT 88 - APL*PLUS/PC - CREATE NAME
  6326.     AL = FEh
  6327.     ES:SI -> name
  6328.     CX = length of name
  6329. Return: BX = STPTR of name
  6330.     DX = interpreter's data segment
  6331. SeeAlso: AL=F9h,AL=FFh,INT C8"APL"
  6332. --------r-88--FF-----------------------------
  6333. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  6334.     AL = FFh
  6335.     ES:SI -> name
  6336.     CX = length of name
  6337. Return: CF set if name ill-formed or already in use
  6338.         BX = STPTR if already in symbol table
  6339.     CF clear if name is available for use
  6340.         BX = 0000h
  6341. Note:    forces the name into the workspace and makes it immune from outswapping
  6342. SeeAlso: AL=F9h,AL=FEh,INT C8"APL"
  6343. --------r-89---------------------------------
  6344. INT 89 - IBM ROM BASIC - used while in interpreter
  6345. Notes:    called by ROM BASIC
  6346.     BASIC.COM/BASICA.COM do not restore vector on termination
  6347. SeeAlso: INT 88"BASIC",INT 8A"BASIC"
  6348. --------r-8A---------------------------------
  6349. INT 8A - IBM ROM BASIC - used while in interpreter
  6350. Notes:    called by ROM BASIC
  6351.     BASIC.COM/BASICA.COM do not restore vector on termination
  6352. SeeAlso: INT 89"BASIC",INT 8B"BASIC"
  6353. --------r-8A---------------------------------
  6354. INT 8A - APL*PLUS/PC - PRINT SCREEN
  6355. Note:    same as INT 05
  6356. SeeAlso: INT 05,INT 8C"APL",INT CA"APL"
  6357. --------r-8B---------------------------------
  6358. INT 8B - IBM ROM BASIC - used while in interpreter
  6359. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6360.     BASIC.COM/BASICA.COM do not restore vector on termination
  6361. SeeAlso: INT 8A"BASIC",INT 8C"BASIC"
  6362. --------r-8B---------------------------------
  6363. INT 8B - APL*PLUS/PC - BEEP
  6364. Note:    same as printing a ^G via INT 21/AH=02h
  6365. SeeAlso: INT 21/AH=02h,INT CB"APL"
  6366. --------v-8B---------------------------------
  6367. INT 8B - VIRUS - "ZeroHunt" - INSTALLATION CHECK (NOT A VECTOR!)
  6368. Note:    if the ZeroHunt virus is resident, this vector will contain either
  6369.       EE83h:019Bh (ZH-411) or EE83h:019Fh (ZH-415)
  6370. SeeAlso: INT 70"VIRUS",INT 87"VIRUS",INT 9C"VIRUS"
  6371. --------r-8C---------------------------------
  6372. INT 8C - IBM ROM BASIC - used while in interpreter
  6373. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6374.     BASIC.COM/BASICA.COM do not restore vector on termination
  6375. --------r-8C---------------------------------
  6376. INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY
  6377.     AX = flag
  6378.         0000h do not save display attributes
  6379.         0001h save attributes
  6380. SeeAlso: INT CC"APL"
  6381. --------r-8D---------------------------------
  6382. INT 8D - IBM ROM BASIC - used while in interpreter
  6383. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6384.     BASIC.COM/BASICA.COM do not restore vector on termination
  6385. --------r-8E---------------------------------
  6386. INT 8E - IBM ROM BASIC - used while in interpreter
  6387. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6388.     BASIC.COM/BASICA.COM do not restore vector on termination
  6389. --------r-8F---------------------------------
  6390. INT 8F - IBM ROM BASIC - used while in interpreter
  6391. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6392.     BASIC.COM/BASICA.COM do not restore vector on termination
  6393. --------r-90---------------------------------
  6394. INT 90 - IBM ROM BASIC - used while in interpreter
  6395. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6396.     BASIC.COM/BASICA.COM do not restore vector on termination
  6397. --------r-90---------------------------------
  6398. INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER
  6399. --------r-91---------------------------------
  6400. INT 91 - IBM ROM BASIC - used while in interpreter
  6401. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6402.     BASIC.COM/BASICA.COM do not restore vector on termination
  6403. --------N-91---------------------------------
  6404. INT 91 - IBM TOKEN RING ADAPTER - ???
  6405. SeeAlso: INT 81"TOKEN RING",INT 82"TOKEN RING",INT 93"TOKEN RING"
  6406. --------r-92---------------------------------
  6407. INT 92 - IBM ROM BASIC - used while in interpreter
  6408. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6409.     BASIC.COM/BASICA.COM do not restore vector on termination
  6410. --------N-92---------------------------------
  6411. INT 92 - Sangoma X.25 INTERFACE PROGRAM
  6412.     BX:DX -> control block
  6413. SeeAlso: INT 68"Sangoma"
  6414. --------e-92E1-------------------------------
  6415. INT 92 - Da Vinci eMail Dispatcher INTERFACE
  6416.     AH = E1h
  6417.     AL = function
  6418.     BX = stack count (number of words to push)
  6419.     CX:DX -> stack data (in word-reversed order ready to push)
  6420. Return: AX = status (see below)
  6421. Note:    preserves BP, DS, SI, DI; other registers may be destroyed
  6422.  
  6423. Values for status:
  6424.  0001h    success
  6425.  FF97h    "ERS_NOT_AVAILABLE"
  6426.  FF99h    "ERS_TOO_MANY_NAMES"
  6427.  FF9Ah    "ERS_BAD_NAME_PASSWORD"
  6428.  FFE3h    "ERS_NAME_NOT_FOUND"
  6429.  FFF8h    "ERS_USE_STRING" (call NetGetError to get error string)
  6430.  FFFFh    "ERS_NO_SUCH_FILE"
  6431. --------e-92E100-----------------------------
  6432. INT 92 - Da Vinci eMail Dispatcher - "NetInitStart"
  6433.     AX = E100h
  6434.     BX = size of parameter block in words (000Ah)
  6435.     CX:DX -> parameter block (see below)
  6436. Return: AX = 0001h success
  6437. Desc:    this function is used to initialize the dispatcher
  6438. SeeAlso: AX=E101h,AX=E103h
  6439.  
  6440. Format of parameter block:
  6441. Offset    Size    Description
  6442.  00h    WORD    segment of ???
  6443.  02h    WORD    offset of ???
  6444.  04h    WORD    high part of long ???
  6445.  06h    WORD    low part of long ???
  6446.  08h    WORD    high part of long ???
  6447.  0Ah    WORD    low part of long ???
  6448.  0Ch    WORD    high part of long ???
  6449.  0Eh    WORD    low part of long ???
  6450.  10h    WORD    high part of long ???
  6451.  12h    WORD    low part of long ???
  6452. --------e-92E101BX0000-----------------------
  6453. INT 92 - Da Vinci eMail Dispatcher - "NetInitCheck"
  6454.     AX = E101h
  6455.     BX = 0000h
  6456.     CX:DX ignored
  6457. Return: AX = 0001h success
  6458. SeeAlso: AX=E100h,AX=E180h
  6459. --------e-92E102BX0000-----------------------
  6460. INT 92 - Da Vinci eMail Dispatcher - "NetCheckDriver"
  6461.     AX = E102h
  6462.     BX = 0000h
  6463.     CX:DX ignored
  6464. Return: AX = 0001h success
  6465. Desc:    this function is used to determine if the dispatcher is loaded
  6466. SeeAlso: AX=E10Bh,AX=E180h
  6467. --------e-92E103BX0000-----------------------
  6468. INT 92 - Da Vinci eMail Dispatcher - "NetTerminate"
  6469.     AX = E103h
  6470.     BX = 0000h
  6471.     CX:DX ignored
  6472. Return: AX = status (see AH=E1h)
  6473. SeeAlso: AX=E100h
  6474. --------e-92E104-----------------------------
  6475. INT 92 - Da Vinci eMail Dispatcher - "NetWhereIs"
  6476.     AX = E104h
  6477.     BX = size of parameter block in words (0006h)
  6478.     CX:DX -> parameter block (see below)
  6479. Return: AX = status (see AH=E1h)
  6480. Desc:    this function is used to verify node address for usernames
  6481. SeeAlso: AX=E180h
  6482.  
  6483. Format of parameter block:
  6484. Offset    Size    Description
  6485.  00h    WORD    segment of node address buffer
  6486.  02h    WORD    offset of node address buffer
  6487.  04h    WORD    segment of uppercase username
  6488.  06h    WORD    offset of uppercase username
  6489.  08h    WORD    segment of "DVSEMAIL"
  6490.  0Ah    WORD    offset of "DVSEMAIL"
  6491. --------e-92E105-----------------------------
  6492. INT 92 - Da Vinci eMail Dispatcher - "NetOpen"
  6493.     AX = E105h
  6494.     BX = size of parameter block in words (0007h)
  6495.     CX:DX -> parameter block (see below)
  6496. Return: AX = 0000h Error
  6497.     AX = handle
  6498. Desc:    this function is used to open a submission channel
  6499. SeeAlso: AX=E10Ah,AX=E106h,AX=E108h
  6500.  
  6501. Format of parameter block:
  6502. Offset    Size    Description
  6503.  00h    WORD    operation (1 = read, 2 = write)
  6504.  02h    WORD    segment of uppercase To: username
  6505.  04h    WORD    offset of uppercase To: username
  6506.  06h    WORD    segment of "DVSEMAIL"
  6507.  08h    WORD    offset of "DVSEMAIL"
  6508.  0Ah    WORD    segment of node address
  6509.  0Ch    WORD    offset of node address
  6510. --------e-92E106BX0004-----------------------
  6511. INT 92 - Da Vinci eMail Dispatcher - "NetRead"
  6512.     AX = E106h
  6513.     BX = 0004h
  6514.     CX:DX -> parameter block
  6515. Return: AX = 0001h
  6516. SeeAlso: AX=E108h
  6517. --------e-92E107BX0002-----------------------
  6518. INT 92 - Da Vinci eMail Dispatcher - "NetGetError"
  6519.     AX = E107h
  6520.     BX = 0002h
  6521.     CX:DX -> parameter block
  6522. Return: AX = 0001h
  6523. SeeAlso: AX=E109h,AX=E180h
  6524. --------e-92E108-----------------------------
  6525. INT 92 - Da Vinci eMail Dispatcher - "NetWrite"
  6526.     AX = E108h
  6527.     BX = size of parameter block in words (0004h)
  6528.     CX:DX -> parameter block (see below)
  6529. Return: AX = amount written
  6530. Desc:    This function is used to write transactions to the dispatcher.
  6531.       The command block is written first and then another call is used
  6532.       to write the associated data.
  6533. SeeAlso: AX=E106h
  6534.  
  6535. Format of parameter block:
  6536. Offset    Size    Description
  6537.  00h    WORD    buffer count
  6538.  02h    WORD    segment of command buffer
  6539.  04h    WORD    offset of command buffer
  6540.  06h    WORD    handle from NetOpen
  6541.  
  6542. Format of command buffer:
  6543. Offset    Size    Description
  6544.  00h    BYTE    command
  6545.         21h '!' Protocol commands for remote control
  6546.         41h 'A' Authorization protocol element
  6547.         42h 'B' Return(back) routing information
  6548.             Associated data is the From: username
  6549.         43h 'C' Carbon Copy list
  6550.             Associated data is a comma delimitted list of usernames
  6551.         44h 'D' Distribution list
  6552.             Associated data is a comma delimitted list of usernames
  6553.         45h 'E' Mail end marker
  6554.             No associated data
  6555.         48h 'H' Mail message header
  6556.             Associated data is a message header buffer
  6557.         4Dh 'M' Mail message
  6558.             Associated data is the body of the message
  6559.         4Fh 'O' Object
  6560.         50h 'P' Paperclip attachment
  6561.         52h 'R' Routing information
  6562.             Associated data is the To: username
  6563.         53h 'S' Subject
  6564.             Associated data is the subject of the message
  6565.         54h 'T' Trail of Reply/Forwards
  6566.  01h    BYTE    subcommand
  6567.  02h    DWORD    length of associated data
  6568.  
  6569. Format of message header buffer:
  6570. Offset    Size    Description
  6571.  00h 30 BYTEs    subject line
  6572.  1Eh 24 BYTEs    To
  6573.  36h 24 BYTEs    From
  6574.  4Eh    DWORD    Time
  6575.         BYTE    00h
  6576.         BYTE    hour
  6577.         BYTE    minute
  6578.         BYTE    second
  6579.  52h    DWORD    Date
  6580.         BYTE    00h
  6581.         BYTE    year
  6582.         BYTE    month
  6583.         BYTE    day
  6584.  56h    DWORD    serial number (00000000h)
  6585.  5Ah    WORD    mail types (see below)
  6586.  5Ch    WORD    special types (0)
  6587.  
  6588. Bitfields for mail types:
  6589.  bit 7    blind carbon copy
  6590.  bit 6    carbon copy
  6591.  bit 5    priority
  6592.  bit 4    confidential
  6593.  bit 3    certified
  6594.  bit 2    bulk
  6595.  bits 1-0 class (first, second, third, bulk)
  6596. --------e-92E109-----------------------------
  6597. INT 92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED)
  6598.     AX = E109h
  6599.     BX = size of parameter block in words (0001h)
  6600.     CX:DX -> parameter block (see below)
  6601. Return: AX = FF97h (ERS_NOT_AVAILABLE)
  6602. SeeAlso: AX=E107h,AX=E180h
  6603.  
  6604. Format of parameter block:
  6605. Offset    Size    Description
  6606.  00h    WORD    ???
  6607. --------e-92E10A-----------------------------
  6608. INT 92 - Da Vinci eMail Dispatcher - "NetClose"
  6609.     AX = E10Ah
  6610.     BX = size of parameter block in words (0001h)
  6611.     CX:DX -> parameter block (see below)
  6612. Return: AX = 0001h
  6613. Desc:    this function is used to close a dispatcher handle
  6614. SeeAlso: AX=E105h
  6615.  
  6616. Format of parameter block:
  6617. Offset    Size    Description
  6618.  00h    WORD    handle from NetOpen
  6619. --------e-92E10B-----------------------------
  6620. INT 92 - Da Vinci eMail Dispatcher - "NetCheckQueue"
  6621.     AX = E10Bh
  6622.     BX = size of parameter block in words (0004h)
  6623.     CX:DX -> parameter block (see below)
  6624. Return: AX = 0001h
  6625. SeeAlso: AX=E102h,AX=E10Ch
  6626.  
  6627. Format of parameter block:
  6628. Offset    Size    Description
  6629.  00h    WORD    segment of 24-byte username buffer
  6630.  02h    WORD    offset of 24-byte username buffer
  6631.  04h    WORD    segment of 24-byte protocol buffer
  6632.  06h    WORD    offset of 24-byte protocol buffer
  6633. --------e-92E10C-----------------------------
  6634. INT 92 - Da Vinci eMail Dispatcher - "NetReadQueue"
  6635.     AX = E10Ch
  6636.     BX = size of parameter block in words (0002h)
  6637.     CX:DX -> parameter block (see below)
  6638. Return: AX = 0001h
  6639. SeeAlso: AX=E10Bh
  6640.  
  6641. Format of parameter block:
  6642. Offset    Size    Description
  6643.  00h    WORD    Segment of 128 byte node address buffer
  6644.  02h    WORD    Offset of 128 byte node address buffer
  6645. --------e-92E10D-----------------------------
  6646. INT 92 - Da Vinci eMail Dispatcher - "NetSubmitName"
  6647.     AX = E10Dh
  6648.     BX = size of parameter block in words (0006h)
  6649.     CX:DX -> parameter block (see below)
  6650. Return: AX = status (see AH=E1h)
  6651. Desc:    this function is used to verify username/password
  6652. SeeAlso: AX=E10Eh
  6653.  
  6654. Format of parameter block:
  6655. Offset    Size    Description
  6656.  00h    WORD    segment of uppercase password string
  6657.  02h    WORD    offset of uppercase password string
  6658.  04h    WORD    segment of uppercase username string
  6659.  06h    WORD    offset of uppercase username string
  6660.  08h    WORD    segment of "DVSEMAIL"
  6661.  0Ah    WORD    offset of "DVSEMAIL"
  6662. --------e-92E10E-----------------------------
  6663. INT 92 - Da Vinci eMail Dispatcher - "NetRemoveName"
  6664.     AX = E10Eh
  6665.     BX = size of parameter block in words (0004h)
  6666.     CX:DX -> parameter block (see below)
  6667. Return: AX = 0001h
  6668. Desc:    this function is used to remove a username
  6669. SeeAlso: AX=E10Dh
  6670.  
  6671. Format of parameter block:
  6672. Offset    Type    Description
  6673.  00h    WORD    segment of uppercase username
  6674.  02h    WORD    offset of uppercase username
  6675.  04h    WORD    segment of "DVSEMAIL"
  6676.  06h    WORD    offset of "DVSEMAIL"
  6677. --------e-92E10FBX0000-----------------------
  6678. INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY
  6679.     AX = E10Fh
  6680.     BX = 0000h
  6681.     CX:DX ignored
  6682. Return: AX = 0001h
  6683. SeeAlso: AX=E180h
  6684. --------e-92E110-----------------------------
  6685. INT 92 - Da Vinci eMail Dispatcher - "NetGetAltRoute"
  6686.     AX = E110h
  6687.     BX = size of parameter block in words (0006h)
  6688.     CX:DX -> parameter block (see below)
  6689. Return: AX = 0001h
  6690. SeeAlso: AX=E111h,AX=E113h
  6691.  
  6692. Format of parameter block:
  6693. Offset    Size    Description
  6694.  00h  6 WORDs    ???
  6695. --------e-92E111-----------------------------
  6696. INT 92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes"
  6697.     AX = E111h
  6698.     BX = size of parameter block in words (0004h)
  6699.     CX:DX -> parameter block (see below)
  6700. Return: AX = 0001h
  6701. SeeAlso: AX=E110h,AX=E113h
  6702.  
  6703. Format of parameter block:
  6704. Offset    Size    Description
  6705.  00h  4 WORDs    ???
  6706. --------e-92E112-----------------------------
  6707. INT 92 - Da Vinci eMail Dispatcher - "NetChangePassword"
  6708.     AX = E112h
  6709.     BX = size of parameter block in words (0008h)
  6710.     CX:DX -> parameter block (see below)
  6711. Return: AX = 0001h
  6712. SeeAlso: AX=E180h
  6713.  
  6714. Format of parameter block:
  6715. Offset    Size    Description
  6716.  00h  8 WORDs    ???
  6717. --------e-92E113-----------------------------
  6718. INT 92 - Da Vinci eMail Dispatcher - "NetSetAltRoute"
  6719.     AX = E113h
  6720.     BX = size of parameter block in words (0008h)
  6721.     CX:DX -> parameter block (see below)
  6722. Return: AX = 0001h
  6723. SeeAlso: AX=E110h,AX=E111h
  6724.  
  6725. Format of parameter block:
  6726. Offset    Size    Description
  6727.  00h  8 WORDs    ???
  6728. --------e-92E175-----------------------------
  6729. INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR
  6730.     AX = E175h
  6731. Return: AX = 0012h
  6732.     BX = PSP
  6733. SeeAlso: AX=E180h
  6734. --------e-92E180-----------------------------
  6735. INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK
  6736.     AX = E180h
  6737. Return: AX = 0012h if installed
  6738.     ES:DX -> '$'-terminated driver information string
  6739. SeeAlso: AX=E102h,AX=E105h,AX=E10Fh,AX=E175h
  6740. --------r-93---------------------------------
  6741. INT 93 - IBM ROM BASIC - used while in interpreter
  6742. Notes:    called by ROM BASIC
  6743.     BASIC.COM/BASICA.COM do not restore vector on termination
  6744. --------N-93---------------------------------
  6745. INT 93 - IBM TOKEN RING ADAPTER - ???
  6746. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  6747. --------r-94---------------------------------
  6748. INT 94 - IBM ROM BASIC - used while in interpreter
  6749. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6750.     BASIC.COM/BASICA.COM do not restore vector on termination
  6751. --------s-94----SI0000-----------------------
  6752. INT 94 u - PCM driver - INITIALIZE SOUND
  6753.     SI = 0000h
  6754.     ES:BX -> parameters
  6755. Return: ???
  6756. Program: PCM.COM is a sound driver for Media Vision's Pro Audio Spectrum
  6757.       sound boards
  6758. Note:    the installation check consists of testing for the signature string
  6759.       "PCMDRIVER" immediately preceding the interrupt handler; the word
  6760.       preceding the signature gives the PCM driver's version
  6761. SeeAlso: SI=0001h,SI=0002h,SI=0003h,SI=0004h,SI=0005h,SI=000Ah
  6762. Index:    installation check;PCM driver|PCM.COM;installation check
  6763. Index:    PCM driver;installation check
  6764. --------s-94----SI0001-----------------------
  6765. INT 94 u - PCM driver - INITIALIZE PCM
  6766.     SI = 0001h
  6767.     ES:BX -> parameters
  6768. Return: ???
  6769. SeeAlso: SI=0000h,SI=0002h,SI=0003h,SI=000Ah
  6770. --------s-94----SI0002-----------------------
  6771. INT 94 u - PCM driver - INITIALIZE PCM INFO
  6772.     SI = 0002h
  6773.     ES:BX -> parameters (see below)
  6774. Return: ???
  6775. SeeAlso: SI=0000h,SI=0001h,SI=0003h,SI=000Ah
  6776.  
  6777. Format of parameters:
  6778. Offset    Size    Description
  6779.  00h    DWORD    rate
  6780.  04h    WORD    channel number
  6781.  06h    WORD    "comp"
  6782.  08h    WORD    "dsize"
  6783. --------s-94----SI0003-----------------------
  6784. INT 94 u - PCM driver - INITIALIZE DMA BUFFER
  6785.     SI = 0003h
  6786.     ES:BX -> parameters (see below)
  6787. Return: ???
  6788. SeeAlso: SI=0000h,SI=000Ah,SI=000Bh
  6789.  
  6790. Format of parameters:
  6791. Offset    Size    Description
  6792.  00h    DWORD    -> DMA buffer
  6793.  04h    WORD    size of DMA buffer
  6794.  06h    WORD    number of divisions
  6795. --------s-94----SI0004-----------------------
  6796. INT 94 u - PCM driver - INITIALIZE USER FUNCTION
  6797.     SI = 0004h
  6798.     ES:BX -> parameters (see below)
  6799. Return: ???
  6800. SeeAlso: SI=0000h,SI=0001h
  6801.  
  6802. Format of parameters:
  6803. Offset    Size    Description
  6804.  00h    DWORD    -> user function
  6805. --------s-94----SI0005-----------------------
  6806. INT 94 u - PCM driver - BEGIN AUDIO PLAY
  6807.     SI = 0005h
  6808. Return: ???
  6809. SeeAlso: SI=0000h,SI=0006h,SI=0007h,SI=0009h
  6810. --------s-94----SI0006-----------------------
  6811. INT 94 u - PCM driver - BEGIN AUDIO RECORD
  6812.     SI = 0006h
  6813. Return: ???
  6814. SeeAlso: SI=0005h,SI=0007h,SI=0009h
  6815. --------s-94----SI0007-----------------------
  6816. INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD
  6817.     SI = 0007h
  6818. Return: ???
  6819. SeeAlso: SI=0005h,SI=0006h,SI=0008h
  6820. --------s-94----SI0008-----------------------
  6821. INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD
  6822.     SI = 0008h
  6823. Return: ???
  6824. SeeAlso: SI=0007h
  6825. --------s-94----SI0009-----------------------
  6826. INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD
  6827.     SI = 0009h
  6828. Return: ???
  6829. SeeAlso: SI=0005h,SI=0006h,SI=0007h
  6830. --------s-94----SI000A-----------------------
  6831. INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA
  6832.     SI = 000Ah
  6833. Return: ???
  6834. SeeAlso: SI=0000h,SI=0001h,SI=0003h
  6835. Index:    uninstall;PCM driver
  6836. --------s-94----SI000B-----------------------
  6837. INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK
  6838.     SI = 000Bh
  6839.     ES:BX -> parameters (see below)
  6840. Return: ???
  6841. SeeAlso: SI=0003h
  6842.  
  6843. Format of parameters:
  6844. Offset    Size    Description
  6845.  00h    DWORD    -> memory block to contain DMA buffer
  6846.  04h    WORD    desired size of DMA buffer
  6847. --------s-94----SI000D-----------------------
  6848. INT 94 u - Media Vision PCM.COM - GET STATUS
  6849.     SI = 000Dh
  6850. Return: AX = status (0000h = waiting) (see below)
  6851.  
  6852. Bitfields for status:
  6853.  bit 0    playing
  6854.  bit 1    recording
  6855.  bit 2    SBplaying
  6856.  bit 3    SBrecording
  6857.  bit 14 SBpaused
  6858.  bit 15 paused
  6859. --------s-94----SI8000-----------------------
  6860. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS
  6861.     SI = 8000h
  6862. Return: DX:AX -> DMA buffer
  6863. Program: PCM.COM is a superset of the standard PCM driver which provides
  6864.       additional functions for fine control of the driver
  6865. Note:    the installation check for the Media Vision PCM.COM "shark" functions
  6866.       consists of testing for the signature "PCM-SHARK" at offset 107h in
  6867.       the INT 94 handler's segment
  6868. SeeAlso: SI=8001h,SI=8004h
  6869. Index:    installation check;Media Vision PCM.COM|PCM.COM;installation check
  6870. Index:    Media Vision PCM.COM;"shark" functions
  6871. --------s-94----SI8001-----------------------
  6872. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER SIZE AND DIVISIONS
  6873.     SI = 8001h
  6874. Return: AX = DMA buffer size
  6875.     DX = divisions
  6876. SeeAlso: SI=8000h
  6877. --------s-94----SI8002-----------------------
  6878. INT 94 u - Media Vision PCM.COM - CHECK BOARD ADDRESS
  6879.     SI = 8002h
  6880. Return: AX = status
  6881.         0000h if board not at specified I/O address
  6882.         other if board found
  6883. Note:    the I/O address is specified by ORing the base I/O port shifted left
  6884.       four bits into SI before calling INT 94
  6885. SeeAlso: SI=8000h
  6886. --------s-94----SI8004-----------------------
  6887. INT 94 u - Media Vision PCM.COM - GET INTERNAL NOTE BUFFER
  6888.     SI = 8004h
  6889. Return: AX = offset of note buffer (segment = segment of internal DMA buffer)
  6890.     DX = size of buffer in note structures
  6891. SeeAlso: SI=8000h
  6892. --------s-94----SI8005-----------------------
  6893. INT 94 u - Media Vision PCM.COM - SINGLE-STEP QUEUE
  6894.     SI = 8005h
  6895. Return: ???
  6896. --------s-94----SI8011-----------------------
  6897. INT 94 u - Media Vision PCM.COM - INITIALIZE
  6898.     SI = 8011h
  6899.     ES:BX -> "iobf91" structure
  6900. Return: ???
  6901. --------s-94----SI8012-----------------------
  6902. INT 94 u - Media Vision PCM.COM - LOAD SOUND FOR LATER PLAY THROUGH KEYBOARD
  6903.     SI = 8012h
  6904.     ES:BX -> "i94f92buf" structure
  6905. Return: ???
  6906. SeeAlso: SI=8013h,SI=8014h
  6907. --------s-94----SI8013-----------------------
  6908. INT 94 u - Media Vision PCM.COM - GET INTERNAL SOUND USAGE
  6909.     SI = 8013h
  6910. Return: AX = number of sounds used
  6911.     DX = maximum handles
  6912. --------s-94----SI8014-----------------------
  6913. INT 94 u - Media Vision PCM.COM - GET DATA FOR SPECIFIED SOUND
  6914.     SI = 8014h
  6915.     ES:BX -> "i94f92buf" structure to be filled in
  6916.         sound number field set to desired sound
  6917. Return: AX = status
  6918.         0000h successful
  6919.         FFFFh sound number out of range
  6920. SeeAlso: SI=8012h,SI=8013h
  6921. --------s-94----SI8015-----------------------
  6922. INT 94 u - Media Vision PCM.COM - GET/SET INTERNAL DMA BUFFER
  6923.     SI = 8015h
  6924.     ES:BX -> DMA info structure (see below)
  6925. Return: ???
  6926.  
  6927. Format of DMA info structure:
  6928. Offset    Size    Description
  6929.  00h    DWORD    -> DMA buffer (offset FFFFh = return current buffer info)
  6930.  04h    WORD    DMA buffer size
  6931.  06h    WORD    divisions
  6932. --------s-94----SI8016-----------------------
  6933. INT 94 u - Media Vision PCM.COM - SIMULATE DOUBLE-SHIFT HOTKEY
  6934.     SI = 8016h
  6935.     AX = hotkey number (01h-08h)
  6936. Return: ???
  6937. SeeAlso: AL=02h/SI=8017h
  6938. --------s-94--01SI8017-----------------------
  6939. INT 94 u - Media Vision PCM.COM - CTRL-G INTERCEPT
  6940.     AL = 01h
  6941.     SI = 8017h
  6942.     AH = new state (00h off, 01h on)
  6943. Return: ???
  6944. SeeAlso: AL=02h/SI=8017h
  6945. --------s-94--02SI8017-----------------------
  6946. INT 94 u - Media Vision PCM.COM - DOUBLE-SHIFT-HOTKEY SOUND FEATURE
  6947.     AL = 02h
  6948.     SI = 8017h
  6949.     AH = new state (00h off, 01h on)
  6950. Return: ???
  6951. --------s-94--04SI8017-----------------------
  6952. INT 94 u - Media Vision PCM.COM - RANDOM SOUND FEATURE
  6953.     AL = 04h
  6954.     SI = 8017h
  6955.     AH = new state
  6956.         00h off
  6957.         01h on
  6958.         CX = minimum delay
  6959.         DX = maximum delay
  6960. Return: ???
  6961. --------s-94--08SI8017-----------------------
  6962. INT 94 u - Media Vision PCM.COM - NO ACTIVITY FEATURE
  6963.     AL = 08h
  6964.     SI = 8017h
  6965.     AH = new state
  6966.         00h off
  6967.         01h on
  6968.         DX:CX = delay
  6969. Return: ???
  6970. SeeAlso: AL=10h/SI=8017h
  6971. --------s-94--10SI8017-----------------------
  6972. INT 94 u - Media Vision PCM.COM - TIMER CONTROL
  6973.     AL = 10h
  6974.     SI = 8017h
  6975.     AH bit 7: set timer
  6976.     AH bit 6: timer active (timer turned off if clear)
  6977.     AH bits 5-0: timer number
  6978.     DX:CX = delay if AH bit 7 set (one-shot if DX bit 15 set)
  6979. Return: ???
  6980. SeeAlso: AL=08h/SI=8017h
  6981. --------s-94----SI8018-----------------------
  6982. INT 94 u - Media Vision PCM.COM - GET INFO
  6983.     SI = 8018h
  6984.     AL = what to get
  6985.         00h "F92state"
  6986.         01h "F92bkgd"
  6987.         02h "I10timer"
  6988.         03h "I08state"
  6989. Return: DX:AX -> desired information
  6990. --------r-95---------------------------------
  6991. INT 95 - IBM ROM BASIC - used while in interpreter
  6992. Notes:    called by ROM BASIC
  6993.     BASIC.COM/BASICA.COM do not restore vector on termination
  6994. --------r-95---------------------------------
  6995. INT 95 - APL*PLUS/PC - DETERMINE R= SPACE
  6996. Note:    use only when the R= option is invoked on entering APL
  6997. --------r-96---------------------------------
  6998. INT 96 - IBM ROM BASIC - used while in interpreter
  6999. Notes:    called by ROM BASIC
  7000.     BASIC.COM/BASICA.COM do not restore vector on termination
  7001. --------r-97---------------------------------
  7002. INT 97 - IBM ROM BASIC - used while in interpreter
  7003. Notes:    called by ROM BASIC
  7004.     BASIC.COM/BASICA.COM do not restore vector on termination
  7005. --------r-98---------------------------------
  7006. INT 98 - IBM ROM BASIC - used while in interpreter
  7007. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7008.     BASIC.COM/BASICA.COM do not restore vector on termination
  7009. --------r-99---------------------------------
  7010. INT 99 - IBM ROM BASIC - used while in interpreter
  7011. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7012.     BASIC.COM/BASICA.COM do not restore vector on termination
  7013. --------r-9A---------------------------------
  7014. INT 9A - IBM ROM BASIC - used while in interpreter
  7015. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7016.     BASIC.COM/BASICA.COM do not restore vector on termination
  7017. --------r-9B---------------------------------
  7018. INT 9B - IBM ROM BASIC - used while in interpreter
  7019. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7020.     BASIC.COM/BASICA.COM do not restore vector on termination
  7021. --------r-9C---------------------------------
  7022. INT 9C - IBM ROM BASIC - used while in interpreter
  7023. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7024.     BASIC.COM/BASICA.COM do not restore vector on termination
  7025. --------v-9C---------------------------------
  7026. INT 9C - VIRUS - "INT13" - ORIGINAL INT 13h VECTOR
  7027. SeeAlso: INT 8B"VIRUS",INT 9D"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  7028. --------r-9D---------------------------------
  7029. INT 9D - IBM ROM BASIC - used while in interpreter
  7030. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7031.     BASIC.COM/BASICA.COM do not restore vector on termination
  7032. --------v-9D---------------------------------
  7033. INT 9D - VIRUS - "INT13" - ROM INT 13h ENTRY POINT
  7034. Note:    this vector is used by the virus to store the result of a call to
  7035.       INT 2F/AH=13h
  7036. SeeAlso: INT 2F/AH=13h,INT 9C"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  7037. --------r-9E---------------------------------
  7038. INT 9E - IBM ROM BASIC - used while in interpreter
  7039. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7040.     BASIC.COM/BASICA.COM do not restore vector on termination
  7041. --------v-9E---------------------------------
  7042. INT 9E - VIRUS - "INT13" - ORIGINAL INT 21h VECTOR
  7043. SeeAlso: INT 70"VIRUS",INT 9C"VIRUS",INT 9D"VIRUS",INT E0"VIRUS"
  7044. --------r-9F---------------------------------
  7045. INT 9F - IBM ROM BASIC - used while in interpreter
  7046. Notes:    called by ROM BASIC
  7047.     BASIC.COM/BASICA.COM do not restore vector on termination
  7048. --------v-9F---------------------------------
  7049. INT 9F - VIRUS - "INT13" - STORAGE FOR USER INT 13h VECTOR
  7050. Note:    while it is infecting a file, the INT13 virus grabs INT 13 and uses
  7051.       this interrupt to store the existing INT 13 vector for later
  7052.       restoration
  7053. SeeAlso: INT 9C"VIRUS",INT 9D"VIRUS"
  7054. --------r-A0---------------------------------
  7055. INT A0 - 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-A0---------------------------------
  7059. INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE
  7060. SeeAlso: INT 59
  7061. --------r-A1---------------------------------
  7062. INT A1 - IBM ROM BASIC - used while in interpreter
  7063. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7064.     BASIC.COM/BASICA.COM do not restore vector on termination
  7065. --------r-A2---------------------------------
  7066. INT A2 - IBM ROM BASIC - used while in interpreter
  7067. Notes:    called by ROM BASIC
  7068.     BASIC.COM/BASICA.COM do not restore vector on termination
  7069. --------r-A3---------------------------------
  7070. INT A3 - IBM ROM BASIC - used while in interpreter
  7071. Notes:    called by ROM BASIC
  7072.     BASIC.COM/BASICA.COM do not restore vector on termination
  7073. --------r-A4---------------------------------
  7074. INT A4 - IBM ROM BASIC - used while in interpreter
  7075. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7076.     BASIC.COM/BASICA.COM do not restore vector on termination
  7077. --------U-A4---------------------------------
  7078. INT A4 U - Right Hand Man - API
  7079.     AH = function number (v3.3 supports functions 00h-52h)
  7080. Return: CF set on error
  7081.     CF clear if successful
  7082. Program: Right Hand Man is a TSR desk-top utility originally by Red E Products
  7083.       which has evolved into Futurus Team
  7084. Note:    this interrupt is only hooked while popped up
  7085. SeeAlso: INT 2F/AX=A4E0h
  7086. --------r-A5---------------------------------
  7087. INT A5 - IBM ROM BASIC - used while in interpreter
  7088. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7089.     BASIC.COM/BASICA.COM do not restore vector on termination
  7090. --------r-A6---------------------------------
  7091. INT A6 - IBM ROM BASIC - used while in interpreter
  7092. Notes:    called by ROM BASIC
  7093.     BASIC.COM/BASICA.COM do not restore vector on termination
  7094. --------r-A7---------------------------------
  7095. INT A7 - IBM ROM BASIC - used while in interpreter
  7096. Notes:    called by ROM BASIC
  7097.     BASIC.COM/BASICA.COM do not restore vector on termination
  7098. --------r-A8---------------------------------
  7099. INT A8 - IBM ROM BASIC - used while in interpreter
  7100. Notes:    called by ROM BASIC
  7101.     BASIC.COM/BASICA.COM do not restore vector on termination
  7102. --------r-A9---------------------------------
  7103. INT A9 - IBM ROM BASIC - used while in interpreter
  7104. Notes:    called by ROM BASIC
  7105.     BASIC.COM/BASICA.COM do not restore vector on termination
  7106. --------r-AA---------------------------------
  7107. INT AA - IBM ROM BASIC - used while in interpreter
  7108. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7109.     BASIC.COM/BASICA.COM do not restore vector on termination
  7110. --------r-AB---------------------------------
  7111. INT AB - IBM ROM BASIC - used while in interpreter
  7112. Notes:    called by ROM BASIC
  7113.     BASIC.COM/BASICA.COM do not restore vector on termination
  7114. --------r-AC---------------------------------
  7115. INT AC - IBM ROM BASIC - used while in interpreter
  7116. Notes:    called by ROM BASIC
  7117.     BASIC.COM/BASICA.COM do not restore vector on termination
  7118. --------r-AD---------------------------------
  7119. INT AD - IBM ROM BASIC - used while in interpreter
  7120. Notes:    called by ROM BASIC
  7121.     BASIC.COM/BASICA.COM do not restore vector on termination
  7122. --------r-AE---------------------------------
  7123. INT AE - IBM ROM BASIC - used while in interpreter
  7124. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7125.     BASIC.COM/BASICA.COM do not restore vector on termination
  7126. --------r-AF---------------------------------
  7127. INT AF - IBM ROM BASIC - used while in interpreter
  7128. Notes:    called by ROM BASIC
  7129.     BASIC.COM/BASICA.COM do not restore vector on termination
  7130. --------r-B0---------------------------------
  7131. INT B0 - IBM ROM BASIC - used while in interpreter
  7132. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7133.     BASIC.COM/BASICA.COM do not restore vector on termination
  7134. --------r-B1---------------------------------
  7135. INT B1 - IBM ROM BASIC - used while in interpreter
  7136. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7137.     BASIC.COM/BASICA.COM do not restore vector on termination
  7138. --------r-B2---------------------------------
  7139. INT B2 - IBM ROM BASIC - used while in interpreter
  7140. Notes:    called by ROM BASIC
  7141.     BASIC.COM/BASICA.COM do not restore vector on termination
  7142. --------r-B3---------------------------------
  7143. INT B3 - IBM ROM BASIC - used while in interpreter
  7144. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7145.     BASIC.COM/BASICA.COM do not restore vector on termination
  7146. --------U-B370-------------------------------
  7147. INT B3 - ZIPKEY - GET VERSION
  7148.     AH = 70h
  7149. Return: AH = major version
  7150.     AL = minor version
  7151.     CL = number of states and territories in current database
  7152.     DH = year of current database - 1900
  7153.     DL = month of current database's file date
  7154. Program: ZIPKEY is a resident ZIPCODE database by Eric Isaacson
  7155. Note:    if installed, the string "ZIPKEY" is present at offset 75h in the
  7156.       interrupt handler's segment, and the byte at 7Bh contains the API
  7157.       version number (00h for v1.x, 01h for v2.0)
  7158. --------U-B371-------------------------------
  7159. INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE
  7160.     AH = 71h
  7161.     BX = abbreviation, in either case (first letter in BL)
  7162. Return: CF set on error
  7163.         AL = FFh
  7164.     CF clear if successful
  7165.         AL = ZIPKEY state code
  7166. SeeAlso: AH=72h
  7167. --------U-B372-------------------------------
  7168. INT B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION
  7169.     AH = 72h
  7170.     BL = ZIPKEY state code
  7171. Return: CF set on error
  7172.         AX destroyed
  7173.     CF clear if successful
  7174.         AX = abbreviation, in upper case
  7175. SeeAlso: AH=71h,AH=73h
  7176. --------U-B373-------------------------------
  7177. INT B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME
  7178.     AH = 73h
  7179.     BL = ZIPKEY state code
  7180.     ES:DI -> buffer for name
  7181. Return: CF set on error
  7182.         AX destroyed
  7183.     CF clear if successful
  7184.         ES:DI points one byte beyond end of name
  7185. SeeAlso: AH=72h
  7186. --------U-B374-------------------------------
  7187. INT B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS
  7188.     AH = 74h
  7189.     DX = zipcode region (0-999)
  7190.     CH = last two digits of zipcode (0-99)
  7191.     ES:DI -> buffer
  7192. Return: CF set on error
  7193.         AX destroyed
  7194.     CF clear if successful
  7195.         ES:DI points one byte beyond end of digit string
  7196. --------U-B375-------------------------------
  7197. INT B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE
  7198.     AH = 75h
  7199.     DX = zipcode region (0-999)
  7200.     CH = last two digits of zipcode (0-99)
  7201. Return: CF set on error (zipcode not found)
  7202.         AL = suggested state code, FFh if none
  7203.     CF clear if successful
  7204.         AL = ZIPKEY state code
  7205.         BX = area code (v2.0+)
  7206. SeeAlso: AH=76h,AH=79h
  7207. --------U-B376-------------------------------
  7208. INT B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE
  7209.     AH = 76h
  7210.     DX = zipcode region (0-999)
  7211.     CH = last two digits of zipcode (0-99)
  7212.     ES:DI -> buffer for name
  7213. Return: CF set on error
  7214.         AL = suggested state code, FFh if none
  7215.         ES:DI buffer filled with suggested city name
  7216.     CF clear if successful
  7217.         AL = ZIPKEY state code
  7218.         BX = area code (v2.0+)
  7219.         ES:DI points one byte beyond end of name
  7220. SeeAlso: AH=75h,AH=78h,AH=7Eh
  7221. --------U-B377-------------------------------
  7222. INT B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE
  7223.     AH = 77h
  7224.     DX = zipcode region (0-999)
  7225.     CH = last two digits of zipcode (0-99)
  7226.     BX = 16-bit BIOS keycode for a defined ZIPKEY alternate exit key
  7227. Return: CF set on error
  7228.         AX destroyed
  7229.     CF clear if successful
  7230.         zipcode specification as defined by the BX keystroke is placed in
  7231.           keyboard buffer, as if the user had popped up ZIPKEY and exited
  7232.           by pressing the key specified by BX
  7233. --------U-B378-------------------------------
  7234. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY
  7235.     AH = 78h
  7236.     BL = ZIPKEY state code
  7237.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  7238. Return: BH = number of matching entries (set to 51 if more than 50)
  7239.     DX = zipcode region of first match (0-999)
  7240.     CL = last two digits of first zipcode in the range (0-99)
  7241.     CH = last two digits of last zipcode in the range (0-99)
  7242.     AX destroyed
  7243. SeeAlso: AH=79h,AH=7Ah
  7244. --------U-B379-------------------------------
  7245. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY
  7246.     AH = 79h
  7247.     BL = ZIPKEY state code of first state to search
  7248.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  7249. Return: AL = ZIPKEY state code of first matching state
  7250.     BH = number of matching entries (set to 51 if more than 50)
  7251.     DX = zipcode region of first match (0-999)
  7252.     CL = last two digits of first zipcode in first range (0-99)
  7253.     CH = last two digits of last zipcode in first range (0-99)
  7254. Note:    to find all matching cities, repeat search with BL set to one more than
  7255.       the returned AL
  7256. SeeAlso: AH=78h,AH=7Ah
  7257. --------U-B37A-------------------------------
  7258. INT B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP
  7259.     AH = 7Ah
  7260.     BL = case number (0 to one less than value returned in BH by lookup)
  7261. Return: AL = ZIPKEY state code
  7262.     DX = zipcode region (0-999)
  7263.     CL = last two digits of first zipcode in the range (0-99)
  7264.     CH = last two digits of last zipcode in the range (0-99)
  7265. SeeAlso: AH=78h,AH=79h
  7266. --------U-B37B-------------------------------
  7267. INT B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT
  7268.     AH = 7Bh
  7269. Return: BL = maximum number of characters for a city name
  7270.     BH = ZIPKEY state code for last city-name search
  7271.         FFh if none
  7272.     CX:DX = internal code identifying last city search
  7273.     AX destroyed
  7274. SeeAlso: AH=7Ch
  7275. --------U-B37C-------------------------------
  7276. INT B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT
  7277.     AH = 7Ch
  7278.     BL = maximum number of characters for a city name
  7279.     BH = ZIPKEY state code for last city-name search
  7280.         FFh if none
  7281.     CX:DX = internal code returned by AH=7Bh
  7282. Return: CF set on error
  7283.     CF clear if successful
  7284.     AX destroyed
  7285. SeeAlso: AH=7Bh
  7286. --------U-B37D-------------------------------
  7287. INT B3 - ZIPKEY - REQUEST POP UP
  7288.     AH = 7Dh
  7289.     BL = index number to simulate pressing a hotkey
  7290.         FFh for immediate popup with no playback on return
  7291. Return: CF set on error
  7292.         AL = FDh already busy with another request
  7293.            = FEh illegal function
  7294.     CF clear if successful
  7295.         AX destroyed
  7296.         window popped up and was closed by the user
  7297. SeeAlso: AH=70h
  7298. --------U-B37E-------------------------------
  7299. INT B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION
  7300.     AH = 7Eh
  7301.     DX = zipcode region (0-999)
  7302.     ES:DI -> buffer for name
  7303. Return: CF set on error
  7304.         AL = FFh region does not exist
  7305.     CF clear if successful
  7306.         AL = ZIPKEY state code
  7307.         ES:DI points one byte beyond end of name
  7308. SeeAlso: AH=76h
  7309. --------U-B37F-------------------------------
  7310. INT B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS
  7311.     AH = 7Fh
  7312.     BL = function
  7313.         00h turn off hotkeys
  7314.         01h turn on hotkeys
  7315.         02h return hotkey status
  7316.         03h toggle hotkey status
  7317. Return: AL = hotkey status
  7318.         00h off
  7319.         01h on
  7320. --------U-B380-------------------------------
  7321. INT B3 - ZIPKEY v2.0+ - DETERMINE STATE FOR AREA CODE
  7322.     AH = 80h
  7323.     BX = telephone area code (decimal)
  7324. Return: CF clear if successful
  7325.         AL = ZIPKEY state code
  7326.         DX = first ZIP region for state (03E8h if Canada)
  7327.         CX = number of ZIP regions in state
  7328.     CF set on error
  7329.         AL = FFh
  7330.         DX = 03E9h
  7331. --------r-B4---------------------------------
  7332. INT B4 - IBM ROM BASIC - used while in interpreter
  7333. Notes:    called by ROM BASIC
  7334.     BASIC.COM/BASICA.COM do not restore vector on termination
  7335. --------r-B4---------------------------------
  7336. INT B4 - StackMan - REQUEST NEW STACK
  7337. Return: SS:SP -> new stack
  7338. Program: StackMan is a freeware stack manager by Franz Veldman of ESaSS B.V.
  7339.       which functions as a replacement for the DOS STACK= command as well
  7340.       as permitting multiple TSRs to share a pool of stack space
  7341. Note:    the installation check consists of testing for the string "STACKXXX" at
  7342.       offset 0Ah from the interrupt handler
  7343. SeeAlso: INT 2F/AX=C9FFh,INT B5"STACKMAN"
  7344. Index:    installation check;STACKMAN
  7345. --------r-B5---------------------------------
  7346. INT B5 - IBM ROM BASIC - used while in interpreter
  7347. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7348.     BASIC.COM/BASICA.COM do not restore vector on termination
  7349. --------r-B5---------------------------------
  7350. INT B5 - StackMan - RESTORE ORIGINAL STACK
  7351.     SS:SP -> stack returned by INT B4
  7352. Return: SS:SP restored to value before INT B4
  7353. SeeAlso: INT 2F/AX=C9FFh,INT B4"StackMan"
  7354. --------m-B5---------------------------------
  7355. INT B5 U - Netroom NETSWAP4 - ???
  7356.     ???
  7357. Return: ???
  7358. SeeAlso: INT 31/AH=57h
  7359. --------r-B6---------------------------------
  7360. INT B6 - IBM ROM BASIC - used while in interpreter
  7361. Notes:    called by ROM BASIC
  7362.     BASIC.COM/BASICA.COM do not restore vector on termination
  7363. --------y-B6---------------------------------
  7364. INT B6 - (NOT A VECTOR!) - USED BY TBFENCE
  7365. Program: TBFence is a security program by ESaSS B.V. which transparently
  7366.       encrypts floppies and optionally allows only encrypted diskettes to
  7367.       be accessed
  7368. Note:    the low word of this vector (0000h:02D8h) contains the segment of the
  7369.       TBFence INT 13h code, which starts with the signature word E487h;
  7370.       this forms the installation check
  7371.     the highest byte of this vector contains the start of a FAR JMP
  7372.       instruction to ???
  7373. SeeAlso: INT B7"TBFENCE"
  7374. Index:    installation check;TBFence
  7375. --------r-B7---------------------------------
  7376. INT B7 - IBM ROM BASIC - used while in interpreter
  7377. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7378.     BASIC.COM/BASICA.COM do not restore vector on termination
  7379. --------y-B7---------------------------------
  7380. INT B7 - TBFENCE - ???
  7381. SeeAlso: INT B6"TBFENCE"
  7382. --------r-B8---------------------------------
  7383. INT B8 - IBM ROM BASIC - used while in interpreter
  7384. Notes:    called by ROM BASIC
  7385.     BASIC.COM/BASICA.COM do not restore vector on termination
  7386. --------r-B9---------------------------------
  7387. INT B9 - IBM ROM BASIC - used while in interpreter
  7388. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7389.     BASIC.COM/BASICA.COM do not restore vector on termination
  7390. --------r-BA---------------------------------
  7391. INT BA - IBM ROM BASIC - used while in interpreter
  7392. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7393.     BASIC.COM/BASICA.COM do not restore vector on termination
  7394. --------r-BB---------------------------------
  7395. INT BB - IBM ROM BASIC - used while in interpreter
  7396. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7397.     BASIC.COM/BASICA.COM do not restore vector on termination
  7398. --------r-BC---------------------------------
  7399. INT BC - IBM ROM BASIC - used while in interpreter
  7400. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7401.     BASIC.COM/BASICA.COM do not restore vector on termination
  7402. --------r-BD---------------------------------
  7403. INT BD - IBM ROM BASIC - used while in interpreter
  7404. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7405.     BASIC.COM/BASICA.COM do not restore vector on termination
  7406. --------r-BE---------------------------------
  7407. INT BE - IBM ROM BASIC - used while in interpreter
  7408. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7409.     BASIC.COM/BASICA.COM do not restore vector on termination
  7410. --------Q-BE---------------------------------
  7411. INT BE - DESQview/X - ???
  7412. Note:    points at an IRET
  7413. SeeAlso: INT 15/AX=BFDEh/BX=0006h,INT 63"DESQview"
  7414. --------r-BF---------------------------------
  7415. INT BF - 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. --------r-C0---------------------------------
  7419. INT C0 - IBM ROM BASIC - used while in interpreter
  7420. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7421.     BASIC.COM/BASICA.COM do not restore vector on termination
  7422. --------r-C1---------------------------------
  7423. INT C1 - IBM ROM BASIC - used while in interpreter
  7424. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7425.     BASIC.COM/BASICA.COM do not restore vector on termination
  7426. --------r-C2---------------------------------
  7427. INT C2 - IBM ROM BASIC - used while in interpreter
  7428. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7429.     BASIC.COM/BASICA.COM do not restore vector on termination
  7430. --------r-C3---------------------------------
  7431. INT C3 - IBM ROM BASIC - used while in interpreter
  7432. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7433.     BASIC.COM/BASICA.COM do not restore vector on termination
  7434. --------r-C4---------------------------------
  7435. INT C4 - IBM ROM BASIC - used while in interpreter
  7436. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7437.     BASIC.COM/BASICA.COM do not restore vector on termination
  7438. --------r-C5---------------------------------
  7439. INT C5 - IBM ROM BASIC - used while in interpreter
  7440. Notes:    called by ROM BASIC
  7441.     BASIC.COM/BASICA.COM do not restore vector on termination
  7442. --------r-C6---------------------------------
  7443. INT C6 - IBM ROM BASIC - used while in interpreter
  7444. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7445.     BASIC.COM/BASICA.COM do not restore vector on termination
  7446. --------r-C6---------------------------------
  7447. INT C6 - APL*PLUS/PC - IDENTICAL TO INT 86
  7448. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7449.       the older interrupts
  7450. SeeAlso: INT 86"APL"
  7451. --------r-C7---------------------------------
  7452. INT C7 - IBM ROM BASIC - used while in interpreter
  7453. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7454.     BASIC.COM/BASICA.COM do not restore vector on termination
  7455. --------r-C7---------------------------------
  7456. INT C7 - APL*PLUS/PC - ???
  7457. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7458.       the older interrupts
  7459. SeeAlso: INT 87"APL"
  7460. --------r-C8---------------------------------
  7461. INT C8 - IBM ROM BASIC - used while in interpreter
  7462. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7463.     BASIC.COM/BASICA.COM do not restore vector on termination
  7464. --------r-C8---------------------------------
  7465. INT C8 - APL*PLUS/PC - IDENTICAL TO INT 88
  7466. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7467.       the older interrupts
  7468. SeeAlso: INT 88"APL"
  7469. --------r-C9---------------------------------
  7470. INT C9 - IBM ROM BASIC - used while in interpreter
  7471. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7472.     BASIC.COM/BASICA.COM do not restore vector on termination
  7473. --------r-C9---------------------------------
  7474. INT C9 - APL*PLUS/PC - ???
  7475. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7476.       the older interrupts
  7477. SeeAlso: INT 89"APL"
  7478. --------r-CA---------------------------------
  7479. INT CA - IBM ROM BASIC - used while in interpreter
  7480. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7481.     BASIC.COM/BASICA.COM do not restore vector on termination
  7482. --------r-CA---------------------------------
  7483. INT CA - APL*PLUS/PC - PRINT SCREEN
  7484. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7485.       the older interrupts
  7486. SeeAlso: INT 8A"APL"
  7487. --------r-CB---------------------------------
  7488. INT CB - IBM ROM BASIC - used while in interpreter
  7489. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7490.     BASIC.COM/BASICA.COM do not restore vector on termination
  7491. --------r-CB---------------------------------
  7492. INT CB - APL*PLUS/PC - BEEP
  7493. Notes:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7494.       the older interrupts
  7495.     same as printing a ^G via INT 21/AH=02h
  7496. SeeAlso: INT 8B"APL"
  7497. --------r-CC---------------------------------
  7498. INT CC - 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. --------r-CC---------------------------------
  7502. INT CC - APL*PLUS/PC - CLEAR SCREEN MEMORY
  7503.     AX = flag
  7504.         0000h do not save display attributes
  7505.         0001h save attributes
  7506. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7507.       the older interrupts
  7508. SeeAlso: INT 8C"APL"
  7509. --------r-CD---------------------------------
  7510. INT CD - IBM ROM BASIC - used while in interpreter
  7511. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7512.     BASIC.COM/BASICA.COM do not restore vector on termination
  7513. --------r-CD---------------------------------
  7514. INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7515. --------r-CE---------------------------------
  7516. INT CE - IBM ROM BASIC - used while in interpreter
  7517. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7518.     BASIC.COM/BASICA.COM do not restore vector on termination
  7519. --------r-CE---------------------------------
  7520. INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7521. --------r-CF---------------------------------
  7522. INT CF - IBM ROM BASIC - used while in interpreter
  7523. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7524.     BASIC.COM/BASICA.COM do not restore vector on termination
  7525. --------r-CF---------------------------------
  7526. INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION
  7527. SeeAlso: INT E0"APL"
  7528. --------r-D0---------------------------------
  7529. INT D0 - IBM ROM BASIC - used while in interpreter
  7530. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7531.     BASIC.COM/BASICA.COM do not restore vector on termination
  7532. --------r-D0---------------------------------
  7533. INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7534. --------U-D0---------------------------------
  7535. INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR
  7536. Program: NJFRERAM is a resident free-memory display utility by Mike "Nifty
  7537.       James" Blaszczak
  7538. Note:    if NJFRERAM is installed, this vector points at the signature "NJ"
  7539. Index:    installation check;NJFRERAM
  7540. --------r-D1---------------------------------
  7541. INT D1 - IBM ROM BASIC - used while in interpreter
  7542. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7543.     BASIC.COM/BASICA.COM do not restore vector on termination
  7544. --------r-D1---------------------------------
  7545. INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7546. --------r-D2---------------------------------
  7547. INT D2 - IBM ROM BASIC - used while in interpreter
  7548. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7549.     BASIC.COM/BASICA.COM do not restore vector on termination
  7550. --------r-D2---------------------------------
  7551. INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7552. --------r-D3---------------------------------
  7553. INT D3 - IBM ROM BASIC - used while in interpreter
  7554. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7555.     BASIC.COM/BASICA.COM do not restore vector on termination
  7556. --------r-D3---------------------------------
  7557. INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7558. --------r-D4---------------------------------
  7559. INT D4 - IBM ROM BASIC - used while in interpreter
  7560. Notes:    called by ROM BASIC
  7561.     BASIC.COM/BASICA.COM do not restore vector on termination
  7562. --------r-D4---------------------------------
  7563. INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7564. --------O-D400-------------------------------
  7565. INT D4 O - PC-MOS/386 v5.01 - OBSOLETE FUNCTIONS
  7566.     AH = 00h and 01h
  7567. Return: nothing
  7568. Desc:    PC-MOS/386 v5.01 reports that these functions are no longer supported
  7569.       and enters an endless loop
  7570. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7571.       system by The Software Link, Inc.
  7572. --------O-D402-------------------------------
  7573. INT D4 - PC-MOS/386 v3.0+ - GET SYSTEM CONTROL BLOCK POINTER
  7574.     AH = 02h
  7575. Return: AX = 0000h
  7576.     ES:BX -> System Control Block in V86 mode (see below)
  7577.     ES:EBX -> System Control Block in native mode (see below)
  7578. Note:    superseded by AH=26h
  7579. SeeAlso: AH=04h,AH=10h,AH=26h,AH=28h,AH=29h,AH=2Ah,INT 21/AX=3000h,INT 38
  7580.  
  7581. Format of System Control Block:
  7582. Offset    Size    Description
  7583.  00h    WORD    pointer to first TCB in chain
  7584.  02h 17 BYTEs    reserved
  7585.  13h    WORD    pointer to current task's TCB
  7586.  15h    WORD    pointer to TCB of visible (console) task
  7587. --------O-D403-------------------------------
  7588. INT D4 - PC-MOS/386 v5.01 - GET/SET EXTENDED DIRECTORY INFORMATION
  7589.     AH = 03h
  7590.     AL = subfunction (00h get, 01h set)
  7591.     DS:(E)DX -> pathname
  7592.     ES:(E)BX -> 10-byte buffer for directory information (see below)
  7593. Return: CF clear if successful
  7594.         AL = permitted access level for file (00h-03h)
  7595.         ES:(E)BX -> modified buffer (AL=01h on entry)
  7596.     CF set on error
  7597.         AX = error code (see INT 21/AH=59h)
  7598. Notes:    BX/DX are used in V86 mode, EBX/EDX in native mode
  7599.     the file class cannot be changed for files because it affects the
  7600.       encryption method, but directories can have their classes changed
  7601.  
  7602. Format of directory information:
  7603. Offset    Size    Description
  7604.  00h    BYTE    reserved (0)
  7605.  01h    BYTE    file class ('A'-'Z' or 00h)
  7606.  02h    DWORD    user ID of file creator
  7607.  06h    WORD    file creation time (see INT 21/AX=5700h)
  7608.  08h    WORD    file creation date (see INT 21/AX=5700h)
  7609. --------O-D404-------------------------------
  7610. INT D4 - PC-MOS/386 v3.0+ - GET TASK CONTROL BLOCK
  7611.     AH = 04h
  7612.     BX = task ID or FFFFh for calling task
  7613. Return: CF clear if successful
  7614.         ES = segment of Task Control Block (TCB) (see below)
  7615.     CF set on error
  7616.         AX = error code (see INT 21/AH=59h)
  7617. Note:    superseded by AH=27h
  7618. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah,INT 38
  7619.  
  7620. Format of Task Control Block:
  7621. Offset    Size    Description
  7622.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7623.  01h    BYTE    header block ID, "T" = TCB
  7624.  02h    WORD    length of block in paragraphs
  7625.  04h    WORD    segment address of next header block (0000h if last)
  7626.  06h    WORD    segment address of previous header block (0000h if first)
  7627.  08h    WORD    pointer to next TCB
  7628.  0Ah    WORD    pointer to previous TCB
  7629.  0Ch    WORD    pointer to associated TCB (if applicable)
  7630.  0Eh    WORD    reserved
  7631. ---TCB---
  7632.  10h    WORD    TCB task ID
  7633.  12h    WORD    native context save area
  7634.  14h    WORD    start address of task
  7635.  16h    WORD    end address of task
  7636.  18h    BYTE    task priority
  7637.  19h    BYTE    task time slice
  7638.  1Ah    BYTE    "TCBWAIT" run status of task
  7639.  1Bh    BYTE    "TCBSTAT" what the task is waiting for
  7640.  1Ch    DWORD    address of polling routine
  7641.  20h    BYTE    error code from last function call
  7642.  21h 11 BYTEs    name of currently executing task
  7643.  2Ch  4 BYTEs    ???
  7644.  30h    BYTE    keyboard disabled if bit 1 set
  7645.  31h    BYTE    current shift state and toggles
  7646.  32h  2 BYTEs    ???
  7647.  34h    BYTE    current video mode
  7648.  35h    BYTE    current video page
  7649.  36h    BYTE    number of text columns per screen
  7650.  37h    BYTE    number of text rows per screen
  7651.  38h    WORD    length of video buffer
  7652.  3Ah    WORD    video page length
  7653.  3Ch    WORD    apge start address in video RAM
  7654.  3Eh  4 WORDs    current cursor positions for four screen pages
  7655.  46h  8 BYTEs    ???
  7656.  4Eh    WORD    current cursor type
  7657.  50h    BYTE    current palette setting
  7658.  51h    BYTE    original video mode
  7659.  52h    BYTE    start CRT row (00h or 01h)
  7660.  53h    BYTE    video RAM in task active
  7661.  54h    WORD    handle of video save area
  7662.  56h    WORD    page count of video save area
  7663.  58h    WORD    segment address of video save area
  7664.  5Ah    WORD    poitner to first Task File Block (see below)
  7665.  5Ch    WORD    pointer to first Current Directory Block (see below)
  7666.  5Eh    WORD    pointer to active Current Directory Block (see below)
  7667.  60h    BYTE    number of drives
  7668.  61h    BYTE    current drive (0=A:, etc.)
  7669.  62h    DWORD    disk transfer address
  7670.  66h  4 BYTEs    ???
  7671.  6Ah    BYTE    verify flag (nonzero = on)
  7672.  6Bh    BYTE    break flag (nonzero = on)
  7673.  6Ch    WORD    share/lock retry count
  7674.  6Eh    WORD    ticks between share/lock retries
  7675.  70h    BYTE    remote printer flags (see below)
  7676.  71h    BYTE    ETX/ACK delay count
  7677.  72h    WORD    spooler segment address
  7678.  74h  2 BYTEs    ???
  7679.  76h  3 BYTEs    remote printer redirection for LPT1 through LPT3 (see below)
  7680.  79h  2 BYTEs    ???
  7681.  7Bh    DWORD    offset of username in TCB
  7682.  7Fh    BYTE    current output class
  7683.  80h  7 BYTEs    protection access rights, 2 bits per class (writeable!)
  7684.  87h 122 BYTEs    ???
  7685. 101h    BYTE    TCB sleep downcounter value
  7686. 102h 20 BYTEs    ???
  7687. 116h    BYTE    last scan code
  7688.     ...
  7689. 5D0h    DWORD    far pointer to Device Driver Terminal's entry point
  7690. 5D4h    WORD    offset of logical screen
  7691. 5D6h    WORD    segment of logical screen
  7692. 5D8h    WORD    cursor offset within page
  7693. 5DAh    BYTE    screen columns
  7694. 5DBh    WORD    async port number (0000h = none)
  7695. 5DDh    DWORD    physical baudrate
  7696. 5E1h 19 BYTEs    reserved for Device Driver Terminal (DDT)
  7697.     ...
  7698. 7A6h    DWORD    far pointer to unregister calling chain
  7699.  
  7700. Bitfield for remote printer flags:
  7701.  bit 0    LPT1 to terminal
  7702.  bit 1    LPT2 to terminal
  7703.  bit 2    LPT3 to terminal
  7704.  bit 3    escape to printer pending
  7705.  bit 4    use XON/XOFF
  7706.  bit 5    use ETX/ACK
  7707.  bit 6    waiting for ACK or XON
  7708.  bit 7    transparent printing on
  7709.  
  7710. Values for remote printer redirection:
  7711.  00h    not redirected
  7712.  01h    redirected to COM1
  7713.  ...
  7714.  18h    redirected to COM24
  7715.  51h    redirected to LPT1
  7716.  52h    redirected to LPT2
  7717.  53h    redirected to LPT3
  7718.  
  7719. Format of Task File Block:
  7720. Offset    Size    Description
  7721.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7722.  01h    BYTE    header block ID, "F" = task file block
  7723.  02h    WORD    length of block in paragraphs
  7724.  04h    WORD    segment address of next header block (0000h if last)
  7725.  06h    WORD    segment address of previous header block (0000h if first)
  7726.  08h    WORD    pointer to next TCB
  7727.  0Ah    WORD    pointer to previous TCB
  7728.  0Ch    WORD    pointer to associated TCB (if applicable)
  7729.  0Eh    WORD    reserved
  7730. ---TFB---
  7731.  10h    WORD    segment address of next TFB
  7732.  12h    WORD    segment address of previous TFB
  7733.  14h    WORD    segment address of TFB's Global File Block (see below)
  7734.  16h    WORD    segment address of owner's PSP
  7735.  18h    WORD    file handle
  7736.  1Ah  3 BYTEs    ???
  7737.  1Dh    DWORD    file position
  7738.  21h  4 BYTEs    ???
  7739.  25h    BYTE    IOCTL flags (see below)
  7740.  26h  2 BYTEs    ???
  7741.  
  7742. Bitfields for IOCTL flags:
  7743.  bit 0    stdin
  7744.  bit 1    stdout
  7745.  bit 2    null device
  7746.  bit 3    clock device
  7747.  bit 4    reserved
  7748.  bit 5    ASCII mode instead of binary
  7749.  bit 6    EOF encountered on input
  7750.  bit 7    device rather than file
  7751.  
  7752. Format of Global File Block:
  7753. Offset    Size    Description
  7754.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7755.  01h    BYTE    header block ID, "G" = global file block
  7756.  02h    WORD    length of block in paragraphs
  7757.  04h    WORD    segment address of next header block (0000h if last)
  7758.  06h    WORD    segment address of previous header block (0000h if first)
  7759.  08h    WORD    pointer to next TCB
  7760.  0Ah    WORD    pointer to previous TCB
  7761.  0Ch    WORD    pointer to associated TCB (if applicable)
  7762.  0Eh    WORD    reserved
  7763. ---GFB---
  7764.  10h 10 BYTEs    ???
  7765.  1Ah    WORD    file attribute
  7766.  1Ch    BYTE    ???
  7767.  1Dh    DWORD    address of device driver
  7768.  21h    WORD    first cluster
  7769.  23h    WORD    time of last modification
  7770.  25h    WORD    date of last modification
  7771.  27h    DWORD    size of file in bytes
  7772.  2Bh 11 BYTEs    ???
  7773.  36h 11 BYTEs    device name or FCB-format filename
  7774.  41h    WORD    segment address of TFB list
  7775.  43h    WORD    segment address of first RLB (see below) (0000h = none)
  7776.  45h    BYTE    flag: nonzero if GFB refers to character device
  7777.  46h    WORD    address of Block Device Block (see below)
  7778.  48h    WORD    sector of file's directory entry
  7779.  4Ah    WORD    high word of file's directory entry
  7780.  4Ch    WORD    ofsset of directory entry within sector
  7781.  
  7782. Format of Current Directory Block:
  7783. Offset    Size    Description
  7784.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7785.  01h    BYTE    header block ID, "C" = current directory block
  7786.  02h    WORD    length of block in paragraphs
  7787.  04h    WORD    segment address of next header block (0000h if last)
  7788.  06h    WORD    segment address of previous header block (0000h if first)
  7789.  08h    WORD    pointer to next TCB
  7790.  0Ah    WORD    pointer to previous TCB
  7791.  0Ch    WORD    pointer to associated TCB (if applicable)
  7792.  0Eh    WORD    reserved
  7793. ---CDB---
  7794.  10h    BYTE    drive number
  7795.  11h    BYTE    ???
  7796.  12h 64 BYTEs    directory name
  7797.  52h    WORD    first directory cluster (0000h = root)
  7798.  
  7799. Format of Block Device Block:
  7800. Offset    Size    Description
  7801.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7802.  01h    BYTE    header block ID, "B" = block device block
  7803.  02h    WORD    length of block in paragraphs
  7804.  04h    WORD    segment address of next header block (0000h if last)
  7805.  06h    WORD    segment address of previous header block (0000h if first)
  7806.  08h    WORD    pointer to next TCB
  7807.  0Ah    WORD    pointer to previous TCB
  7808.  0Ch    WORD    pointer to associated TCB (if applicable)
  7809.  0Eh    WORD    reserved
  7810. ---BDB---
  7811.  10h    BYTE    logical drive
  7812.  11h    BYTE    unit passed to driver
  7813.  12h    WORD    sector size
  7814.  14h    BYTE    cluster mask
  7815.  15h    BYTE    cluster shift count
  7816.  16h    WORD    starting sector of first FAT
  7817.  18h    BYTE    number of FATs
  7818.  19h    WORD    number of root directories
  7819.  1Bh    WORD    sector number of first data sector (cluster 0002h)
  7820.  1Dh    WORD    number of clusters + 1 (number of highest data cluster)
  7821.  1Fh    BYTE    number of sectors in FAT
  7822.  20h    WORD    beginning root directory sector number
  7823.  22h    DWORD    device driver address
  7824.  26h    BYTE    media descriptor byte
  7825.  27h  5 BYTEs    ???
  7826.  2Ch    BYTE    flag: volume > 32MB
  7827.  2Dh    BYTE    ???
  7828.  2Eh    BYTE    number of sectors per cluster
  7829.  2Fh    WORD    number of clusters on device
  7830.  31h    WORD    number of free clusters (FFFFh = unknown)
  7831.  33h    WORD    root directory cluster number
  7832.  35h    WORD    pointer to alias/subst string
  7833.  37h    WORD    TCB segment address of owner (0000h = none)
  7834.  
  7835.  
  7836. Format of Record Lock Block:
  7837. Offset    Size    Description
  7838.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7839.  01h    BYTE    header block ID, "R" = record lock block
  7840.  02h    WORD    length of block in paragraphs
  7841.  04h    WORD    segment address of next header block (0000h if last)
  7842.  06h    WORD    segment address of previous header block (0000h if first)
  7843.  08h    WORD    pointer to next TCB
  7844.  0Ah    WORD    pointer to previous TCB
  7845.  0Ch    WORD    pointer to associated TCB (if applicable)
  7846.  0Eh    WORD    reserved
  7847. ---RLB---
  7848.  10h    WORD    segment address of owner's PSP
  7849.  12h    WORD    segment address of Global File Block (see above)
  7850.  14h    WORD    segment address of owner's Task File Block (see above)
  7851.  16h    DWORD    file offset of locked region start
  7852.  1Ah    DWORD    length of locked region
  7853.  1Eh    WORD    owner's handle for file
  7854. --------O-D407-------------------------------
  7855. INT D4 - PC-MOS/386 v3.0+ - WAIT FOR EVENT
  7856.     AH = 07h
  7857.     AL = events to monitor (see below)
  7858.     BX = number of timer ticks until timeout if AL bit 1 set
  7859.     CX = bitmap of IRQs to monitor if AL bit 2 set
  7860.         (bit 0 = IRQ0 .. bit 15 = IRQ15)
  7861.     DX = port to monitor if AL bit 3 set
  7862. Return: CF clear if successful
  7863.         AL = type of event which woke up task (see above)
  7864.         CX = IRQ (if any) which awakened task
  7865.         DX = port (if any) which awakened task
  7866.     CF set on error
  7867.         AX = error code (see INT 21/AH=59h)
  7868. Note:    a device driver may make this call with AL=00h, which indicates that
  7869.       the driver is responsible for setting and clearing the TCBWAIT field
  7870.       in the TCB.  To put task to sleep, set TCBWAIT bits 2-0 to 001; to
  7871.       reawaken it, set bit 1 (leaving other bits unchanged)
  7872. SeeAlso: AH=04h,INT 16/AH=00h,INT 38
  7873.  
  7874. Bitfields for events to monitor:
  7875.  bit 0    keystroke
  7876.  bit 1    timeout
  7877.  bit 2    IRQ
  7878.  bit 3    port access
  7879.  bit 7    return status of user poll routine (other bits ignored if set)
  7880. --------O-D410-------------------------------
  7881. INT D4 - PC-MOS/386 v3.0+ - ENTER/LEAVE NATIVE 386 EXECUTION MODE
  7882.     AH = 10h
  7883.     AL = direction (00h return to V86 mode, 01h enter native mode)
  7884.     CX = length in bytes of Native Context Area ( >=1024 )
  7885.     DX = segment of Native Context Area
  7886. Return: CF clear if successful
  7887.         running in desired mode at instruction following INT D4 call
  7888.         all segment registers converted to appropriate selectors/segments
  7889.     CF set on error
  7890.         AX = error code (see INT 21/AH=59h)
  7891. Note:    MS-DOS calls are available in protected mode
  7892. SeeAlso: AH=11h,AH=12h,AH=13h,INT 2F/AX=1687h,INT 67/AX=DE0Ch,INT 38
  7893. --------O-D411-------------------------------
  7894. INT D4 - PC-MOS/386 v3.0+ - ALLOCATE NATIVE MODE MEMORY BLOCK
  7895.     AH = 11h
  7896.     EBX = block length in bytes
  7897. Return: CF clear if successful
  7898.         EBX = number of bytes actually allocated
  7899.         ES = selector for allocated block
  7900.     CF set on error
  7901.         AX = error code (see INT 21/AH=59h)
  7902. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7903.       system by The Software Link, Inc.
  7904. Note:    memory must be released before program terminates
  7905. SeeAlso: AH=10h,AH=12h,INT 38
  7906. --------O-D412-------------------------------
  7907. INT D4 - PC-MOS/386 v3.0+ - FREE NATIVE MODE MEMORY BLOCK
  7908.     AH = 12h
  7909.     ES = selector for block to free
  7910. Return: CF clear if successful
  7911.     CF set on error
  7912.         AX = error code (see INT 21/AH=59h)
  7913. SeeAlso: AH=10h,AH=11h,AH=13h,INT 38
  7914. --------O-D413-------------------------------
  7915. INT D4 - PC-MOS/386 v5.01 - GET ALIAS FOR SELECTOR (NATIVE MODE ONLY)
  7916.     AH = 13h
  7917.     AL = type of alias selector (00h data, 01h stack, 02h code)
  7918.     BX = selector
  7919. Return: CF clear if successful
  7920.         AX = new selector or 0000h if BX selector not found
  7921.     CF set on error
  7922.         AX = error code (see INT 21/AH=59h)
  7923. SeeAlso: AH=11h,AH=12h
  7924. --------O-D416-------------------------------
  7925. INT D4 - PC-MOS/386 v5.01 - SET/CLEAR IRQ RESERVATION
  7926.     AH = 16h
  7927.     AL = function (00h clear, 01h set reservation)
  7928.     CX = IRQ number
  7929. Return: AX = status
  7930.         (0000h successful, 0001h currently reserved by another task)
  7931. SeeAlso: AH=07h,INT 14/AH=11h"PC-MOS"
  7932. --------O-D419-------------------------------
  7933. INT D4 - PC-MOS/386 v5.01 - GET TASK ID
  7934.     AH = 19h
  7935. Return: BX = caller's task ID
  7936. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7937.       system by The Software Link, Inc.
  7938. SeeAlso: AH=1Dh,AH=1Eh
  7939. --------O-D41A-------------------------------
  7940. INT D4 - PC-MOS/386 v5.01 - GET/SET TASK PRIORITY
  7941.     AH = 1Ah
  7942.     AL = subfunction (00h read, 01h set, 02h get and set)
  7943.     BX = task ID (FFFFh for current task)
  7944.     CL = new priority value
  7945. Return: CF clear if successful
  7946.         CL = current priority value
  7947.     CF set on error
  7948.         AX = error code (see INT 21/AH=59h)
  7949. SeeAlso: AH=1Bh,AH=1Ch
  7950. --------O-D41B-------------------------------
  7951. INT D4 - PC-MOS/386 v5.01 - GET/SET TIME SLICE
  7952.     AH = 1Bh
  7953.     AL = subfunction (00h read, 01h set, 02h get and set)
  7954.     BX = task ID (FFFFh for current task) (see AH=19h)
  7955.     CL = new time slice value
  7956. Return: CF clear if successful
  7957.         CL = current time slice value
  7958.     CF set on error
  7959.         AX = error code (see INT 21/AH=59h)
  7960. SeeAlso: AH=1Ah,AH=1Ch
  7961. --------O-D41C-------------------------------
  7962. INT D4 - PC-MOS/386 v5.01 - GET/SET KEYBOARD MODE
  7963.     AH = 1Ch
  7964.     AL = subfunction (00h enable, 01h disable, 02h get mode)
  7965.     BX = task ID (FFFFh for current task)
  7966. Return: CF clear if successful
  7967.         CL = current keyboard state
  7968.     CF set on error
  7969.         AX = error code (INT 21/AH=59h)
  7970. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7971.       system by The Software Link, Inc.
  7972. SeeAlso: AH=1Ah,AH=1Bh
  7973. --------O-D41D-------------------------------
  7974. INT D4 - PC-MOS/386 v5.01 - GET CURRENT PROGRAM NAME
  7975.     AH = 1Dh
  7976.     BX = task ID (FFFFh for current task) (see AH=19h)
  7977.     ES:DI -> buffer for program name (see below)
  7978. Return: CF clear if successful
  7979.         ES:DI buffer filled
  7980.     CF set on error
  7981.         AX = error code (see INT 21/AH=59h)
  7982. SeeAlso: AH=19h,AH=1Eh
  7983.  
  7984. Format of buffer:
  7985. Offset    Size    Description
  7986.  00h  8 BYTEs    filename
  7987.  08h  3 BYTEs    extension
  7988. --------O-D41E-------------------------------
  7989. INT D4 - PC-MOS/386 v5.01 - GET CURRENT USERNAME AND SECURITY CLASS
  7990.     AH = 1Eh
  7991.     BX = task ID (FFFFh for current task)
  7992.     ES:DI -> 4-byte buffer for username
  7993. Return: CF clear if successful
  7994.         CL = security class
  7995.         20h (' ') none
  7996.         41h-5Ah ('A'-'Z') security level
  7997.         ES:DI buffer filled
  7998.     CF set on error
  7999.         AX = error code (see INT 21/AH=59h)
  8000. SeeAlso: AH=19h,AH=1Dh
  8001. --------O-D41F-------------------------------
  8002. INT D4 - PC-MOS/386 v5.01 - GET TASK PARTITION INFORMATION
  8003.     AH = 1Fh
  8004.     BX = task ID (FFFFh for current task) (see AH=19h)
  8005. Return: CF clear if successful
  8006.         CX = start segment of task
  8007.         DX = ending segment of task
  8008.     CF set on error
  8009.         AX = error code (see INT 21/AH=59h)
  8010. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8011.       system by The Software Link, Inc.
  8012. SeeAlso: AH=2Dh
  8013. --------O-D420-------------------------------
  8014. INT D4 - PC-MOS/386 v5.01 - GET PORT AND BAUDRATE INFORMATION
  8015.     AH = 20h
  8016.     BX = task ID (FFFFh for current task) (see AH=19h)
  8017. Return: CF clear if successful
  8018.         CX = port number (0000h if none)
  8019.         DI:SI = baudrate (if CX nonzero)
  8020.     CF set on error
  8021.         AX = error code (see INT 21/AH=59h)
  8022. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8023.       system by The Software Link, Inc.
  8024. SeeAlso: INT 14/AH=0Ch"FOSSIL"
  8025. --------O-D421-------------------------------
  8026. INT D4 - PC-MOS/386 v5.01 - REMOVE A TASK
  8027.     AH = 21h
  8028.     BX = task ID (FFFFh for current task) (see AH=19h)
  8029. Return: CF clear if successful
  8030.         AX = ASCII percentage of System Memory Pool used
  8031.         (AH = tens digit, AL = ones digit)
  8032.         DS,SI destroyed
  8033.     CF set on error
  8034.         AX = error code (see INT 21/AH=59h)
  8035. SeeAlso: AH=22h
  8036. --------O-D422-------------------------------
  8037. INT D4 - PC-MOS/386 v5.01 - ADD A TASK TO THE SYSTEM
  8038.     AH = 22h
  8039.     DS:SI -> addtask data structure (see below)
  8040. Return: CF clear if successful
  8041.         ES = segment address of the new task's TCB data structure
  8042.     CF set on error
  8043.         AX = error code (see below)
  8044. SeeAlso: AH=21h
  8045.  
  8046. Values for error code:
  8047.  08h    insufficient memory
  8048.  0Bh    invalid addtask structure format
  8049.  12h    insufficient available space in system memory pool
  8050.  1Fh    general failure
  8051.  55h    already allocated
  8052.  57h    if task already in use or invalid parameter
  8053.  
  8054. Format of addtask data structure:
  8055. Offset    Size    Description
  8056.  00h    WORD    task size in KB (min 16KB)
  8057.  02h    WORD    task ID (0000h for automatic selection)
  8058.  04h    BYTE    task class (' ' or 'A'-'Z')
  8059.  05h    DWORD    -> ASCIZ name of task startup batchfile
  8060.  09h    DWORD    -> task's terminal driver (0000000h = background task)
  8061.  0Dh    WORD    task port
  8062.  0Fh    DWORD    task baud rate
  8063.  13h    DWORD    (return) total extended memory
  8064.  17h    DWORD    (return) number of 4K extended memory pages allocated
  8065.  1Bh    WORD    (return) paragraphs of system memory pool allocated
  8066.  1Dh    WORD    (return) system memory pool size in paragraphs
  8067.  1Fh    WORD    (return) ASCII task percentage of system memory pool
  8068.  21h  3 BYTEs    reserved
  8069. --------O-D423-------------------------------
  8070. INT D4 - PC-MOS/386 v5.01 - CHANGE TERMINAL DRIVER
  8071.     AH = 23h
  8072.     BX = task ID (FFFFh for current task)
  8073.     DS:SI -> entry point of the new Device Driver Terminal
  8074. Return: CF clear if successful
  8075.     CF set on error
  8076.         AX = error code (see INT 21/AH=59h)
  8077. --------O-D424-------------------------------
  8078. INT D4 U - PC-MOS/386 v5.01 - GET OPERATING SYSTEM SERIAL NUMBER
  8079.     AH = 24h
  8080. Return: DS:DX -> '$'-terminated string containing the serial number
  8081. --------O-D425-------------------------------
  8082. INT D4 - PC-MOS/386 v5.01 - IDENTIFY LOAD ADDRESS OF DEVICE DRIVER LOCATION
  8083.     AH = 25h
  8084.     DX = driver's CS value
  8085. Return: AX = segment address of driver in system memory pool
  8086.         (0000h if the driver is not within the system memory pool)
  8087. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8088.       system by The Software Link, Inc.
  8089. --------O-D426-------------------------------
  8090. INT D4 - PC-MOS/386 v5.01 - GET SYSTEM CONTROL BLOCK SEGMENT/SELECTOR
  8091.     AH = 26h
  8092. Return: DX = segment/selector of the System Control Block (see AH=02h)
  8093. Note:    this function supersedes AH=02h
  8094. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah
  8095. --------O-D427-------------------------------
  8096. INT D4 - PC-MOS/386 v5.01 - GET TASK CONTROL BLOCK SEGMENT/SELECTOR
  8097.     AH = 27h
  8098.     BX = task ID (FFFFh if current task) (see AH=19h)
  8099. Return: CF clear if successful
  8100.         DX = segment/selector for the Task Control Block (see AH=04h)
  8101.     CF set on error
  8102.         AX = error code (INT 21/AH=59h)
  8103. Note:    this function supersedes AH=04h
  8104. SeeAlso: AH=26h,AH=28h,AH=29h,AH=2Ah
  8105. --------O-D428-------------------------------
  8106. INT D4 - PC-MOS/386 v5.01 - GET CONTROL BLOCK DATA FROM SCB OR TCB
  8107.     AH = 28h
  8108.     BX = offset into control block at which to start reading
  8109.     CX = number of bytes to read
  8110.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  8111.     ES:DI -> buffer for data
  8112. Return: CF clear if successful
  8113.     CF set on error
  8114.         AX = error code (see also INT 21/AH=59h)
  8115.         05h access denied due to an invalid segment/selector
  8116. SeeAlso: AH=26h,AH=27h,AH=29h,AH=2Ah
  8117. --------O-D429-------------------------------
  8118. INT D4 - PC-MOS/386 v5.01 - WRITE CONTROL BLOCK DATA INTO SCB OR TCB
  8119.     AH = 29h
  8120.     BX = offset into control block at which to start writing
  8121.     CX = number of bytes to write
  8122.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  8123.     DS:SI -> buffer containing data to be written
  8124. Return: CF clear if successful
  8125.     CF set on errro
  8126.         AX = error code (see also INT 21/AH=59h)
  8127.         05h access denied due to an invalid segment/selector
  8128. Note:     this function performs no bounds checking
  8129. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8130.       system by The Software Link, Inc.
  8131. SeeAlso: AH=26h,AH=27h,AH=28h,AH=2Ah
  8132. --------O-D42A-------------------------------
  8133. INT D4 - PC-MOS/386 v5.01 - SWAP CONTROL BLOCK DATA OF SCB OR TCB
  8134.     AH = 2Ah
  8135.     BX = offset into control block at which to start swap
  8136.     CX = number of bytes to swap
  8137.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  8138.     DS:SI -> buffer containing new data and to receive current data
  8139. Return: CF clear if successful
  8140.     CF set on error
  8141.         AX = error code (see also INT 21/AH=59h)
  8142.         05h access denied due to an invalid segment/selector
  8143. Note:    the interrupts are disabled during the swap to prevent corruption
  8144. SeeAlso: AH=26h,AH=27h,AH=28h,AH=29h
  8145. --------O-D42C-------------------------------
  8146. INT D4 - PC-MOS/386 v5.01 - GET/SET SPOOLER PARAMETERS
  8147.     AH = 2Ch
  8148.     AL = function
  8149.         00h set spooler timeout
  8150.         CX = timout value in seconds
  8151.         01h get spooler timeout
  8152.         Return: CX = current timeout in seconds
  8153.         02h get spooler parameters
  8154.         Return: CH = priority (00h-09h)
  8155.             CL = disposition (d, h, i, n, s)
  8156.             SI = class (a - z)
  8157.         03h set spooler parameters
  8158.         CH = priority (00h-09h)
  8159.         CL = disposition (d, h, i, n, s)
  8160.         SI = class (a - z)
  8161.         BX = task ID (FFFFh for current task)
  8162.         DX = LPT number
  8163. Return: CF clear if successful
  8164.     CF set on error
  8165.         AX = error code (see INT 21/AH=59h)
  8166. SeeAlso: AH=00h,AH=02h,AH=03h
  8167. --------O-D42D-------------------------------
  8168. INT D4 - PC-MOS/386 v5.01 - GET MAXIMUM TASK SIZE
  8169.     AH = 2Dh
  8170. Return: DX = maximum task size in paragraphs
  8171.     BX = start address of task space
  8172. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8173.       system by The Software Link, Inc.
  8174. SeeAlso: AH=1Fh,AH=22h
  8175. --------r-D5---------------------------------
  8176. INT D5 - 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. --------r-D5---------------------------------
  8180. INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8181. --------r-D6---------------------------------
  8182. INT D6 - IBM ROM BASIC - used while in interpreter
  8183. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8184.     BASIC.COM/BASICA.COM do not restore vector on termination
  8185. --------r-D6---------------------------------
  8186. INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8187. --------r-D7---------------------------------
  8188. INT D7 - IBM ROM BASIC - used while in interpreter
  8189. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8190.     BASIC.COM/BASICA.COM do not restore vector on termination
  8191. --------r-D7---------------------------------
  8192. INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8193. --------r-D8---------------------------------
  8194. INT D8 - IBM ROM BASIC - used while in interpreter
  8195. Notes:    called by ROM BASIC
  8196.     BASIC.COM/BASICA.COM do not restore vector on termination
  8197. --------r-D8---------------------------------
  8198. INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8199. --------H-D8---------------------------------
  8200. INT D8 - Screen Thief v1.00 - RELOCATED IRQ0
  8201. Note:    Screen Thief relocates IRQs 0 through 7 to INT D8 to INT DF by default,
  8202.       but may be directed via a commandline switch to use any range
  8203.       starting at a multiple of 8 between 78h and E0h
  8204. SeeAlso: INT 08"IRQ0",INT 2D/AL=10h"Screen Thief",INT 50"DESQview"
  8205. SeeAlso: INT D9"Screen Thief"
  8206. --------r-D9---------------------------------
  8207. INT D9 - IBM ROM BASIC - used while in interpreter
  8208. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8209.     BASIC.COM/BASICA.COM do not restore vector on termination
  8210. --------r-D9---------------------------------
  8211. INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8212. --------H-D9---------------------------------
  8213. INT D9 - Screen Thief v1.00 - RELOCATED IRQ1
  8214. Note:    (see INT D8"Screen Thief")
  8215. SeeAlso: INT 09"IRQ1",INT D8"Screen Thief",INT DA"Screen Thief"
  8216. --------r-DA---------------------------------
  8217. INT DA - IBM ROM BASIC - used while in interpreter
  8218. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8219.     BASIC.COM/BASICA.COM do not restore vector on termination
  8220. --------r-DA---------------------------------
  8221. INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8222. --------H-DA---------------------------------
  8223. INT DA - Screen Thief v1.00 - RELOCATED IRQ2
  8224. Note:    (see INT D8"Screen Thief")
  8225. SeeAlso: INT 0A"IRQ2",INT D9"Screen Thief",INT DB"Screen Thief"
  8226. --------r-DB---------------------------------
  8227. INT DB - IBM ROM BASIC - used while in interpreter
  8228. Notes:    called by ROM BASIC
  8229.     BASIC.COM/BASICA.COM do not restore vector on termination
  8230. --------r-DB---------------------------------
  8231. INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8232. --------H-DB---------------------------------
  8233. INT DB - Screen Thief v1.00 - RELOCATED IRQ3
  8234. Note:    (see INT D8"Screen Thief")
  8235. SeeAlso: INT 0B"IRQ3",INT DA"Screen Thief",INT DC"Screen Thief"
  8236. --------u-DC---------------------------------
  8237. INT DC - PC/370 v4.1- - API
  8238. SeeAlso: INT 60"PC/370"
  8239. --------r-DC---------------------------------
  8240. INT DC - IBM ROM BASIC - used while in interpreter
  8241. Notes:    called by ROM BASIC
  8242.     BASIC.COM/BASICA.COM do not restore vector on termination
  8243. --------r-DC---------------------------------
  8244. INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8245. --------H-DC---------------------------------
  8246. INT DC - Screen Thief v1.00 - RELOCATED IRQ4
  8247. Note:    (see INT D8"Screen Thief")
  8248. SeeAlso: INT 0C"IRQ4",INT DB"Screen Thief",INT DD"Screen Thief"
  8249. --------r-DD---------------------------------
  8250. INT DD - IBM ROM BASIC - used while in interpreter
  8251. Notes:    called by ROM BASIC
  8252.     BASIC.COM/BASICA.COM do not restore vector on termination
  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. Note:    (see INT D8"Screen Thief")
  8267. SeeAlso: INT 0D"IRQ5",INT DC"Screen Thief",INT DE"Screen Thief"
  8268. --------r-DE---------------------------------
  8269. INT DE - IBM ROM BASIC - used while in interpreter
  8270. Notes:    called by ROM BASIC
  8271.     BASIC.COM/BASICA.COM do not restore vector on termination
  8272. --------r-DE---------------------------------
  8273. INT DE - APL*PLUS/PC - ???
  8274. Note:    appears to be the same as INT 16
  8275. --------H-DE---------------------------------
  8276. INT DE - Screen Thief v1.00 - RELOCATED IRQ6
  8277. Note:    (see INT D8"Screen Thief")
  8278. SeeAlso: INT 0E"IRQ6",INT DD"Screen Thief",INT DF"Screen Thief"
  8279. --------b-DF---------------------------------
  8280. INT DF - Victor 9000 - SuperBIOS
  8281. --------r-DF---------------------------------
  8282. INT DF - IBM ROM BASIC - used while in interpreter
  8283. Notes:    called by ROM BASIC
  8284.     BASIC.COM/BASICA.COM do not restore vector on termination
  8285. --------r-DF---------------------------------
  8286. INT DF - APL*PLUS/PC - SAME AS INT 10
  8287. SeeAlso: INT 10
  8288. --------H-DF---------------------------------
  8289. INT DF - Screen Thief v1.00 - RELOCATED IRQ7
  8290. Note:    (see INT D8"Screen Thief")
  8291. SeeAlso: INT 0F"IRQ7",INT DE"Screen Thief"
  8292. --------r-E0---------------------------------
  8293. INT E0 - IBM ROM BASIC - used while in interpreter
  8294. Notes:    called by ROM BASIC
  8295.     BASIC.COM/BASICA.COM do not restore vector on termination
  8296. --------r-E0---------------------------------
  8297. INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION
  8298. SeeAlso: INT CF"APL"
  8299. --------v-E0---------------------------------
  8300. INT E0 - VIRUS - "Micro-128" - ???
  8301. Note:    Micro-128 also overwrites the upper half of the interrupt table
  8302. SeeAlso: INT 9E"VIRUS",INT F1"VIRUS"
  8303. --------O-E0---------------------------------
  8304. INT E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS
  8305.     CL = function number
  8306.     DS,DX = parameters
  8307. Return: as appropriate for function
  8308. Notes:    several functions are covered in more detail in following entries
  8309.     most of these calls are also supported by Digital Research's DOS Plus
  8310.       v2.1; the unsupported functions are 26h,29h-2Bh,3Ah,3Dh-62h,71h-8Ch,
  8311.       90h-92h,94h-97h,9Bh-ABh, and AEh-FFh
  8312. SeeAlso: INT 21/AX=4459h,INT 21/AH=E0h"DOS Plus"
  8313.  
  8314. Values for function number:
  8315.  00h    terminate calling process (see also INT 21/AH=00h)
  8316.  01h    read a character
  8317.  02h    write character to default console (see also INT 21/AH=02h)
  8318.  03h    read character from default AUX (see also INT 21/AH=03h)
  8319.  04h    write character to default AUX (see also INT 21/AH=04h)
  8320.  05h    write character to default list device (see also INT 21/AH=05h)
  8321.  06h    perform raw I/O on default console (see also INT 21/AH=06h)
  8322.  07h    return default AUX input status
  8323.  08h    return default AUX output status
  8324.  09h    write string to default console (see also INT 21/AH=09h)
  8325.  0Ah    read string from default console (see also INT 21/AH=0Ah)
  8326.  0Bh    return default console input status (see also INT 21/AH=0Bh)
  8327.  0Ch    get BDOS release ID
  8328.  0Dh    reset all disk drives (see also INT 21/AH=0Dh)
  8329.  0Eh    set default drive (see also INT 21/AH=0Eh)
  8330.  0Fh    open file via FCB (see also INT 21/AH=0Fh)
  8331.  10h    close file via FCB (see also INT 21/AH=10h)
  8332.  11h    search for first matching file with FCB (see also INT 21/AH=11h)
  8333.  12h    search for next matching file with FCB (see also INT 21/AH=12h)
  8334.  13h    delete file via FCB (see also INT 21/AH=13h)
  8335.  14h    sequential read via FCB (see also INT 21/AH=14h)
  8336.  15h    sequential write via FCB (see also INT 21/AH=15h)
  8337.  16h    create file via FCB (see also INT 21/AH=16h)
  8338.  17h    rename file via FCB (see also INT 21/AH=17h)
  8339.  18h    get bit map of logged drives
  8340.  19h    get default drive (see also INT 21/AH=19h)
  8341.  1Ah    set DMA address offset
  8342.  1Bh    get default disk allocation vector (see also INT 21/AH=1Bh)
  8343.  1Ch    set default drive to read-only
  8344.  1Dh    get bit map of read-only drives
  8345.  1Eh    set file attributes via FCB (see also INT 21/AX=4301h)
  8346.  1Fh    get address of disk parameter block (see also INT 21/AH=1Fh)
  8347.  20h    get/set default user number
  8348.  21h    read random record via FCB (see also INT 21/AH=21h)
  8349.  22h    write random record via FCB (see also INT 21/AH=22h)
  8350.  23h    compute file size with FCB (see also INT 21/AH=23h)
  8351.  24h    get FCB random record number (see also INT 21/AH=24h)
  8352.  25h    reset specified drives
  8353.  26h    access specified drives (not in DR DOS Plus v2.1)
  8354.  27h    free specified drives
  8355.  28h    write random with FCB, zero fill (see also also INT 21/AH=28h)
  8356.  2Ah    lock records in FCB file (see also INT 21/AH=5Ch)
  8357.  2Bh    unlock records in FCB file (see also INT 21/AH=5Ch)
  8358.  2Ch    set BDOS multisector count
  8359.  2Dh    set BDOS error mode
  8360.  2Eh    get free space on disk
  8361.  2Fh    load, initialize, and jump to process (see also INT 21/AH=4Bh)
  8362.  30h    flush write-deferred buffers
  8363.  31h    get/set system variable (DOS Plus v2.1)
  8364.  32h    call BIOS (XIOS) character routine (see below)
  8365.  33h    set DMA address segment
  8366.  34h    get DMA buffer address
  8367.  35h    CP/M-86 allocate maximum memory
  8368.  36h    allocate maximum memory at specified segment
  8369.  37h    CP/M-86 allocate memory segment (see also INT 21/AH=48h)
  8370.  38h    allocate memory at specified segment
  8371.  39h    CP/M-86 free specified memory segment (see also INT 21/AH=49h)
  8372.  3Ah    CP/M-86 free all memory (not in DOS Plus v2.1)
  8373.  3Bh    load .CMD file into memory
  8374.  3Ch    (DOS Plus v2.1) call RSX program
  8375.  40h    (DR-NET) log on a server
  8376.  41h    (DR-NET) log off a server
  8377.  42h    (DR-NET) send a message
  8378.  43h    (DR-NET) receive a message
  8379.  44h    (DR-NET) get network status
  8380.  45h    (DR-NET) get requestor configuration table
  8381.  46h    (DR-NET) set compatibility attributes
  8382.  47h    (DR-NET) get server configuration table
  8383.  48h    (DR-NET) set network error mode
  8384.  49h    (DR-NET) attach network
  8385.  4Ah    (DR-NET) detach network
  8386.  4Bh    (DR-NET) set default password
  8387.  4Ch    (DR-NET) get-set long timeout
  8388.  4Dh    (DR-NET) get parameter table
  8389.  50h    (DR-NET) get network information
  8390.  53h    get current time (see also INT 21/AH=2Ch)
  8391.  54h    set current time (see also INT 21/AH=2Dh)
  8392.  55h    get binary system date (see also INT 21/AH=2Ah)
  8393.  56h    set system date (see also INT 21/AH=2Bh)
  8394.  57h    allocate system flag
  8395.  58h    deallocate system flag
  8396.  59h    reserve memory in global area
  8397.  5Ah    lock physical drive
  8398.  5Bh    unlock physical drive
  8399.  5Ch    search path for executable file
  8400.  5Dh    load and execute command (see also INT 21/AH=4Bh)
  8401.  5Eh    get/set process exit code
  8402.  5Fh    set country information
  8403.  60h    get country information
  8404.  63h    truncate FCB file (see also INT 21/AH=28h)
  8405.  64h    create/update directory label
  8406.  65h    get directory label
  8407.  66h    get FCB date stamp and password mode
  8408.  67h    write extended FCB
  8409.  68h    set system date and time
  8410.  69h    get system date and time in binary
  8411.  6Ah    establish password for file access
  8412.  6Bh    get OS serial number
  8413.  6Ch    (DOS Plus v2.1) get/set program return code
  8414.  6Dh    get/set console mode
  8415.  6Eh    get/set string delimiter
  8416.  6Fh    write block to default console
  8417.  70h    write block to default list device
  8418.  71h    execute DOS-compatible function
  8419.  74h    set FCB time and date stamps
  8420.  80h    allocate memory
  8421.  82h    deallocate memory
  8422.  83h    poll I/O device
  8423.  84h    wait on system flag
  8424.  85h    set system flag
  8425.  86h    create message queue
  8426.  87h    open message queue
  8427.  88h    delete message queue
  8428.  89h    read from message queue
  8429.  8Ah    conditionally read from message queue
  8430.  8Bh    write to message queue
  8431.  8Ch    conditionally write to message queue
  8432.  8Dh    delay calling process
  8433.  8Eh    call process dispatcher (yield CPU)
  8434.  8Fh    terminate calling process (same as function 00h)
  8435.  90h    create a process
  8436.  91h    set calling process' priority
  8437.  92h    attach to default console
  8438.  93h    detach from default console
  8439.  95h    assign default console to process
  8440.  96h    interpret and execute commandline
  8441.  97h    resident procedure library
  8442.  98h    parse ASCII string into FCB (see also INT 21/AH=29h)
  8443.  99h    return default console
  8444.  9Ah    get address of system data (SYSDAT)
  8445.  9Bh    get system time and date
  8446.  9Ch    return calling process' descriptor
  8447.  9Dh    terminate process by name or PD address
  8448.  9Eh    attach to default list device
  8449.  9Fh    detach from default list device
  8450.  A0h    select default list device
  8451.  A1h    conditionally attach to default list device
  8452.  A2h    conditionally attach to default console
  8453.  A3h    get OS version number
  8454.  A4h    get default list device
  8455.  A5h    attach to default AUX
  8456.  A6h    detach from default AUX
  8457.  A7h    conditionally attach to default AUX
  8458.  A8h    set default AUX
  8459.  A9h    return default AUX
  8460.  ACh    read block from default AUX
  8461.  ADh    (DOS Plus v2.1) write block to default AUX
  8462.  B0h    configure default AUX
  8463.  B1h    get/set device control parameters
  8464.  B2h    send Break through default AUX
  8465.  B3h    allocate physical memory
  8466.  B4h    free physical memory
  8467.  B5h    map physical memory
  8468.  B6h    nondestructive message queue read
  8469.  B7h    timed wait on system flag
  8470.  B8h    get/set I/O port mapping
  8471.  B9h    set list device timeout
  8472.  BAh    set AUX timeout value
  8473.  BBh    execute XIOS service
  8474.  BDh    (DR Multiuser DOS) delay
  8475.  FFh    return 80386 to native mode
  8476.  
  8477. Values for DOS Plus v2.1 XIOS functions:
  8478.  00h    terminate program
  8479.  01h    ???
  8480.  02h    check for console input status
  8481.  03h    read character from console
  8482.  04h    write character to console
  8483.  05h    write character to list device
  8484.  06h    write character to auxiliary device
  8485.  07h    read cahracter from auxiliary device
  8486.  0Fh    get list device status
  8487.  10h-14h reserved
  8488.  15h    device initialization
  8489.  16h    check console output status
  8490.  17h-7Fh reserved
  8491. ---BBC Acorn---
  8492.  80h    get XIOS version
  8493.  81h    get Tube semaphore
  8494.  82h    release Tube semaphore
  8495.  83h    select text/graphics
  8496.  84h    update B&W graphics rectangle
  8497.  85h    update color graphics rectangle
  8498.  86h    get/release/update mouse
  8499.  87h    get system error info
  8500.  88h    entry in CLOCK called by WatchDog RSP
  8501.  89h    BBC OSBYTE function
  8502.  8Ah    BBC OSWORD function
  8503.  
  8504. DR Multiuser DOS Error Return Codes:
  8505.  00h no error
  8506.  01h system call not implemented
  8507.  02h illegal system call number
  8508.  03h cannot find memory
  8509.  04h illegal flag number
  8510.  05h flag overrun
  8511.  06h flag underrun
  8512.  07h no unused Queue Descriptors
  8513.  08h no free queue buffer
  8514.  09h cannot find queue
  8515.  0Ah queue in use
  8516.  0Ch no free Process Descriptors
  8517.  0Dh no queue access
  8518.  0Eh empty queue
  8519.  0Fh full queue
  8520.  10h CLI queue missing
  8521.  11h no 8087 in system
  8522.  12h no unused Memory Descriptors
  8523.  13h illegal console number
  8524.  14h no Process Descriptor match
  8525.  15h no console match
  8526.  16h no CLI process
  8527.  17h illegal disk number
  8528.  18h illegal filename
  8529.  19h illegal filetype
  8530.  1Ah character not ready
  8531.  1Bh illegal Memory Descriptor
  8532.  1Ch bad return from BDOS load
  8533.  1Dh bad return from BDOS read
  8534.  1Eh bad return from BDOS open
  8535.  1Fh null command
  8536.  20h not owner of resource
  8537.  21h no CSEG in load file
  8538.  22h process Descriptor exists on Thread Root
  8539.  23h could not terminate process
  8540.  24h cannot attach to process
  8541.  25h illegal list device number
  8542.  26h illegal password
  8543.  28h external termination occurred
  8544.  29h fixup error upon load
  8545.  2Ah flag set ignored
  8546.  2Bh illegal auxilliary device number
  8547. --------O-E0----CL03-------------------------
  8548. INT E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM AUX DEVICE
  8549.     CL = 03h
  8550. Return: AL = ASCII character
  8551. Notes:    A_READ reads the next 8-bit character from the logical auxilliary
  8552.       input device (AUXn:); control is not returned to the calling
  8553.       process until a character has been read.
  8554.     if another process owns AUX, this call blocks until the device becomes
  8555.       available
  8556. SeeAlso: INT 21/AH=03h,INT E0/CL=04h,INT E0/CL=07h,INT E0/CL=A5h,INT E0/CL=ACh
  8557. --------O-E0----CL04-------------------------
  8558. INT E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO AUX DEVICE
  8559.     CL = 04h
  8560.     DL = ASCII character
  8561. Return: nothing
  8562. Note:    if another process owns AUX, this call blocks until the device becomes
  8563.       available
  8564. SeeAlso: INT 21/AH=04h,INT E0/CL=03h,INT E0/CL=08h,INT E0/CL=A5h,INT E0/CL=ADh
  8565. --------O-E0----CL07-------------------------
  8566. INT E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE
  8567.     CL = 07h
  8568. Return: AL = status
  8569.         00h not ready
  8570.         FFh character available
  8571. Desc:    determine whether the current AUX device has input available
  8572. SeeAlso: INT E0/CL=03h,INT E0/CL=08h
  8573. --------O-E0----CL08-------------------------
  8574. INT E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE
  8575.     CL = 08h
  8576. Return: AL = status
  8577.         00h not ready
  8578.         FFh ready for output
  8579. Desc:    determine whether the current AUX device is able to accept more output
  8580. SeeAlso: INT E0/CL=04h,INT E0/CL=07h
  8581. --------O-E0----CL59-------------------------
  8582. INT E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA
  8583.     CL = 59h
  8584.     DX = size in bytes
  8585. Return: AX = FFFFh if failed
  8586.     AX = other if successful
  8587.         ES:BX -> reserved memory
  8588. --------O-E0----CL86-------------------------
  8589. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE
  8590.     CL = 86h
  8591.     DS:DX -> queue descriptor (see below)
  8592. Return: AX = status
  8593.         0000h success
  8594.         FFFFh failure
  8595.     CX = error code
  8596. SeeAlso: INT E0/CL=87h
  8597.  
  8598. Format of queue descriptor:
  8599. Offset    Size    Description
  8600.  00h  2 WORDs    internal use, initialize to zeros
  8601.  04h    WORD    flags
  8602.  06h  8 BYTEs    queue name
  8603.  0Eh    WORD    length of message
  8604.  10h    WORD    number of messages
  8605.  12h  4 WORDs    internal use, initialize to zeros
  8606.  1Ah    WORD    offset in system area of buffer for messages
  8607. --------O-E0----CL87-------------------------
  8608. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE
  8609.     CL = 87h
  8610.     DS:DX -> queue parameter block (see below)
  8611. Return: AX = status
  8612.         0000h success
  8613.         FFFFh failure
  8614.     CX = error code
  8615. SeeAlso: INT E0/CL=86h,INT E0/CL=89h
  8616.  
  8617. Format of queue parameter block:
  8618. Offset    Size    Description
  8619.  00h    WORD    internal use, initialize to zero
  8620.  02h    WORD    queue ID (set by INT E0/CL=87h)
  8621.  04h    WORD    internal use, initialize to zero
  8622.  06h    WORD    offset of queue message buffer
  8623.  08h  8 BYTEs    queue name
  8624. --------O-E0----CL89-------------------------
  8625. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE
  8626.     CL = 89h
  8627.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  8628. Return: AX = status
  8629.         0000h success
  8630.         FFFFh failure
  8631.     CX = error code
  8632. SeeAlso: INT E0/CL=87h,INT E0/CL=8Ah,INT E0/CL=8Bh
  8633. --------O-E0----CL8A-------------------------
  8634. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE
  8635.     CL = 8Ah
  8636.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  8637. Return: AX = status
  8638.         0000h success
  8639.         FFFFh failure
  8640.     CX = error code
  8641. SeeAlso: INT E0/CL=87h,INT E0/CL=89h,INT E0/CL=8Ch
  8642. --------O-E0----CL8B-------------------------
  8643. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE
  8644.     CL = 8Bh
  8645.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  8646. Return: AX = status
  8647.         0000h success
  8648.         FFFFh failure
  8649.     CX = error code
  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 INT E0/CL=87h)
  8655. Return: AX = status
  8656.         0000h success
  8657.         FFFFh failure
  8658.     CX = error code
  8659. SeeAlso: INT E0/CL=8Ah,INT E0/CL=8Bh
  8660. --------O-E0----CL8E-------------------------
  8661. INT E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER
  8662.     CL = 8Eh
  8663.     DX = FFFFh (optional) to force dispatch
  8664. Return: nothing
  8665. Desc:    allow other processes of the same or higher priority to run if they
  8666.       are ready
  8667. Note:    if DX=FFFFh, a dispatch is forced even if no other process is ready
  8668. SeeAlso: INT E0/CL=91h
  8669. --------O-E0----CL91-------------------------
  8670. INT E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY
  8671.     CL = 91h
  8672.     DL = new priority (00h highest to FFh lowest)
  8673. Note:    sets priority of calling process; transient processes are initialized
  8674.       to priority C8h
  8675. SeeAlso: INT E0/CL=8Eh
  8676. --------O-E0----CL93-------------------------
  8677. INT E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE
  8678.     CL = 93h
  8679. Return: AX = status
  8680.         0000h successfully detached
  8681.         FFFFh detach failed
  8682. --------O-E0----CLA5-------------------------
  8683. INT E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE
  8684.     CL = A5h
  8685. Desc:    attaches the default auxiliary device to the calling process unless
  8686.       it is already attached to another process, in which case the call
  8687.       blocks until the device becomes available
  8688. Note:    this call should be used before attempting to read or write from
  8689.       the AUX device; however, the I/O calls internally call this function
  8690.       to ensure device ownership
  8691. SeeAlso: INT E0/CL=03h,INT E0/CL=04h,INT E0/CL=A6h,INT E0/CL=A7h,INT E0/CL=A8h
  8692. SeeAlso: INT E0/CL=ACh,INT E0/CL=ADh,INT E0/CL=B0h
  8693. --------O-E0----CLA6-------------------------
  8694. INT E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE
  8695.     CL = A6h
  8696. Return: AX = status
  8697.         0000h successfully detached
  8698.         FFFFh detach failed
  8699.     CX = error code
  8700. SeeAlso: INT E0/CL=A5h,INT E0/CL=A7h
  8701. --------O-E0----CLA7-------------------------
  8702. INT E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE
  8703.     CL = A7h
  8704. Return: AX = status
  8705.         0000h attached
  8706.         FFFFh unable to attach
  8707. Desc:    attaches the default auxiliary device to the calling process if it is
  8708.       available
  8709. Note:    does not block if the device is already in use
  8710. SeeAlso: INT E0/CL=A5h,INT E0/CL=A6h,INT E0/CL=A8h,INT E0/CL=B0h
  8711. --------O-E0----CLA8-------------------------
  8712. INT E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER
  8713.     CL = A8h
  8714.     DL = auxiliary device number
  8715. Return: AX = status
  8716.         0000h successful
  8717.         FFFFh failed
  8718.     CX = error code
  8719. Desc:    specify which physical device will become AUX
  8720. SeeAlso: INT E0/CL=A5h,INT E0/CL=A9h
  8721. --------O-E0----CLA9-------------------------
  8722. INT E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER
  8723.     CL = A9h
  8724. Return: AL = current default auxiliary device number
  8725. Desc:    determine which physical device is currently AUX
  8726. SeeAlso: INT E0/CL=A8h
  8727. --------O-E0----CLAC-------------------------
  8728. INT E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE
  8729.     CL = ACh
  8730.     DS:DX -> character control block (CHCB) (see below)
  8731. Return: AX = number of characters read
  8732. Desc:    read characters from the default auxiliary (AUXn:) device into a buffer
  8733.       until the buffer is full or the device is no longer ready
  8734. Notes:    if the device is initially not ready, blocks until at least one
  8735.       character has been read
  8736.     if another process owns AUX, this call blocks until the device becomes
  8737.       available
  8738. SeeAlso: INT E0/CL=03h,INT E0/CL=A5h,INT E0/CL=ADh
  8739.  
  8740. Format of character control block (CHCB):
  8741. Offset    Size    Description
  8742.  00h    DWORD    pointer to character buffer
  8743.  04h    WORD    length of character buffer
  8744. --------O-E0----CLAD-------------------------
  8745. INT E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE
  8746.     CL = ADh
  8747.     DS:DX -> character control block (see INT E0/CL=ACh)
  8748. Return: AX = number of characters written
  8749. Note:    does not return until at least one character has been written
  8750. SeeAlso: INT E0/CL=04h,INT E0/CL=A5h,INT E0/CL=ACh
  8751. --------O-E0----CLB0-------------------------
  8752. INT E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS
  8753.     CL = B0h
  8754.     DX:DX -> AUX device parameter block (see below)
  8755. Return: AX = status
  8756.         0000h successful
  8757.         parameter block updated
  8758.         FFFFh failed
  8759.         CX = error code
  8760. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  8761.  
  8762. Format of AUX device parameter block:
  8763. Offset    Size    Description
  8764.  00h    BYTE    function (00h get, 01h set)
  8765.  01h    BYTE    baud rate (see below) FFh = don't change/unknown
  8766.  02h    BYTE    parity (see below)
  8767.  03h    BYTE    stop bits (00h one, 01h 1.5, 02h two, FFh unknown/don't change)
  8768.  04h    BYTE    data bits (05h-08h or FFh unknown/don't change)
  8769.  05h    BYTE    handshake (00h none, 01h DTS/DSR, 02h RTS/CTS, 04h XON/XOFF,
  8770.         FFh unknown/don't change)
  8771.  06h    BYTE    XON character, FFh unknown/don't change
  8772.  07h    BYTE    XOFF character, FFh unknown/don't change
  8773.  
  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. Values for baud rate:
  8783.  00h    50 baud
  8784.  01h    62.5 baud
  8785.  02h    75 baud
  8786.  03h    110 baud
  8787.  04h    134.5 baud
  8788.  05h    150 baud
  8789.  06h    200 baud
  8790.  07h    300 baud
  8791.  08h    600 baud
  8792.  09h    1200 baud
  8793.  0Ah    1800 baud
  8794.  0Bh    2000 baud
  8795.  0Ch    2400 baud
  8796.  0Dh    3600 baud
  8797.  0Eh    4800 baud
  8798.  0Fh    7200 baud
  8799.  10h    9600 baud
  8800.  11h    19200 baud
  8801.  12h    38400 baud
  8802.  13h    56000 baud
  8803.  14h    76800 baud
  8804.  15h    115200 baud
  8805. --------O-E0----CLB1-------------------------
  8806. INT E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS
  8807.     CL = B1h
  8808.     DS:DX -> AUX device control block (see below)
  8809. Return: AX = status
  8810.         0000h successful
  8811.         control block updated
  8812.         FFFFh failed
  8813.         CX = error code
  8814. SeeAlso: INT E0/CL=B0h,INT E0/CL=B2h
  8815.  
  8816. Format of AUX device control block:
  8817. Offset    Size    Description
  8818.  00h    BYTE    function (00h get, 01h set)
  8819.  01h    BYTE    DTR state (00h low, 01h high, FFh unknown/don't change)
  8820.  02h    BYTE    RTS state (00h low, 01h high, FFh unknown/don't change)
  8821.  03h    BYTE    DSR state (00h low, 01h high, FFh unknown/don't change)
  8822.  04h    BYTE    CTS state (00h low, 01h high, FFh unknown/don't change)
  8823.  05h    BYTE    DCD state (00h low, 01h high, FFh unknown/don't change)
  8824.  06h    BYTE    RI state (00h inactive, 01h active, FFh unknown/don't change)
  8825. --------O-E0----CLB2-------------------------
  8826. INT E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE
  8827.     CL = B2h
  8828.     DX = duration of break in system ticks (0001h-FFFFh)
  8829. Return: AX = status
  8830.         0000h successful
  8831.         break signal completed
  8832.         FFFFh failed
  8833.         CX = error code
  8834. Note:    if the AUX device is currently owned by another process, this call will
  8835.       block until the device becomes available
  8836. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  8837. --------O-E0----CLBD-------------------------
  8838. INT E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION
  8839.     CL = BDh
  8840.     DX = delay in system ticks
  8841. Return: after the delay elapses
  8842. Notes:    the length of a system tick is installation-dependent (typically
  8843.       1/50 or 1/60 second); the length may be determined by reading the
  8844.       TICKSPERSEC value from the system data segment
  8845.     the actual delay before the process is rescheduled to run may be up to
  8846.       one tick longer than requested; the delay between rescheduling and
  8847.       actual execution cannot be predicted if higher-priority processes
  8848.       are awaiting a turn at the CPU
  8849. SeeAlso: INT 15/AH=86h,INT 1A/AX=FF01h,INT 2F/AX=1224h,INT 62/AX=0096h
  8850. --------r-E1---------------------------------
  8851. INT E1 - IBM ROM BASIC - used while in interpreter
  8852. Notes:    called by ROM BASIC
  8853.     BASIC.COM/BASICA.COM do not restore vector on termination
  8854. --------N-E1---------------------------------
  8855. INT E1 - PC Cluster Disk Server Information
  8856. SeeAlso: INT E2
  8857. --------r-E2---------------------------------
  8858. INT E2 - IBM ROM BASIC - used while in interpreter
  8859. Notes:    called by ROM BASIC
  8860.     BASIC.COM/BASICA.COM do not restore vector on termination
  8861. --------N-E2---------------------------------
  8862. INT E2 - PC Cluster Program
  8863. --------r-E3---------------------------------
  8864. INT E3 - IBM ROM BASIC - used while in interpreter
  8865. Notes:    called by ROM BASIC
  8866.     BASIC.COM/BASICA.COM do not restore vector on termination
  8867. --------r-E40005-----------------------------
  8868. INT E4 - Logitech Modula v2.0 - MonitorEntry
  8869.     AX = 0005h
  8870.     BX = priority
  8871. SeeAlso: AX=0006h
  8872. --------r-E40006-----------------------------
  8873. INT E4 - Logitech Modula v2.0 - MonitorExit
  8874.     AX = 0006h
  8875. SeeAlso: AX=0005h
  8876. --------r-E4---------------------------------
  8877. INT E4 - IBM ROM BASIC - used while in interpreter
  8878. Notes:    called by ROM BASIC
  8879.     BASIC.COM/BASICA.COM do not restore vector on termination
  8880. --------r-E5---------------------------------
  8881. INT E5 - IBM ROM BASIC - used while in interpreter
  8882. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8883.     BASIC.COM/BASICA.COM do not restore vector on termination
  8884. --------r-E6---------------------------------
  8885. INT E6 - IBM ROM BASIC - used while in interpreter
  8886. Notes:    called by ROM BASIC
  8887.     BASIC.COM/BASICA.COM do not restore vector on termination
  8888. --------r-E7---------------------------------
  8889. INT E7 - IBM ROM BASIC - used while in interpreter
  8890. Notes:    called by ROM BASIC
  8891.     BASIC.COM/BASICA.COM do not restore vector on termination
  8892. --------r-E8---------------------------------
  8893. INT E8 - IBM ROM BASIC - used while in interpreter
  8894. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8895.     BASIC.COM/BASICA.COM do not restore vector on termination
  8896. --------r-E9---------------------------------
  8897. INT E9 - IBM ROM BASIC - used while in interpreter
  8898. Notes:    called by ROM BASIC
  8899.     BASIC.COM/BASICA.COM do not restore vector on termination
  8900. --------r-EA---------------------------------
  8901. INT EA - IBM ROM BASIC - used while in interpreter
  8902. Notes:    called by ROM BASIC
  8903.     BASIC.COM/BASICA.COM do not restore vector on termination
  8904. --------r-EB---------------------------------
  8905. INT EB - IBM ROM BASIC - used while in interpreter
  8906. Notes:    called by ROM BASIC
  8907.     BASIC.COM/BASICA.COM do not restore vector on termination
  8908. --------r-EC---------------------------------
  8909. INT EC - IBM ROM BASIC - used while in interpreter
  8910. Notes:    called by ROM BASIC
  8911.     BASIC.COM/BASICA.COM do not restore vector on termination
  8912. --------N-EC---------------------------------
  8913. INT EC - used by Alloy NTNX
  8914. --------r-EC---------------------------------
  8915. INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR
  8916.     AX = function number (0000h to 0140h)
  8917.     STACK:    DWORD address to return to
  8918.         any arguments required by function
  8919. Return: STACK:    return address popped, but otherwise unchanged
  8920. Desc:    this is the interface from applications to the runtime system by Exact
  8921.       Automatisering B.V. of the Netherlands.  By using this interrupt,
  8922.       it can provide DLL-style capabilities under MS-DOS.
  8923. Note:    the interrupt handler removes the return address and flags placed on
  8924.       the stack by the INT EC, then jumps to the appropriate function
  8925. --------r-ED---------------------------------
  8926. INT ED - IBM ROM BASIC - used while in interpreter
  8927. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8928.     BASIC.COM/BASICA.COM do not restore vector on termination
  8929.     INT 80 through INT ED are modified but not restored by Direct Access
  8930.       v4.0, and may be left dangling by other programs written with the
  8931.       same version of compiled BASIC
  8932. SeeAlso: INT EC"BASIC",INT EE"BASIC"
  8933. --------r-EE---------------------------------
  8934. INT EE - IBM ROM BASIC - used while in interpreter
  8935. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8936.     BASIC.COM/BASICA.COM do not restore vector on termination
  8937. SeeAlso: INT ED"BASIC",INT EE"BASIC"
  8938. --------r-EF---------------------------------
  8939. INT EF - BASIC - ORIGINAL INT 09 VECTOR
  8940. Note:    BASIC.COM/BASICA.COM do not restore vector on termination
  8941. SeeAlso: INT EE"BASIC",INT F0"BASIC"
  8942. --------O-EF----CX0473-----------------------
  8943. INT EF - GEM - INTERFACE
  8944.     CX = 0473h
  8945.     DS:DX -> GEM parameter block
  8946. --------r-F0---------------------------------
  8947. INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR
  8948. Note:    BASICA.COM does not restore vector on termination
  8949. SeeAlso: INT EF"BASIC"
  8950. --------*-F1---------------------------------
  8951. INT F1 - reserved for user interrupt
  8952. --------s-F1---------------------------------
  8953. INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
  8954.     DS:BX -> '$'-terminated text string
  8955. Program: SPEECH.COM is a resident text-to-speech converter by Douglas Sisco
  8956. --------s-F1---------------------------------
  8957. INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM
  8958. SeeAlso: INT F2"SPEECH"
  8959. --------U-F1---------------------------------
  8960. INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS
  8961. Return: AX:BX -> data area
  8962. Program: AQUEDUCT and PIPELINE are TSRs by James W. Birdsall to connect COM1
  8963.       and COM2 in software
  8964. Note:    The installation check consists of testing for the following signature
  8965.       immediately preceding the interrupt handler: "JWBtvv" where 't' is
  8966.       either "A" for AQUEDUCT or "P" for PIPELINE and "vv" is a two-digit
  8967.       version number
  8968. Index:    installation check;AQUEDUCT|installation check;PIPELINE
  8969. --------v-F1---------------------------------
  8970. INT F1 - VIRUS - "Violetta" - ???
  8971. Note:    used but not chained by virus
  8972. SeeAlso: INT E0"VIRUS",INT FF"VIRUS"
  8973. --------*-F2---------------------------------
  8974. INT F2 - reserved for user interrupt
  8975. --------s-F2---------------------------------
  8976. INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM
  8977. SeeAlso: INT F1"SPEECH"
  8978. ----------F2---------------------------------
  8979. INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API
  8980.     AH = function
  8981.         01h power up
  8982.         02h power down
  8983.         03h set controls
  8984.         04h capture image
  8985.         05h display image
  8986.         06h read file
  8987.         07h write file
  8988.         08h write array
  8989.         09h read pixel
  8990.         0Ah write pixel
  8991.         0Bh check if VGA present
  8992.         0Ch set video mode
  8993.         0Dh check for keystroke
  8994.         0Eh delay
  8995.     ???
  8996. Return: ???
  8997. Program: ImageCapture is a product of International Computers
  8998. SeeAlso: INT F3"ICCTSR"
  8999. --------*-F3---------------------------------
  9000. INT F3 - reserved for user interrupt
  9001. --------s-F3---------------------------------
  9002. INT F3 - SoundBlaster - POINTER TO ECHO VALUE
  9003. Note:    this is not a vector, but a pointer to a DWORD containing the echo
  9004.       value selected with SET-ECHO.EXE
  9005. SeeAlso: INT 2F/AX=FBFBh
  9006. ----------F3---------------------------------
  9007. INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR
  9008. Program: ImageCapture is a product of International Computers
  9009. SeeAlso: INT F2"ICCTSR"
  9010. --------*-F4---------------------------------
  9011. INT F4 - reserved for user interrupt
  9012. --------T-F4---------------------------------
  9013. INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK
  9014. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT FE"DoubleDOS"
  9015. --------*-F5---------------------------------
  9016. INT F5 - reserved for user interrupt
  9017. --------T-F5---------------------------------
  9018. INT F5 - DoubleDOS - ???
  9019. --------*-F6---------------------------------
  9020. INT F6 - reserved for user interrupt
  9021. --------T-F6---------------------------------
  9022. INT F6 - DoubleDOS - ???
  9023. --------*-F7---------------------------------
  9024. INT F7 - reserved for user interrupt
  9025. --------T-F7---------------------------------
  9026. INT F7 - DoubleDOS - ???
  9027. ----------F700-------------------------------
  9028. INT F7 - FSBBS 2.0 - CONFIGURATION RECORD
  9029.     AH = 00h
  9030.     AL = function
  9031.         00h get configuration record
  9032.         Return: DS:DX -> configuration record
  9033.         01h set configuration record
  9034.         02h get path for option
  9035.         DS:DX -> option name
  9036.         Return: DS:DX -> path
  9037.         03h determine whether configuration record set
  9038.         Return: AX = status
  9039.                 0000h set
  9040.                 0001h not yet set
  9041.         04h get link state
  9042.         Return: AX = state
  9043.                 0000h unlinked
  9044.                 0001h linked
  9045. Notes:    this information is preliminary and still subject to change
  9046.     all of the INT F7 calls for FSBBS are used for interprogram
  9047.       communication between the BBS kernel and the programs it spawns
  9048. SeeAlso: AH=01h
  9049. ----------F701-------------------------------
  9050. INT F7 - FSBBS 2.0 - USER RECORD
  9051.     AH = 01h
  9052.     AL = function
  9053.         00h get user record for user currently online
  9054.         Return: DS:DX -> user record
  9055.         01h set user record
  9056.         DS:DX -> user record
  9057. SeeAlso: AH=00h,AH=02h
  9058. ----------F702-------------------------------
  9059. INT F7 - FSBBS 2.0 - GET ACCOUNT NAME
  9060.     AH = 02h
  9061. Return: DS:DX -> 8-character blank-padded account name
  9062. SeeAlso: AH=01h
  9063. ----------F703-------------------------------
  9064. INT F7 - FSBBS 2.0 - TERMINAL NUMBER
  9065.     AH = 03h
  9066.     AL = function
  9067.         00h get terminal index number
  9068.         Return: DX = index number
  9069.         01h set terminal index number
  9070.         DX = terminal index
  9071. ----------F704-------------------------------
  9072. INT F7 - FSBBS 2.0 - PASSDATA BUFFER
  9073.     AH = 04h
  9074.     AL = function
  9075.         00h get PassData buffer contents
  9076.         DS:DX -> buffer for PassData contents
  9077.         01h set PassData contents
  9078.         DS:DX -> buffer containing new PassData
  9079.         CH = length of data in buffer
  9080. ----------F705-------------------------------
  9081. INT F7 - FSBBS 2.0 - TIMER FUNCTIONS
  9082.     AH = 05h
  9083.     AL = function
  9084.         00h get time remaining
  9085.         Return: DX = number of minutes remaining
  9086.         01h get current time
  9087.         Return: DS:DX -> 8-character time string
  9088.         02h increment time
  9089.         DX = number of additional minutes
  9090.         03h decrement time
  9091.         DX = number of minutes
  9092. SeeAlso: AH=06h
  9093. ----------F706-------------------------------
  9094. INT F7 - FSBBS 2.0 - FUNCTION AVAILABILITY
  9095.     AH = 06h
  9096.     AL = function
  9097.         00h determine whether function is available
  9098.         DX = index of function
  9099.         01h set function availability
  9100.         DX = index of function
  9101.         ???
  9102. SeeAlso: AH=05h,AH=07h
  9103. ----------F707-------------------------------
  9104. INT F7 - FSBBS 2.0 - DUMP FUNCTIONS
  9105.     AH = 07h
  9106.     AL = function
  9107.         00h get current dump mode
  9108.         Return: DL = mode
  9109.         01h set dump mode
  9110.         DL = mode
  9111. SeeAlso: AH=06h
  9112. --------*-F8---------------------------------
  9113. INT F8 - reserved for user interrupt
  9114. --------h-F8---------------------------------
  9115. INT F8 - TANDY??? - 100 HZ INTERRUPT
  9116. Note:    this vector is not used on the Tandy 1000TL
  9117. SeeAlso: INT FA"USART"
  9118. --------T-F8---------------------------------
  9119. INT F8 - DoubleDOS - ???
  9120. --------*-F9---------------------------------
  9121. INT F9 - reserved for user interrupt
  9122. --------T-F9---------------------------------
  9123. INT F9 - DoubleDOS - ???
  9124. --------*-FA---------------------------------
  9125. INT FA - reserved for user interrupt
  9126. --------h-FA---------------------------------
  9127. INT FA - TANDY??? - SERIAL PORT USART INTERRUPT
  9128. Note:    this vector is not used on the Tandy 1000TL
  9129. SeeAlso: INT F8"100 HZ",INT FB"USART"
  9130. --------T-FA---------------------------------
  9131. INT FA - DoubleDOS - TURN OFF TIMESHARING
  9132. SeeAlso: INT 21/AH=EAh"DoubleDOS",INT FB"DoubleDOS"
  9133. --------*-FB---------------------------------
  9134. INT FB - reserved for user interrupt
  9135. --------h-FB---------------------------------
  9136. INT FB - TANDY??? - KEYBOARD USART RECEIVE INTERRUPT
  9137. SeeAlso: INT FA"USART"
  9138. --------T-FB---------------------------------
  9139. INT FB - DoubleDOS - TURN ON TIMESHARING
  9140. SeeAlso: INT 21/AH=EBh"DoubleDOS",INT FA"DoubleDOS"
  9141. --------*-FC---------------------------------
  9142. INT FC - reserved for user interrupt
  9143. --------T-FC---------------------------------
  9144. INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS
  9145. Return: ES = segment of display buffer
  9146. Desc:    determine the address of the virtual screen to which the program
  9147.       should write instead of the actual video memory, so that the
  9148.       multitasked programs do not interfere with each other's output
  9149. Note:    the display buffer may be moved if multitasking is enabled
  9150. SeeAlso: INT 21/AH=ECh"DoubleDOS",INT FB"DoubleDOS"
  9151. --------*-FD---------------------------------
  9152. INT FD - reserved for user interrupt
  9153. --------T-FD---------------------------------
  9154. INT FD - DoubleDOS - ???
  9155. --------S-FD---------------------------------
  9156. INT FD - TFPCX - INSTALLATION CHECK
  9157.     AH = function (see separate entries below)
  9158. Program: TFPCX is an interface between modem and terminal program for packet-
  9159.       radio communications
  9160. Notes:    the installation check consists of testing for the string "N5NX" three
  9161.       bytes beyond the interrupt handler; INT FD is the default, but may
  9162.       be changed, so the full installation check consists of scanning
  9163.       for the signature
  9164.     TFPCX returns AX=FFFFh on any unsupported function call
  9165. SeeAlso: AH=01h,AH=03h,AH=FEh
  9166. --------S-FD01-------------------------------
  9167. INT FD - TFPCX - TEST FOR CHARACTER WAITING
  9168.     AH = 01h
  9169. Return: AX = status
  9170.         0000h no characters waiting
  9171.         0001h character available for input
  9172. Program: TFPCX is an interface between modem and terminal program for packet-
  9173.       radio communications
  9174. SeeAlso: AH=02h
  9175. --------S-FD02-------------------------------
  9176. INT FD - TFPCX - GET CHARACTER
  9177.     AH = 02h
  9178. Return: AL = character
  9179. Notes:    this call is only allowed if AH=01h indicated that a character is
  9180.       available
  9181.     all available characters should be read before sending any additional
  9182.       characters
  9183. SeeAlso: AH=01h,AH=03h
  9184. --------S-FD03-------------------------------
  9185. INT FD - TFPCX - OUTPUT CHARACTER
  9186.     AH = 03h
  9187.     AL = character to send
  9188. SeeAlso: AH=02h
  9189. --------S-FDFE-------------------------------
  9190. INT FD - TFPCX - GET VERSION
  9191.     AH = FEh
  9192. Return: AH = major version
  9193.     AL = minor version
  9194. Program: TFPCX is an interface between modem and terminal program for packet-
  9195.       radio communications
  9196. SeeAlso: AH=01h,AH=03h
  9197. --------B-FE---------------------------------
  9198. INT FE - AT/XT286/PS50+ - destroyed by return from protected mode
  9199. Note:    the ROM BIOS uses 0030h:0100h as the initial stack on startup, which
  9200.       is the last fourth of the interrupt vector table.  If the processor
  9201.       is returned to real mode via a hardware reset (the only possibility
  9202.       on an 80286, though there are a number of ways of generating one),
  9203.       then the BIOS startup code stacks three words on its scratch stack
  9204.       before determining that a return to real mode has been requested.
  9205.       As a result, INT FE and INT FF are corrupted.
  9206. SeeAlso: INT FF"XT286"
  9207. --------T-FE---------------------------------
  9208. INT FE - DoubleDOS - GIVE UP TIME
  9209.     AL = number of 55ms time slices to give away
  9210. Return: after other program (if active) has run
  9211. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F4"DoubleDOS"
  9212. --------G-FE---------------------------------
  9213. INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER
  9214. SeeAlso: INT 3F
  9215. --------B-FF---------------------------------
  9216. INT FF - AT/XT286/PS50+ - destroyed by return from protected mode
  9217. Note:    (see INT FE"XT286")
  9218. SeeAlso: INT FE"XT286"
  9219. --------b-FF---------------------------------
  9220. INT FF - Z100 - WARM BOOT
  9221. SeeAlso: INT 40"Z100"
  9222. --------Q-FF---------------------------------
  9223. INT FF U - QEMM-386.SYS v6.0+ - internal
  9224. Notes:    requires that a byte in the conventional-memory stub be set to the
  9225.       desired function number (00h through 0Ch)
  9226.  
  9227. Functions supported by QEMM:
  9228.  00h    reflect back to Virtual86-mode interrupt handler (default)
  9229.  01h    ???
  9230.  02h    access DR7???
  9231.  03h    QPI upcall (see INT 67/AH=3Fh)
  9232.  04h    ???
  9233.  05h    ???
  9234.  06h    INT 15/AH=87h
  9235.  07h    EMS services (see INT 67/AH=40h-5Dh)
  9236.  08h    ???
  9237.  09h    QEMM exception handler
  9238.  0Ah    XMS services (see INT 2F/AX=4310h)
  9239.  0Bh    Virtual DMA Services (see INT 4B/AX=8102h)
  9240.  0Ch    ???
  9241. --------v-FF---------------------------------
  9242. INT FF - VIRUS - "Violetta" - ???
  9243. Note:    used but not chained by virus
  9244. SeeAlso: INT E0"VIRUS",INT F1"VIRUS"
  9245. --------!---FILELIST-------------------------
  9246. Please redistribute the following files unmodified as a group, in a trio of
  9247. archives named INTER39A through INTER39C (preferably the original authenticated
  9248. PKZIP archives):
  9249.     INTERRUP.1ST    the read-me file, containing credits, availability info
  9250.     INTERRUP.A    INT 00 through INT 14/0F
  9251.     INTERRUP.B    INT 14/10 through INT 15
  9252.     INTERRUP.C    INT 16 through INT 21/41
  9253.     INTERRUP.D    INT 21/42 through INT 21/7F
  9254.     INTERRUP.E    INT 21/80 through INT 21/FF
  9255.     INTERRUP.F    INT 22 through INT 2F/7F
  9256.     INTERRUP.G    INT 2F/80 through INT 2F/FF
  9257.     INTERRUP.H    INT 30 through INT 60
  9258.     INTERRUP.I    INT 61 through INT 68
  9259.     INTERRUP.J    INT 69 through INT FF
  9260.     INTERRUP.PRI    a brief introduction to interrupts
  9261.     INTPRINT.COM    a simple formatter that also generates a list summary
  9262.     INTPRINT.DOC    instructions for INTPRINT
  9263.     86BUGS.LST    a listing of CPU bugs and undocumented features
  9264.     CMOS.LST    a description of the CMOS RAM data bytes
  9265.     GLOSSARY.LST    a glossary of terms, abbreviations, and acronyms
  9266.     MEMORY.LST    format of the BIOS data area
  9267.     PORTS.LST    a listing of I/O ports
  9268.     COMBINE.BAT    combine the pieces of the list into a single file
  9269. The following files should be distributed in an archive called INTER39D:
  9270.     INT.COM        invoke interrupts from commandline
  9271.     INT2HLP.BAT    Perl script to convert list into QuickHelp database
  9272.     INT2GUID.*    convert list into TurboPower GUIDE or POPHELP database
  9273.     INT2QH.*    program to convert list into QuickHelp database
  9274.     INTERVUE.EXE    indexed interrupt list browser
  9275.     INTHELP.*    convert list into TurboPower GUIDE database
  9276.     INTLIST.E    Epsilon extension for handling list
  9277.     INTLIST.ICO    Windows icon for INTERVUE
  9278.     INTPRINT.C    source code for INTPRINT
  9279.     RB2NG.*        convert list into Norton Guides database
  9280. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994 Ralf Brown
  9281. --------!---CONTACT_INFO---------------------
  9282. Internet: ralf@telerama.lm.com    !!NOTE NEW DOMAIN NAME!!
  9283. UUCP: {uunet,harvard}!telerama.lm.com!ralf
  9284. FIDO: Ralf Brown 1:129/26.1
  9285.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  9286.     unless you address it to me)
  9287. CIS:  >INTERNET:ralf@telerama.lm.com
  9288.