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

  1. Interrupt List, part 10 of 10
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993 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:    this function is also supported by TelAPI and NPC NCSI; for TelAPI,
  586.       nonzero values in AL specify a connection ID
  587.     this function is also supported by Connection Manager CLIENT.EXE; it
  588.       provides the signature string "NCSI" three bytes past the interrupt
  589.       handler, and returns CF set/AL=FFh if called while an INT 6B call is
  590.       already in progress
  591. SeeAlso: AX=0100h,AH=18h,INT 14/AH=19h,INT 14/AH=E3h
  592. --------S-6B0100-----------------------------
  593. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED READ
  594.     AX = 0100h
  595.     CX = length of buffer
  596.     ES:BX -> buffer
  597. Return: CX = number of bytes read
  598. Note:    also supported by TelAPI and NPC NCSI; for TelAPI, nonzero values in
  599.       AL specify a connection ID
  600. SeeAlso: AX=0000h,AH=19h,INT 14/AH=18h,INT 14/AH=E2h,INT 14/AX=FF02h
  601. --------S-6B02-------------------------------
  602. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - INSTALL CHECK
  603.     AH = 02h
  604.     AL nonzero
  605. Return: AL = 00h if present and OK
  606. Note:    this function is also supported by TelAPI and NPC NCSI
  607. SeeAlso: AX=0700h
  608. --------S-6B0600-----------------------------
  609. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - CONTROL
  610.     AX = 0600h
  611.     CX = command
  612.         02h send break
  613.         04h disconnect
  614.         06h hold
  615. Return: CF clear if successful
  616.         AL = 00h
  617.     CF set on error
  618.         AX < 0
  619. Note:    this function is also supported by TelAPI and NPC NCSI
  620. --------S-6B0700-----------------------------
  621. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - GET STATUS
  622.     AX = 0700h
  623. Return: CH <> 00h if connection active
  624. Notes:    this function is also supported by TelAPI and NPC NCSI
  625.     Novell TelAPI returns CX=FF01h and CF clear
  626. SeeAlso: AH=02h,AH=10h
  627. --------N-6B08-------------------------------
  628. INT 6B - TelAPI - ???
  629.     AH = 08h
  630. Return: CF clear
  631.         AL = 00h
  632.         CX = 0000h
  633. Note:    this function also clears ??? flag
  634. SeeAlso: INT 14/AX=FF00h
  635. --------S-6B10-------------------------------
  636. INT 6B - NPC NCSI EXTENDED SERIAL I/O - GET STATUS
  637.     AH = 10h
  638.     AL = connection ID (Novell TELAPI.EXE)
  639.     CX = ???
  640. Return: CF clear if successful
  641.         CL = ???
  642.         CH = ???
  643.     CF set on error
  644.     ???
  645. Note:    this function is also supported by TelAPI
  646. SeeAlso: AX=0700h,AH=12h,AH=1Fh
  647. --------S-6B11-------------------------------
  648. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ALLOCATE A VIRTUAL CIRCUIT
  649.     AH = 11h
  650.     ???
  651. Return: CF clear if successful
  652.         AL = virtual circuit number??? (01h for Novell TELAPI.EXE)
  653.         CL = ??? (01h for Novell TELAPI.EXE)
  654.         CH = ??? (01h for Novell TELAPI.EXE)
  655.     CF set on error
  656.         ???
  657. Note:    this function is also supported by TelAPI
  658. SeeAlso: AH=12h,AH=15h,AH=16h,AH=17h,AH=18h
  659. --------S-6B12-------------------------------
  660. INT 6B - NPC NCSI EXTENDED SERIAL I/O - VIRTUAL CIRCUIT STATUS
  661.     AH = 12h
  662.     AL = virtual circuit number
  663.     CL = ???
  664.     ES:BX -> ???
  665. Return: ???
  666. Note:    this function is also supported by TelAPI
  667. SeeAlso: AH=10h,AH=15h,AH=1Ah,AH=1Bh,AH=1Fh
  668. --------S-6B13-------------------------------
  669. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE REQUEST/REPLY SERVICE NAME
  670.     AH = 13h
  671.     AL = virtual circuit number
  672.     CL = direction (00h get, nonzero set)
  673.     ES:BX -> buffer for/containing service name
  674. Return: ???
  675. Note:    this function is also supported by TelAPI
  676. SeeAlso: AH=14h,AH=15h
  677. --------S-6B14-------------------------------
  678. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE SERVICE ADDRESS
  679.     AH = 14h
  680.     AL = virtual circuit number
  681.     ES:BX -> buffer for/containing service address
  682. Return: ???
  683. Note:    this function is also supported by TelAPI, which only supports
  684.       retrieving the address
  685. SeeAlso: AH=13h,AH=15h,AH=21h
  686. --------S-6B15-------------------------------
  687. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE VIRTUAL CIRCUIT CONFIG
  688.     AH = 15h
  689.     AL = virtual circuit number
  690.     CL = direction (00h get, nonzero set)
  691.     ES:BX -> buffer for/containing virtual circuit configuration
  692. Return: ???
  693. Note:    this function is also supported by TelAPI
  694. SeeAlso: AH=13h,AH=14h
  695. --------S-6B16-------------------------------
  696. INT 6B - NPC NCSI EXTENDED SERIAL I/O - LOG AND/OR INITIALIZE VIRTUAL CIRCUIT
  697.     AH = 16h
  698.     ???
  699. Return: CF clear if successful
  700.         AL = virtual circuit number???
  701.     CF set on error
  702.         ???
  703. Note:    this function is also supported by TelAPI, which always returns CF
  704.       clear and AL=00h
  705. SeeAlso: AH=11h,AH=12h,AH=17h
  706. --------S-6B17-------------------------------
  707. INT 6B - NPC NCSI EXTENDED SERIAL I/O - DISCONNECT A VIRTUAL CIRCUIT
  708.     AH = 17h
  709.     AL = virtual circuit number???
  710. Return: CF clear if successful
  711.     CF set on error
  712.     ???
  713. Note:    this function is also supported by TelAPI, which always returns CF
  714.       clear and AL=00h
  715. SeeAlso: AH=11h,AH=16h
  716. --------S-6B18-------------------------------
  717. INT 6B - NPC NCSI EXTENDED SERIAL I/O - WRITE DATA ON A VIRTUAL CIRCUIT
  718.     AH = 18h
  719.     AL = virtual circuit number
  720.     ???
  721. Return: CF clear if successful
  722.     CF set on error
  723.     ???
  724. Note:    this function is also supported by TelAPI, which always returns CF
  725.       clear and AL=30h
  726. SeeAlso: AX=0000h,AH=12h,AH=19h
  727. --------S-6B19-------------------------------
  728. INT 6B - NPC NCSI EXTENDED SERIAL I/O - READ DATA ON A VIRTUAL CIRCUIT
  729.     AH = 19h
  730.     AL = virtual circuit number
  731.     ???
  732. Return: ???
  733. Note:    this function is also supported by TelAPI
  734. SeeAlso: AX=0100h,AH=12h,AH=18h
  735. --------S-6B1A-------------------------------
  736. INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE STATUS
  737.     AH = 1Ah
  738.     ???
  739. Return: ???
  740. SeeAlso: AH=12h,AH=1Bh
  741. --------S-6B1B-------------------------------
  742. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT STATUS
  743.     AH = 1Bh
  744.     ???
  745. Return: ???
  746. SeeAlso: AH=12h,AH=1Ah
  747. --------S-6B1C-------------------------------
  748. INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE BUFFER CONTROL
  749.     AH = 1Ch
  750.     ???
  751. Return: ???
  752. SeeAlso: AH=1Dh,AH=1Eh
  753. --------S-6B1D-------------------------------
  754. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT BUFFER CONTROL
  755.     AH = 1Dh
  756.     ???
  757. Return: ???
  758. SeeAlso: AH=1Ch,AH=1Eh
  759. --------S-6B1E-------------------------------
  760. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ISSUE CONTROL REQUEST
  761.     AH = 1Eh
  762.     ???
  763. Return: ???
  764. SeeAlso: AH=1Ch,AH=1Dh
  765. --------S-6B1F-------------------------------
  766. INT 6B - NPC NCSI EXTENDED SERIAL I/O - EXTERNAL STATUS
  767.     AH = 1Fh
  768.     ???
  769. Return: ???
  770. SeeAlso: AH=10h,AH=12h
  771. --------S-6B20-------------------------------
  772. INT 6B - Connection Manager CLIENT.EXE - ???
  773.     AH = 20h
  774.     ???
  775. Return: ???
  776. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  777.       serial ports over an IPX or NetBIOS-based network
  778. Note:    CLIENT.EXE returns CF set/AL=F9h if AH is not 00h to 21h on entry
  779. --------S-6B21-------------------------------
  780. INT 6B - NPC NCSI EXTENDED SERIAL I/O - QUERY NAME SERVICE
  781.     AH = 21h
  782.     ???
  783. Return: ???
  784. SeeAlso: AH=14h
  785. ----------6B6B-------------------------------
  786. INT 6B - Tandy SCHOOLMATE PLUS - API
  787.     AH = 6Bh
  788.     AL = E0h to FFh
  789. ----------6C---------------------------------
  790. INT 6C - system resume vector (CONVERTIBLE)
  791. ----------6C---------------------------------
  792. INT 6C - DOS 3.2 Realtime Clock update
  793. --------N-6C---------------------------------
  794. INT 6C - DECnet DOS network scheduler
  795. Notes:    the installation check consists of testing for a signature area
  796.       immediately preceding the interrupt handler
  797.     also supported by DEC Pathworks for DOS
  798. SeeAlso: INT 6B"DECnet",INT 6D"DECnet",INT 6E"DECnet"
  799. Index:    installation check;DECnet DOS scheduler
  800.  
  801. Format of signature area:
  802. Offset    Size    Description
  803.  -5    BYTE    major version number
  804.  -4    BYTE    minor version number
  805.  -3   3 BYTEs    signature (ASCII "SCH")
  806. --------V-6D---------------------------------
  807. INT 6D - VGA - internal
  808. Note:    used by IBM, Paradise, Video7, and NCR
  809. --------V-6D---------------------------------
  810. INT 6D - ATI VGA Wonder - VIDEO BIOS ENTRY POINT
  811.    points at the original INT 10 entry point set up by the ATI BIOS
  812. SeeAlso: INT 10
  813. --------V-6D---------------------------------
  814. INT 6D - Trident SVGA - VIDEO BIOS HANDLER
  815. Note:    the BIOS INT 10 handler on various Trident VGA cards consists merely
  816.       of a call to INT 6D followed by an IRET.
  817. --------N-6D---------------------------------
  818. INT 6D - DECnet DOS (before 2.1) - DATA LINK LAYER PROGRAM
  819.     AH = function
  820.     ???
  821. Return: ???
  822. Note:    the installation check consists of testing for a signature area
  823.       immediately preceding the interrupt handler
  824. SeeAlso: INT 69/AH=0Ah,INT 6C"DECnet",INT 6E"DECnet"
  825. Index:    installation check;DECnet DOS Data Link Layer
  826.  
  827. Format of signature area:
  828. Offset    Size    Description
  829.  -5    BYTE    major version number
  830.  -4    BYTE    minor version number
  831.  -3   3 BYTEs    signature (ASCII "SCH")
  832. --------N-6E---------------------------------
  833. INT 6E - DECnet DOS - DECnet NETWORK PROCESS API
  834. Notes:    this is the main DECnet DOS access, and is described in Digital manual
  835.       AA-EB46B-TV ("DECnet-DOS Programmer's Reference Manual")
  836.     there is a signature/data area immediately prior to the interrupt
  837.       handler which may be used as an installation check
  838. Index:    installation check;DECnet DOS
  839.  
  840. Format of signature area:
  841. Offset    Size    Description
  842.  -5    BYTE    major version number
  843.  -4    BYTE    minor version number
  844.  -3   3 BYTEs    signature (ASCII "DNP")
  845. --------N-6F---------------------------------
  846. INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface)
  847.     AX = function
  848.         0000h enter terminal mode
  849.         Return: AX = status
  850.                 0000h no action requested
  851.                 0001h screen save
  852.         0001h reset interface and set configuration parameters
  853.         DX = bitfields
  854.             bits 2-0: model number
  855.             bits 4-3: I/O address
  856.             bits 6-5: DMA channel
  857.         Return: nothing
  858.         0002h set display parameters
  859.         DX = bitfields
  860.             bits 1-0: OIA mode
  861.             bits 4-2: monitor support
  862.         Return: nothing
  863.         0003h read status
  864.         Return: AX = status word (see below)
  865.         0004h read cursor position
  866.         Return: AX = cursor position
  867.         0005h get character from device buffer
  868.         DX = cursor position
  869.         Return: AH = type (00h data, 01h attribute)
  870.             AL = data or attribute character
  871.         0006h send character
  872.         DH = type (00h ASCII, 01h extended code)
  873.         DL = ASCII character or extended code
  874.         Return: nothing
  875.         0007h set timeout
  876.         DX = timeout in seconds
  877.         Return: nothing
  878.         0008h wait for location to be modified
  879.         DX = cursor position
  880.         Return: AX = status (0000h modified, nonzero timeout)
  881.         0009h NOP
  882.         000Ah restore display
  883.         Return: nothing
  884.         000Bh update device buffer
  885.         Return: AX = cursor positoin
  886.         000Ch write string to add information area
  887.         DS:DX -> string
  888.         Return: nothing
  889.         000Dh maintenance operations
  890.         DX = maintenance operation code
  891.         Return: AX = operation status
  892.         000Eh get control program version
  893.         Return: AH = release number (major version)
  894.             AL = level number (minor version)
  895.         000Fh get microcode version
  896.         Return: AH = release number (major version)
  897.             AL = level number (minor version)
  898.         0010h save or display graphics
  899.         BX = length of data buffer
  900.         CX = subfunction request code
  901.         DS:DX -> data buffer
  902.         Return: AX = return code
  903.             CX = length of PIF data
  904.         0011h perform structured field operation
  905.         CX = request number
  906.         DS:DX -> parameter list
  907.         Return: AX = status word (see below)
  908.             CX = error number
  909.         0012h set cursor position for direct write buffer
  910.         DX = new cursor position
  911.         Return: AX = status word (see below)
  912.         0013h write direct to buffer
  913.         DL = character to be written
  914.         DH = translation option
  915.         Return: AX = status word (see below)
  916.         0014h write direct to buffer without echo
  917.         DL = character to be written
  918.         DH = translation option
  919.         Return: AX = status word (see below)
  920.         0015h set direct write string length
  921.         DX = string value
  922.         Return: nothing
  923.         0016h write string direct to buffer
  924.         DS:DX -> string
  925.         Return: AX = status word (see below)
  926.         0017h write string direct to buffer, untranslated
  927.         DS:DX -> string
  928.         Return: AX = status word (see below)
  929.         0018h get direct-write cursor position
  930.         Return: AX = cursor position
  931.         0019h convert row/column to cursor position
  932.         DH = display row (1-43)
  933.         DL = display column (1-132)
  934.         Return: AX = cursor position
  935.         001Ah convert cursor position to row/column
  936.         DX = cursor position
  937.         Return: AH = display row
  938.             AL = display column
  939.         001Bh find next field
  940.         DX = initial cursor position
  941.         Return: AX = field cursor position
  942.         001Ch find previous field
  943.         DX = initial cursor position
  944.         Return: AX = field cursor position
  945.         001Dh find next unprotected field
  946.         DX = initial cursor position
  947.         Return: AX = field cursor position
  948.         001Eh find previous unprotected field
  949.         DX = initial cursor position
  950.         Return: AX = field cursor position
  951.         001Fh find next protected field
  952.         DX = initial cursor position
  953.         Return: AX = field cursor position
  954.         0020h find previous protected field
  955.         DX = initial cursor position
  956.         Return: AX = field cursor position
  957.         0021h masked search forward
  958.         DH = mask
  959.         DL = search pattern
  960.         Return: AX = cursor position or 0000h
  961.         0022h masked search backward
  962.         DH = mask
  963.         DL = search pattern
  964.         Return: AX = cursor position or 0FFFh
  965.         0023h find field length
  966.         DX = cursor position
  967.         Return: AX = field length
  968.         0024h read field
  969.         DS:DX -> buffer for field contents
  970.         Return: AX = status word (see below)
  971.         0025h read screen
  972.         DS:DX -> buffer for screen contents
  973.         Return: AX = status word (see below)
  974.         0026h read buffer untranslated
  975.         DX = cursor position
  976.         Return: AX = buffer code
  977.             CX:BX -> 3278/79 device buffer image
  978.         0027h enable/disable keyboard
  979.         DL = new state of keyboard breaks (00h enabled, 01h disabled)
  980.         Return: nothing
  981.         0028h select host session
  982.         DL = session short name
  983.         Return: AX = session information
  984.         0029h retrieve host session name
  985.         AX = short name (DFT) or 0000h (not available, CUT mode)
  986.         002Ah get current device buffer size
  987.         Return: AX = device buffer size
  988.             CX = segment of EAB
  989.         002Bh arm modified location trigger
  990.         DX = cursor position
  991.         Return: AX = status (0000h not available, 0001h successful)
  992.  
  993. Bitfields for status word:
  994.  bits 0,1 cursor type
  995.  bit 2    cursor inhibited
  996.  bit 3    display inhibited
  997.  bit 4    feature step inhibited
  998.  bit 5    480-character format code
  999.  bits 6,7 unused
  1000.  bits 8-10 model number (2-5)
  1001.  bit 11    unit has been reset by controller (bit cleared after status returned)
  1002.  bit 12    buffer has been written into (bit cleared after status returned)
  1003.  bit 13    alarm has been sounded (bit cleared after status returned)
  1004.  bits 14-15 monitor type (01 mono, 10 color, 11 hybrid)
  1005. --------N-6F00-------------------------------
  1006. INT 6F - 10NET - LOGIN
  1007.     AH = 00h
  1008.     DS:DX -> login record (see below)
  1009. Return: CL = security level
  1010.     AX = status (see below)
  1011. SeeAlso: AH=01h,AH=80h,INT 21/AX=4402h"10MEMMGR"
  1012.  
  1013. Format of login record:
  1014. Offset    Size    Description
  1015.  00h  8 BYTEs    user name
  1016.  08h  8 BYTEs    password
  1017.  10h 12 BYTEs    name of SuperStation
  1018.  
  1019. Values for status:
  1020.  0000h    successful
  1021.  01FFh    "RTO_NERR" transmit interrupt lost (time out on response)
  1022.  02FFh    "NET_NERR" network (hardware) error
  1023.  03FFh    "PAS_NERR" invalid password
  1024.  04FFh    "LRN_NERR" local resource not available
  1025.  05FFh    "SRN_NERR" server resource not available
  1026.  06FFh    "LNM_NERR" already logged in under different name
  1027.  07FFh    "LSF_NERR" login security failure (node)
  1028.  08FFh    "NLI_NERR" not logged in
  1029.  09FFh    "DIVZ_NERR" position calc error
  1030.  0AFFh    "NT1_NERR" receive subfunction not = send subfunction (i.e. read,write)
  1031.  0BFFh    "RFNC_NERR" request function not in range
  1032.  0CFFh    "NSFH_NERR" no more server file handle entries left
  1033.  0DFFh    "NFTAB_NERR" no more shared file table entries left
  1034.  0EFFh    "NUFH_NERR" no more user file handle entries left
  1035.  0FFFh    "CHAT_NERR" chat permit not on
  1036.  10FFh    "NSRV_NERR" not a server on request
  1037.  11FFh    "NOBD_NERR" no transporter board error
  1038.  12FFh    "STO_NERR" time out on send
  1039.  13FFh    "INF_NERR" item not found (spool item not on queue)
  1040.  14FFh    "DACS_NERR" DOS access incompatible
  1041.  15FFh    "RLOCK_NERR" record already locked
  1042.  16FFh    "IVP_NERR" invalid parameter
  1043.  17FFh    "RLTO_NERR" record lock time out error
  1044.  18FFh    "CSPL_NERR" currently spooling to named device
  1045.  19FFh    "DRP_NERR" dropped receive message (throttle)
  1046.  1AFFh    "SOPV_NERR" open sharing violation
  1047.  1BFFh    "NTUF_NERR" no more tuf entries left
  1048.  1CFFh    "NOWN_NERR" not file owner on open
  1049.  1DFFh    "RSEC_NERR" read security not passed
  1050.  1EFFh    "WSEC_NERR" write security not passed
  1051.  1FFFh    "GSEC_NERR" group security not passed
  1052.  20FFh    "SEC1_NERR" security file failure
  1053.  21FFh    "ACT1_NERR" activity file failure
  1054.  22FFh    "SPL1_NERR" spool control file failure
  1055.  23FFh    "NMT_NERR" device not mounted (spooling)
  1056.  24FFh    "RSPL_NERR" spool file has not been terminated
  1057.  25FFh    "DNSH_NERR" device not mounted or is not being shared
  1058.  26FFh    "DUP_NERR" duplicate node ID
  1059.  27FFh    "FNF_NERR" file not found error
  1060.  28FFh    "NMF_NERR" no more files
  1061.  29FFh    "UN_NERR" unknown internal system error
  1062.  2AFFh    "QCP_NERR" print queue is full or corrupted
  1063.  2BFFh    "IFNC_NERR" invalid function
  1064.  2CFFh    "IVH_NERR" invalid handle
  1065.  2DFFh    "TOF_NERR" too many files opened
  1066.  2EFFh    "PNF_NERR" path not found
  1067.  2FFFh    "SACT_NERR" named file is active
  1068. ---10NET v5.0+ ---
  1069.  30FFh    "NAK_NERR" received NAK on send (destination out of buffers)
  1070.  31FFh    "RENT_NERR" reentrancy in driver F_SEND
  1071.  32FFh    "RECV_NERR" driver could not be put in receive mode
  1072.  33FFh    "NRLT_NERR" no more RLTAB entries left
  1073.  34FFh    "DIAL_NERR" function requires an unsupported dialect
  1074.  35FFh    "IVD_NERR" invalid device
  1075.  36FFh    "NALV_NERR" netname access level violated
  1076.  37FFh    "NPIDNF_NERR" network path not found
  1077.  38FFh    "SP_NERR" server is paused
  1078.  39FFh    "TMNM_NERR" too many remote user names
  1079.  3AFFh    "DUPD_NERR" duplicate network device
  1080.  3BFFh    "DIU_NERR" shared device in use, can't delete
  1081.  3CFFh    "NNWD_NERR" network name was deleted
  1082.  3DFFh    "NPFS_NERR" not enough space for print file
  1083.  3EFFh    "NNNF_NERR" network name not found (can't find the call name)
  1084.  3FFFh    "NB_NERR" network busy
  1085.  40FFh    "NDNLE_NERR" network device no longer exists
  1086.  41FFh    "NBCLE_NERR" NetBIOS command limit exceeded
  1087.  42FFh    "FINT24_NERR" Fail on INT 24h
  1088.  43FFh    "PEXP_NERR" password expired
  1089.  44FFh    "NPUP_NERR" new password error
  1090.  45FFh    "MAXS_NERR" maximum allowed disk space exceeded
  1091.  46FFh    "TDOW_NERR" time-of-day/day-of-week error
  1092. Index:    error codes;10Net|10Net;error codes
  1093. --------N-6F01-------------------------------
  1094. INT 6F - 10NET - LOGOFF
  1095.     AH = 01h
  1096.     DS:DX -> superstation ID or nulls (12 bytes)
  1097. Return: CX = number of files closed
  1098.     AX = status (see also AH=00h)
  1099.         08FFh superstation ID not already logged in
  1100. SeeAlso: AH=00h,AH=81h
  1101. --------N-6F02-------------------------------
  1102. INT 6F - 10NET - STATUS OF NODE
  1103.     AH = 02h
  1104.     DS:DX -> 512-byte status record (see below)
  1105. Return:    CF clear if successful
  1106.     CF set on error
  1107.         AX = error code (see AH=00h)
  1108. SeeAlso: INT 21/AX=5E01h"10NET"
  1109.  
  1110. Format of node status record:
  1111. Offset    Size    Description
  1112.  00h  8 BYTEs    user name (0 if none)
  1113.  08h    BYTE    station type
  1114.         00h workstation
  1115.         01h superstation
  1116.         02h gateway station
  1117.         03h gateway active
  1118.         04h logged into multiple superstations
  1119.         05h reserved
  1120.  09h 24 BYTEs    list of superstations logged into more than one superstation
  1121.  21h 12 BYTEs    node ID
  1122.  2Dh    WORD    message count for this station (send for user node, receive for
  1123.         superstations)
  1124. ---for superstations only---
  1125.  2Fh    WORD    drives allocated (bit 0=A:, bit 1=B:,...)
  1126.  31h    BYTE    user service flags (see below)
  1127.  32h    BYTE    printers allocated (bit 0=LPT1,...)
  1128.  33h    BYTE    number of unprinted spool files
  1129.  34h    BYTE    number of opened files
  1130.  35h    BYTE    number of logged on nodes
  1131.  36h    BYTE    primary drive (1=A:)
  1132.  37h    BYTE    reserved
  1133.  38h  N BYTEs    list of logged on node IDs (each 12 bytes, max 37 IDs)
  1134. 1F4h  3 BYTEs    time: sec/min/hrs
  1135. 1F7h  3 BYTEs    date: day/mon/year-1980
  1136.  
  1137. Bitfields for user service flags:
  1138.  bit 7    gate
  1139.  bit 6    print permit on
  1140.  bit 4    SUBMIT is on
  1141.  bit 3    mail waiting for node
  1142.  bit 2    calendar waiting for you
  1143.  bit 1    news waiting for you
  1144.  bit 0    mail waiting for you
  1145. --------W-6F0204-----------------------------
  1146. INT 6F C - MS Windows 3.0 - DOS APPLICATION SWITCH HOOK
  1147.     AX = 0204h
  1148. Return: AX = status
  1149.         0000h switch is allowed
  1150.         other switch not allowed
  1151. Note:    intercepting this call will allow a DOS application to ensure that
  1152.       Windows will not switch away from it.
  1153. --------N-6F03-------------------------------
  1154. INT 6F - 10NET - GET ADDRESS OF CONFIGURATION TABLE
  1155.     AH = 03h
  1156.     DS:DI -> node ID (optional)
  1157. Return: ES:BX -> configuration table
  1158. SeeAlso: AH=13h,INT 21/AX=5E01h"10NET"
  1159.  
  1160. Format of configuration table:
  1161. Offset    Size    Description
  1162. -41    WORD    local device table address
  1163. -39    WORD    extended network error mapping table address
  1164. -37    WORD    shared device table address
  1165. -35    WORD    mounted device table address
  1166. -33    BYTE    receive buffer counter
  1167. -32    BYTE    collect buffer counter
  1168. -31    WORD    TUF address
  1169. -29    BYTE    enable flag
  1170. -28    BYTE    FCB keep flag
  1171. -27    WORD    reserved
  1172. ---up to here, 10NET v3.3---
  1173. -25    WORD    count of dropped Send6F
  1174. -23    WORD    buffer start address
  1175. -21    WORD    comm driver base address
  1176. -19    WORD    send/receive retry count
  1177. -17    BYTE    number of 550ms loops before timeout
  1178. -16    WORD    UFH address
  1179. -14    WORD    CDIR address
  1180. -12    WORD    LTAB address
  1181. -10    WORD    SFH address
  1182. -8    WORD    FTAB address
  1183. -6    WORD    RLTAB address
  1184. -4    WORD    SMI address
  1185. -2    WORD    NTAB address
  1186.  00h    WORD    address of first CT_DRV
  1187.  02h    BYTE    number of DRV entries
  1188.  03h  8 BYTEs    login name
  1189.  0Bh 12 BYTEs    node ID (blank-padded)
  1190.  17h  6 BYTEs    node address
  1191.  1Dh    BYTE    flag
  1192.  1Eh    BYTE    CT_CFLG (chat permit)
  1193.         bit 1: sound bell
  1194.         bit 0: CHAT permit
  1195.  1Fh    BYTE    CT_PSFLG
  1196.         bit 5: PRINT permit
  1197.         bit 4: KB initiated
  1198.         bit 3: CHAT called FOXPTRM
  1199.         bit 2: SUBMIT active
  1200.         bit 1: SUBMIT received
  1201.         bit 0: SUBMIT permit
  1202.  20h    BYTE    in 10Net flag
  1203.  21h    WORD    receive message count
  1204.  23h    WORD    send message count
  1205.  25h    WORD    retry count
  1206.  27h    WORD    failed count
  1207.  29h    WORD    driver errors
  1208.  2Bh    WORD    dropped responses/CHATs
  1209.  2Dh  9 BYTEs    LIST ID/NTAB address (3 entries--LPT1-3)
  1210.  36h  6 BYTEs    AUX ID/NTAB address (2 entries--COM1-2)
  1211.  3Ch    BYTE    active CB channel
  1212.  3Dh    BYTE    received 6F messages on queue
  1213.  3Eh  9 BYTEs    activity counters for channels 1-9
  1214. ---beyond here, 10NET v3.3---
  1215.  47h    BYTE    bit 0: RS232 gate
  1216.         bit 1: Send6F gate (user set)
  1217.  48h    DWORD    pointer into gate (user set)
  1218.  4Ch    DWORD    pointer into 10Net send
  1219.  50h  N WORDs    addresses of timer blocks
  1220. --------N-6F04-------------------------------
  1221. INT 6F - 10NET - SEND
  1222.     AH = 04h
  1223.     DS:BX -> send record (see below)
  1224.     DS:DX -> data (max 1024 bytes)
  1225. Return:    CF clear if successful
  1226.     CF set on error
  1227.         AX = error code (see AH=00h)
  1228. SeeAlso: AH=05h,AH=09h,AH=0Ah
  1229.  
  1230. Format of send record:
  1231. Offset    Size    Description
  1232.  00h 12 BYTEs    receiving node's ID
  1233.         if first byte has high-order bit set, message is directed to
  1234.           the CT_RGATE vector at the receiver
  1235.         if second byte is 00h, first byte is taken as a CB
  1236.           channel number and delivered to all nodes on same channel
  1237.  0Ch    WORD     length of data at DX
  1238. --------N-6F05-------------------------------
  1239. INT 6F - 10NET - RECEIVE
  1240.     AH = 05h
  1241.     CX = number of seconds before timeout
  1242.     DS:DX -> receive buffer (see below)
  1243. Return:    CF clear if successful
  1244.         AH = FEh if dequeued message is a CB message
  1245.     CF set on error
  1246.         AX = error code (see AH=00h)
  1247. SeeAlso: AH=04h
  1248.  
  1249. Format of receive buffer:
  1250. Offset    Size    Description
  1251.  00h 12 BYTEs    sending node's ID
  1252.  0Ch    WORD    length of message
  1253.  0Eh  N BYTEs    message (maximum 1024 bytes)
  1254. --------N-6F07-------------------------------
  1255. INT 6F - 10NET - LOCK HANDLE
  1256.     AH = 07h
  1257.     BX = file handle
  1258.     CX:DX = starting offset in file
  1259.     SI = record length
  1260. Return:    CF clear if successful
  1261.     CF set on error
  1262.         AX = error code (see also AH=00h)
  1263.         0002h file not found
  1264. SeeAlso: AH=08h,AH=0Fh,INT 21/AH=5Ch
  1265. --------N-6F08-------------------------------
  1266. INT 6F - 10NET - UNLOCK HANDLE
  1267.     AH = 08h
  1268.     BX = file handle
  1269.     AL = mode
  1270.         00h unlock all
  1271.         01h unlock record at CX:DX
  1272. Return:    CF clear if successful
  1273.     CF set on error
  1274.         AX = error code (see also AH=00h)
  1275.         0002h file not found
  1276. SeeAlso: AH=07h,AH=0Fh,INT 21/AH=5Ch
  1277. --------N-6F09-------------------------------
  1278. INT 6F - 10NET - SUBMIT
  1279.     AH = 09h
  1280.     DS:BX -> submit record (see below)
  1281. SeeAlso: AH=04h
  1282.  
  1283. Format of submit record:
  1284. Offset    Size    Description
  1285.  00h 12 BYTEs    destination node ID (must be logged in)
  1286.  0Ch    WORD    length+2 of following 'command line' text
  1287.  0Eh  N BYTEs    command line text (<=100 bytes), system adds CR
  1288. --------N-6F0A-------------------------------
  1289. INT 6F - 10NET - CHAT
  1290.     AH = 0Ah
  1291.     DS:BX -> control parameters (see below)
  1292.     DS:DX -> chat message (see below)
  1293. SeeAlso: AH=04h,AH=8Ah
  1294.  
  1295. Format of control parameters:
  1296. Offset    Size    Description
  1297.  00h  8 BYTEs    sender ID, defaults to node's userID if nulls
  1298.  08h  8 BYTEs    destination user ID, 'EVERYONE' may be used
  1299.  10h 12 BYTEs    destination node ID
  1300.  
  1301. Format of chat message:
  1302. Offset    Size    Description
  1303.  00h    WORD    length+2 of following text
  1304.  02h  N BYTEs    text, max 101 bytes
  1305. --------N-6F0B-------------------------------
  1306. INT 6F - 10NET - LOCK SEMAPHORE, RETURN IMMEDIATELY
  1307.     AH = 0Bh
  1308.     AL = drive number or 0
  1309.     ES:SI = Ethernet address or 0
  1310.     DS:BX -> 31-byte ASCIZ semaphore name
  1311. Return: AL = status (see below)
  1312. Note:    same as INT 60/AH=12h
  1313. SeeAlso: AH=0Ch,INT 60/AH=12h
  1314.  
  1315. Values for status:
  1316.  00h    successful
  1317.  01h    semaphore currently locked
  1318.  02h    server not responding
  1319.  03h    invalid semaphore name
  1320.  04h    semaphore list is full
  1321.  05h    invalid drive ID
  1322.  06h    invalid Ethernet address
  1323.  07h    not logged in
  1324.  08h    write to network failed
  1325.  09h    semaphore already logged in this CPU
  1326. Index:    error codes;10-Net|10-Net;error codes
  1327. --------N-6F0C-------------------------------
  1328. INT 6F - 10NET - UNLOCK SEMAPHORE
  1329.     AH = 0Ch
  1330.     AL = drive number or 0
  1331.     ES:SI = Ethernet address or 0
  1332.     DS:BX -> 31-byte ASCIZ semaphore name
  1333. Return: AL = status (see also AH=0Bh)
  1334.         01h semaphore not locked
  1335. Note:    same as INT 60/AH=13h
  1336. SeeAlso: AH=0Bh,INT 60/AH=13h
  1337. --------N-6F0D-------------------------------
  1338. INT 6F - 10NET - "WHO" - ENUMERATE USERS ON NETWORK
  1339.     AH = 0Dh
  1340.     AL = type code
  1341.         01h return superstations only
  1342.         02h return non-superstations only
  1343.         otherwise return all
  1344.     CX = length of data buffer
  1345.     DS:DX -> array of records to be filled (see below)
  1346. Return: CL = number of records returned (responding stations)
  1347. SeeAlso: AH=16h,AH=8Dh
  1348.  
  1349. Format of station record:
  1350. Offset    Size    Description
  1351.  00h 12 BYTEs    node ID
  1352.  0Ch    BYTE    flags
  1353.         bit 1: workstation
  1354.         bit 2: superstation
  1355.         bit 3: xgate
  1356.         bit 4: active gate
  1357. ---if AL = 01h---
  1358.  0Dh    BYTE    version number
  1359.  0Eh    WORD    level number of 10Net software in responding node
  1360. ---if AL = 02h---
  1361.  0Dh  8 BYTEs    user ID
  1362.  15h    BYTE    version number
  1363.  16h    WORD    level number
  1364. --------N-6F0E-------------------------------
  1365. INT 6F - 10NET - SPOOL/PRINT
  1366.     AH = 0Eh
  1367.     DS:DX -> spool/print record (see below)
  1368. Return:    CF clear if successful
  1369.     CF set on error
  1370.         AX = error code (see also AH=00h)
  1371.         17FFh device not mounted
  1372.         18FFh already spooling to named device
  1373.  
  1374. Values for operation code:
  1375.  0000h    initiate spool
  1376.  0001h    abort print
  1377.  0002h    close spool
  1378.  0003h    delete spool
  1379.  0004h    print
  1380.  0005h    get report info
  1381.  0006h    set chat template
  1382.  0007h    queue
  1383.  0008h    return queue
  1384.  0009h    queue non-spooled file for printing
  1385.  
  1386. Format of Spool/Print record:
  1387. Offset    Size    Description
  1388.  00h    WORD    operation code (see above)
  1389.  02h 11 BYTEs    file name in FCB format
  1390. ---if operation code = 00h or 06h---
  1391.  0Dh    BYTE    notification flags (see below)
  1392.  0Eh    BYTE    days to keep (FFh=forever)
  1393.  0Fh    BYTE    bits 0,1: device (1=LPT1)
  1394.         bits 4-7: remote drive to store spool file (1=A,...)
  1395.  10h    WORD    length of following data area
  1396.  12h  N BYTEs    up to 64 bytes of description
  1397. ---if operation code = 03h---
  1398.  0Dh  8 BYTEs    user ID to associate with filename
  1399. ---if operation code = 04h---
  1400.  0Dh    WORD    block number
  1401.  0Fh  8 BYTEs    user ID to associate with filename
  1402. ---if operation code = 05h---
  1403.  0Dh    BYTE    RRN to start retrieve
  1404.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  1405.         bit 3: if set, return entries for all users
  1406.  0Fh    WORD    length of following area
  1407.  11h  N BYTEs    up to 1500 bytes to receive $SCNTL records returned
  1408. ---if operation code = 07h---
  1409.  0Dh    BYTE    queue number
  1410.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  1411.  0Fh    WORD    number of bytes of test print to be done
  1412.  11h    BYTE    code: 01h print device
  1413.               02h test print count
  1414.               03h prn
  1415. ---if operation code = 08h---
  1416.  0Dh    BYTE    queue location or $SCNTL location to start access
  1417.             returns next item for access:
  1418.                 00h-7Fh queued items
  1419.                 80h-FEh non-queued, non-printed items
  1420.                 FFh    no more items
  1421.  0Eh    WORD    unused
  1422.  10h    WORD    length of following area
  1423.  12h  N BYTEs    up to 64 bytes to receive $SCNTL records
  1424. ---if operation code = 09h---
  1425.  0Dh  3 BYTEs    unused
  1426.  10h  N BYTEs    path to non-spooled file to be queued for printing
  1427.  
  1428. Bitfields for notification flags:
  1429.  bit 7    queue to top
  1430.  bit 6    do ID page
  1431.  bit 5    no form feed
  1432.  bit 4    reserved
  1433.  bit 3    explicit queuing only
  1434.  bit 2    notify at print completion
  1435.  bit 1    notify server operator, with reply
  1436.  bit 0    notify at print start
  1437.  
  1438. Format of $SCNTL record:
  1439. Offset    Size    Description
  1440.  00h  8 BYTEs    user ID
  1441.  08h 11 BYTEs    filename in FCB format
  1442.  13h  6 BYTEs    node ID
  1443.  19h  3 BYTEs    creation date
  1444.  1Ch    BYTE    notification flags (see above)
  1445.  1Dh    BYTE    retention time in days
  1446.  1Eh    BYTE    printing device (LPTx)
  1447.  1Fh  3 BYTEs    date last printed (0 = never)
  1448.  22h    BYTE    device containing spoolfile
  1449.  23h    WORD    bytes to print for test print
  1450.  25h    WORD    block number to start print
  1451.  27h    BYTE    reserved
  1452. --------N-6F0F-------------------------------
  1453. INT 6F - 10NET v5.0 - "RM LOCK" - ???
  1454.     AH = 0Fh
  1455.     ???
  1456. Return: ???
  1457. SeeAlso: AH=07h,AH=08h
  1458. --------N-6F10-------------------------------
  1459. INT 6F - 10NET - ATTACH/DETACH PRINTER
  1460.     AH = 10h
  1461.     AL = subfunction
  1462.         00h initiate spooling if LPT1 is mounted
  1463.         01h terminate spooling if LPT1 is mounted
  1464. SeeAlso: INT 21/AX=5D08h
  1465. --------N-6F11-------------------------------
  1466. INT 6F - 10NET - LOCK FCB
  1467.     AH = 11h
  1468.     AL = mode
  1469.         01h sequential
  1470.         02h random
  1471.         03h random block
  1472.         CX = number of records
  1473.     DS:DX -> FCB (see INT 21/AH=0Fh)
  1474. Return:    CF clear if successful
  1475.     CF set on error
  1476.         AX = error code (see also AH=00h)
  1477.         0002h file not found
  1478. SeeAlso: AH=12h
  1479. --------N-6F12-------------------------------
  1480. INT 6F - 10NET - UNLOCK FCB
  1481.     AH = 12h
  1482.     AL = mode
  1483.         00h sequential
  1484.         01h random
  1485.         02h random block
  1486.         CX = number of records
  1487.     DS:DX -> FCB (see INT 21/AH=0Fh)
  1488. Return:    CF clear if successful
  1489.     CF set on error
  1490.         AX = error code (see also AH=00h)
  1491.         0002h file not found
  1492. SeeAlso: AH=11h
  1493. --------N-6F13-------------------------------
  1494. INT 6F - 10NET v3.3+ - GET REMOTE CONFIGURATION TABLE ADDRESS
  1495.     AH = 13h
  1496.     DS:DX -> node ID, 12 bytes blank-padded
  1497. Return:    CF clear if successful
  1498.         ES:BX = configuration table address on given machine
  1499.     CF set on error
  1500.         AX = error code (see AH=00h)
  1501. SeeAlso: AH=03h
  1502. --------N-6F14-------------------------------
  1503. INT 6F - 10NET v3.3+ - GET REMOTE MEMORY
  1504.     AH = 14h
  1505.     BX:SI = address of remote memory
  1506.     CX = length (<=1024 bytes)
  1507.     DS:DX -> node ID, 12 bytes blank-padded
  1508.     DS:DI -> area to receive remote memory image
  1509. Return:    CF clear if successful
  1510.         CX = amount of memory copied to DS:SI
  1511.     CF set on error
  1512.         AX = error code (see AH=00h)
  1513. --------N-6F1501-----------------------------
  1514. INT 6F - 10NET v3.3+ - GET SHARED DEVICE ENTRY
  1515.     AX = 1501h
  1516.     BX = zero-based index
  1517.     DS:SI -> node ID, 12 bytes blank-padded
  1518.     ES:DI -> 85-byte buffer for shared device table entry (see below)
  1519. Return:    CF clear if successful
  1520.         ES:DI buffer contains shared device table entry of BXth device
  1521.     CF set on error
  1522.         AX = error code (see AH=00h)
  1523. SeeAlso: AX=1502h,AX=1503h,AX=9501h
  1524.  
  1525. Format of shared device table entry:
  1526. Offset    Size    Description
  1527.  00h  8 BYTEs    device
  1528.  08h  8 BYTEs    alias
  1529.  10h 64 BYTEs    path
  1530.  50h  8 BYTEs    password
  1531.  58h    BYTE    access
  1532.  59h  4 BYTEs    mask
  1533. --------N-6F1502-----------------------------
  1534. INT 6F - 10NET v3.3+ - SET SHARED DEVICE ENTRY
  1535.     AX = 1502h
  1536.     DS:SI -> node ID, 12 bytes blank-padded
  1537.     ES:DI -> valid shared device table entry
  1538. Return:    CF clear if successful
  1539.     CF set on error
  1540.         AX = error code (see AH=00h)
  1541. SeeAlso: AX=1501h,AX=1503h,AX=9502h
  1542. --------N-6F1503-----------------------------
  1543. INT 6F - 10NET v3.3+ - DELETE SHARED DEVICE ENTRY
  1544.     AX = 1503h
  1545.     BX = zero-based index
  1546.     DS:SI -> node ID, 12 bytes blank-padded
  1547. Return:    CF clear if successful
  1548.     CF set on error
  1549.         AX = error code (see AH=00h)
  1550. SeeAlso: AX=1501h,AX=1502h,AX=9503h
  1551. --------N-6F16-------------------------------
  1552. INT 6F - 10NET v5.0 - "GL WHO" - ???
  1553.     AH = 16h
  1554.     ???
  1555. Return: ???
  1556. SeeAlso: AH=0Dh
  1557. --------N-6F17-------------------------------
  1558. INT 6F - 10NET v3.3+ - MOUNT
  1559.     AH = 17h
  1560.     AL = local drive number (0=A:)
  1561.     BL = remote drive letter or '1'..'3' for LPTn or '4' or '5' for COMx
  1562.     DS:DX -> node ID, 12 bytes blank-padded
  1563. Return:    CF clear if successful
  1564.     CF set on error
  1565.         AX = error code (see AH=00h)
  1566. SeeAlso: AH=18h
  1567. --------N-6F18-------------------------------
  1568. INT 6F - 10NET v3.3+ - UNMOUNT
  1569.     AH = 18h
  1570.     AL = local drive number (0=A:)
  1571.     BL = type
  1572.         00h        disk
  1573.         01h-03h LPTn
  1574.         04h,05h COMx
  1575. Return:    CF clear if successful
  1576.     CF set on error
  1577.         AX = error code (see AH=00h)
  1578. SeeAlso: AH=17h
  1579. --------N-6F19-------------------------------
  1580. INT 6F U - 10NET v5.0 - AUDIT
  1581.     AH = 19h
  1582.     ???
  1583. Return: ???
  1584. SeeAlso: AH=99h
  1585. --------N-6F1A-------------------------------
  1586. INT 6F U - 10NET v5.0 - "BULL" - ???
  1587.     AH = 1Ah
  1588.     ???
  1589. Return: ???
  1590. --------N-6F1B-------------------------------
  1591. INT 6F U - 10NET v5.0 - "GMOUNT" - ???
  1592.     AH = 1Bh
  1593.     ???
  1594. Return: ???
  1595. --------N-6F1C-------------------------------
  1596. INT 6F U - 10NET v5.0 - "GLOGIN" - GET LOGIN LIST
  1597.     AH = 1Ch
  1598.     ???
  1599. Return: ???
  1600. --------N-6F1D-------------------------------
  1601. INT 6F U - 10NET v5.0 - "TABDATA" - ???
  1602.     AH = 1Dh
  1603.     ???
  1604. Return: ???
  1605. --------N-6F1E-------------------------------
  1606. INT 6F U - 10NET v5.0 - "SCHED" - ???
  1607.     AH = 1Eh
  1608.     ???
  1609. Return: ???
  1610. --------N-6F1F-------------------------------
  1611. INT 6F U - 10NET v5.0 - "WHOAMI" - ???
  1612.     AH = 1Fh
  1613.     ???
  1614. Return: ???
  1615. --------N-6F20-------------------------------
  1616. INT 6F U - 10NET v5.0 - ???
  1617.     AH = 20h
  1618.     ???
  1619. Return: ???
  1620. --------N-6F21-------------------------------
  1621. INT 6F U - 10NET v5.0 - ???
  1622.     AH = 21h
  1623.     ???
  1624. Return: ???
  1625. --------N-6F22-------------------------------
  1626. INT 6F U - 10NET v5.0 - ???
  1627.     AH = 22h
  1628.     ???
  1629. Return: ???
  1630. --------b-6F22--BP0012-----------------------
  1631. INT 6F - HP HIL Vectras - EXTENDED BIOS - READ CMOS MEMORY
  1632.     AH = 22h
  1633.     BP = 0012h (ID of V_SYSTEM driver)
  1634.     BL = address of CMOS byte to read
  1635. Return: AH = status
  1636.     AL = byte read
  1637.     BP, DS destroyed
  1638. Note:    supported by ES, QS, and RS series HP Vectras
  1639. SeeAlso: BP=0012h/AH=24h
  1640. --------b-6F24--BP0012-----------------------
  1641. INT 6F - HP HIL Vectras - EXTENDED BIOS - WRITE CMOS MEMORY
  1642.     AH = 24h
  1643.     BP = 0012h (ID of V_SYSTEM driver)
  1644.     BL = address of CMOS byte to write
  1645.     AL = new value
  1646. Return: AH = status
  1647.     BP, DS destroyed
  1648. SeeAlso: BP=0012h/AH=22h
  1649. --------N-6F80-------------------------------
  1650. INT 6F - 10NET v5.0 - LOGIN
  1651.     AH = 80h
  1652.     DS:DX -> login record (see below)
  1653. Return: CF clear if successful
  1654.         BL = number of days until password expires (00h = never)
  1655.         CL = security level
  1656.     CF set on error
  1657.         AX = status (see AH=00h)
  1658. SeeAlso: AH=00h,AH=81h
  1659.  
  1660. Format of login record:
  1661. Offset    Size    Description
  1662.  00h  8 BYTEs    user name
  1663.  08h  8 BYTEs    password
  1664.  10h 15 BYTEs    server node ID
  1665.  1Fh  8 BYTEs    new password
  1666.  27h    BYTE    invoke mode (00h command line, 01h interactive)
  1667. --------N-6F81-------------------------------
  1668. INT 6F - 10NET v5.0 - LOGOUT
  1669.     AH = 81h
  1670.     DS:DX -> server node ID (DX=0000h for universal logout)
  1671. Return: AX = status (see AH=00h)
  1672. SeeAlso: AH=01h,AH=80h
  1673. --------N-6F8A-------------------------------
  1674. INT 6F - 10NET v5.0 - CHAT
  1675.     AH = 8Ah
  1676.     DS:BX -> chat parameters (see below)
  1677.     DS:DX -> chat message (see below)
  1678. Return: CF clear if successful
  1679.     CF set on error
  1680.         AX = status (see AH=00h)
  1681. SeeAlso: AH=0Ah
  1682.  
  1683. Format of chat parameters:
  1684. Offset    Size    Description
  1685.  00h  8 BYTEs    sender's user name
  1686.  08h  8 BYTEs    destination user name
  1687.  10h 15 BYTEs    destination node (0 if broadcast-style chat)
  1688.  
  1689. Format of chat message:
  1690. Offset    Size    Description
  1691.  00h    WORD    message length
  1692.  02h  N BYTEs    chat message contents
  1693. --------N-6F8D-------------------------------
  1694. INT 6F - 10NET v5.0 - "WHO" - ENUMERATE USERS ON NETWORK
  1695.     AH = 8Dh
  1696.     BX = service mask (see below)
  1697.     CX = length of buffer
  1698.     DS:DX -> buffer for array of Who data structures (see below)
  1699. Return: CF clear if successful
  1700.         CX = number of nodes matching service mask
  1701.         DS:DX buffer filled
  1702.     CF set on error
  1703.         AX = status (see AH=00h)
  1704. SeeAlso: AH=0Dh
  1705.  
  1706. Bitfields for service mask:
  1707.  bit 0    workstation
  1708.  bit 1    file server
  1709.  bit 2    print server
  1710.  bit 3    de-spool server
  1711.  
  1712. Format of Who data structure:
  1713. Offset    Size    Description
  1714.  00h  8 BYTEs    user name
  1715.  08h 15 BYTEs    node ID
  1716.  17h  3 BYTEs    unique portion of Ethernet address
  1717.  1Ah    BYTE    Who group number
  1718.  1Bh    WORD    service mask (see above)
  1719.  1Dh    DWORD    serial number
  1720.  21h    BYTE    maximum concurrent users with same serial number allowed on net
  1721.  22h    BYTE    chat mask (see below)
  1722.  23h    BYTE    internal system bits (see below)
  1723.  24h  9 BYTEs    version number in format MM.mm.xxx
  1724.  2Dh    BYTE    number of shared directories
  1725.  2Eh    BYTE    number of shared printer queues
  1726.  
  1727. Bitfields for chat mask:
  1728.  bit 0    chat permitted
  1729.  bit 1    bell enabled
  1730.  bit 2    chat keyboard initiated
  1731.  bit 3    in INT 16 handler
  1732.  bit 4    in Get Input
  1733.  bit 5    display has timed out
  1734.  bit 6    chat is idle
  1735.  
  1736. Bitfields for internal system bits:
  1737.  bit 0    submit permitted
  1738.  bit 1    submit initiated
  1739.  bit 2    submit executing
  1740.  bit 3    internal client call/chat/spool/autospool
  1741.  bit 4    in spool termination
  1742.  bit 5    print permitted
  1743.  bit 6    waiting for keyboard input
  1744. --------N-6F9501-----------------------------
  1745. INT 6F - 10NET v5.0 - GET SHARED DEVICE ENTRY
  1746.     AX = 9501h
  1747.     BX = zero-based index
  1748.     DS:SI -> server's node ID
  1749.     ES:DI -> buffer for shared device structure (see below)
  1750. Return: CF clear if successful
  1751.     CF set on error
  1752.         AX = status (see AH=00h)
  1753. SeeAlso: AX=1501h,AX=9502h,AX=9503h,AX=9504h
  1754.  
  1755. Format of shared device structure:
  1756. Offset    Size    Description
  1757.  00h  8 BYTEs    alias
  1758.  08h    BYTE    type (02h modem, 03h print queue, 04h directory)
  1759.  09h    BYTE    access rights
  1760.         bit 0: read
  1761.         bit 1: write
  1762.         bit 2: create
  1763.  0Ah  8 BYTEs    password
  1764.  12h 32 BYTEs    comment
  1765. ---directory---
  1766.  32h 64 BYTEs    pathname of shared directory
  1767. ---print queue---
  1768.  32h    BYTE    notification bit mask (see below)
  1769.  33h    BYTE    job control bit mask (see below)
  1770.  34h    WORD    number of days to retain file
  1771.  36h    WORD    test print length
  1772.  38h    BYTE    number of copies to print
  1773.  39h    BYTE    compression algorithm
  1774.  3Ah    BYTE    tab width (00h = don't expand)
  1775.  3Bh    BYTE    priority
  1776.  3Ch    WORD    time to open queue (FFFFh = always)
  1777.  3Eh    WORD    time to close queue
  1778.  40h    WORD    pause following queue switch, in clock ticks
  1779.  42h    WORD    pause between print jobs, in clock ticks
  1780.  44h    BYTE    associate queue file existence mask
  1781.         bit 0: queue switch file exists
  1782.         bit 1: initiate file exists
  1783.         bit 2: abort file exists
  1784.  45h  6 BYTEs    character sequence for page eject
  1785.  4Bh    BYTE    status of print queue
  1786.         bit 0: queue is closed
  1787.  4Ch    WORD    number of jobs on queue
  1788.  4Eh    WORD    offset of next print job to be dispatched (FFFFh = none)
  1789.  50h    BYTE    number of print devices in printer pool
  1790.  51h    WORD    offset of first print device structure (FFFFh if empty)
  1791.  
  1792. Bitfields for notification flags:
  1793.  bit 0    user at print start
  1794.  bit 1    operator at start, with reply
  1795.  bit 2    user at print completion
  1796.  bit 3    operator at completion, with reply
  1797.  bit 4    user on queue switch
  1798.  bit 5    operator on queue switch, with reply
  1799.  bit 6    user on print error
  1800.  
  1801. Bitfields for job control mask:
  1802.  bit 0    print banner page
  1803.  bit 1    eject page at end of job
  1804.  bit 2    mark as "held" (queue but don't print)
  1805.  bit 3    rush job (queue at top)
  1806.  bit 4    overwrite file with zeros before deletion
  1807.  bit 5    hyperspool if possible
  1808. --------N-6F9502-----------------------------
  1809. INT 6F - 10NET v5.0 - SET SHARED DEVICE ENTRY
  1810.     AX = 9502h
  1811.     DS:SI -> server's node ID
  1812.     ES:DI -> shared device structure (see AX=9501h)
  1813. Return: CF clear if successful
  1814.     CF set on error
  1815.         AX = status (see AH=00h)
  1816. SeeAlso: AX=1502h,AX=9501h,AX=9503h,AX=9504h
  1817. --------N-6F9503-----------------------------
  1818. INT 6F - 10NET v5.0 - DELETE SHARED DEVICE
  1819.     AX = 9503h
  1820.     BX = zero-based index
  1821.     DS:SI -> server's node ID
  1822. Return: CF clear if successful
  1823.     CF set on error
  1824.         AX = status (see AH=00h)
  1825. SeeAlso: AX=1503h,AX=9501h,AX=9502h,AX=9504h
  1826. --------N-6F9504-----------------------------
  1827. INT 6F - 10NET v5.0 - ENUMERATE USERS OF SHARED DEVICE
  1828.     AX = 9504h
  1829.     BX = zero-based shared device index
  1830.     CX = zero-based user index
  1831.     DS:SI -> server's node ID
  1832. Return: CF clear if successful
  1833.         ES:DI -> node ID of the CX'th user of the BX'th device
  1834.     CF set on error
  1835.         AX = status (see AH=00h)
  1836. SeeAlso: AX=9501h,AX=9502h,AX=9503h
  1837. --------N-6F99-------------------------------
  1838. INT 6F - 10NET v5.0 - AUDIT
  1839.     AH = 99h
  1840.     DS:SI -> server's node ID
  1841.     ES:DI -> data to be appended to audit trail file (max 106 bytes)
  1842. Return: CF clear if successful
  1843.     CF set on error
  1844.         AX = status (see AH=00h)
  1845. SeeAlso: AH=19h,AH=9Ch
  1846. --------N-6F9C-------------------------------
  1847. INT 6F - 10NET v5.0 - GET LOGIN LIST
  1848.     AH = 9Ch
  1849.     BX = zero-based index
  1850. Return: CF clear if successful
  1851.         DS:DI -> BX'th node ID that caller's machine is logged into
  1852.     CF set on error
  1853.         AX = status (see AH=00h)
  1854. --------H-70---------------------------------
  1855. INT 70 - IRQ8 - CMOS REAL-TIME CLOCK
  1856. Desc:    this interrupt is called when the real-time clock chip generates an
  1857.       alarm or periodic interrupt, among others.  The periodic interrupt
  1858.       occurs 1024 times per second.
  1859. Nots:    many BIOSes turn off the periodic interrupt in the INT 70h handler
  1860.       unless in an event wait (see INT 15/AH=83h or INT 15/AH=86h).
  1861.     may be masked by setting bit 0 on I/O port A1h
  1862. SeeAlso: INT 08,INT 0F"HP 95LX",INT 15/AH=01h"Amstrad",INT 15/AH=83h
  1863. SeeAlso: INT 15/AH=86h,INT 1A/AH=02h,INT 58"DESQview"
  1864. --------v-70---------------------------------
  1865. INT 70 - VIRUS - "Stupid" - ORIGINAL INT 21h VECTOR
  1866. Note:    the virus sets this interrupt to be the same as INT 21, and then
  1867.       performs only INT 70 calls; since INT 70 is also generated by the
  1868.       real-time clock on the PC/AT and higher, this could cause random
  1869.       actions on an infected system
  1870. SeeAlso: INT 6B"VIRUS",INT 9E"VIRUS",INT E0"VIRUS"
  1871. --------H-71---------------------------------
  1872. INT 71 - IRQ9 - REDIRECTED TO INT 0A BY BIOS
  1873. Notes:    may be masked by setting bit 1 on I/O port A1h
  1874.     the default BIOS handler invokes INT 0A for compatibility, since the
  1875.       pin for IRQ2 on the PC expansion bus became the pin for IRQ9 on the
  1876.       AT expansion bus.
  1877.     under DESQview, only the INT 15h vector and BASIC segment address (the
  1878.       word at 0000h:0510h) may be assumed to be valid for the handler's
  1879.       process
  1880. SeeAlso: INT 0A,INT 59
  1881. --------H-72---------------------------------
  1882. INT 72 - IRQ10 - RESERVED
  1883. Note:    may be masked by setting bit 2 on I/O port A1h
  1884. SeeAlso: INT 5A
  1885. --------H-73---------------------------------
  1886. INT 73 - IRQ11 - RESERVED
  1887. Note:    may be masked by setting bit 3 on I/O port A1h
  1888. SeeAlso: INT 5B
  1889. --------H-74---------------------------------
  1890. INT 74 - IRQ12 - POINTING DEVICE (PS)
  1891. Notes:    may be masked by setting bit 4 on I/O port A1h
  1892.     under DESQview, only the INT 15h vector and BASIC segment address (the
  1893.       word at 0000h:0510h) may be assumed to be valid for the handler's
  1894.       process
  1895. SeeAlso: INT 33,INT 5C
  1896. --------H-75---------------------------------
  1897. INT 75 - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up)
  1898.    redirected to INT 02 by the BIOS, for compatibility with the PC
  1899. Notes:    may be masked by setting bit 5 on I/O port A1h
  1900.     not all clones wire the coprocessor to generate this IRQ; some systems
  1901.       generate an NMI (see INT 02) or assert the -ERROR pin on the CPU
  1902.       (see INT 10"COPROCESSOR")
  1903.     under DESQview, only the INT 15h vector and BASIC segment address (the
  1904.       word at 0000h:0510h) may be assumed to be valid for the handler's
  1905.       process
  1906. SeeAlso: INT 10"COPROCESSOR",INT 5D
  1907. --------H-76---------------------------------
  1908. INT 76 - IRQ14 - HARD DISK CONTROLLER (AT and later)
  1909. Note:    may be masked by setting bit 6 on I/O port A1h
  1910. SeeAlso: INT 0E"IRQ6",INT 5E
  1911. --------H-77---------------------------------
  1912. INT 77 - IRQ15 - RESERVED (AT,PS)
  1913. Note:    may be masked by setting bit 7 on I/O port A1h
  1914. SeeAlso: INT 5F
  1915. --------H-77---------------------------------
  1916. INT 77 - IRQ15 - POWER CONSERVATION (Compaq SLT/286)
  1917. Note:    may be masked by setting bit 7 on I/O port A1h
  1918. SeeAlso: INT 15/AX=4600h,INT 5F
  1919. --------E-78---------------------------------
  1920. INT 78 - UofSalford DBOS DOS extender - API
  1921.     AH = function
  1922.         00h (PB) display 32-bit memory specified by command argument
  1923.         01h (PT) display 32-bit instruction(s) specified by command arg
  1924.         02h specify offset to subsequent PB and PT commands
  1925.         03h switch to protected mode
  1926.         DWORD following INT instruction point to map; protected-mode
  1927.             entry point is immediately following the DWORD
  1928.         Return: never
  1929.         Note:    if bit 31 of the map address is set, only a stub was
  1930.               loaded by DOS and DBOS will load the entire program
  1931.         04h specify that subsequent load (AH=03h) should leave program in
  1932.         memory
  1933.         05h release program from memory
  1934.         06h set break point at address and option count from commandline
  1935.         07h resume program execution
  1936.         08h single-step program
  1937.         09h set read/write breakpoint using 386 debug registers
  1938.         0Ah set write breakpoint using 386 debug register
  1939.         0Bh set memory byte to new value
  1940.         0Ch display CPU registers
  1941.         0Dh run until specified program address reached
  1942.         0Fh print trace from program map
  1943.         10h specify an offset using a map symbol
  1944.         14h print memory without any offset
  1945.         18h switch DBOS into/out of test mode (ON/OFF commandline args)
  1946.         1Dh get address of real/protected-mode communication buffer
  1947.         Return: ES:BP -> comm buffer
  1948.         1Eh set real-mode memory size (specify how much real-mode memory
  1949.           to leave free when running FTN77 programs)
  1950.         22h uninstall DBOS
  1951.         24h force DBOS to emulate coprocessor instructions
  1952.         26h set named DBOS switches from commandline
  1953.         27h reset named DBOS switched from commandline
  1954.         2Ah set list of dynamic link libraries to contents of commandline
  1955.         file
  1956.         35h specify that subsequent load (AH=03h) should stop at first
  1957.         instruction
  1958. Return: ???
  1959. Notes:    DBOS supports functions 00h through 50h; many of these functions
  1960.       provide a low-level debugging interface
  1961.     command arguments are read from the calling program's PSP
  1962. SeeAlso: INT 79"DBOS"
  1963. Index:    uninstall;DBOS DOS extender
  1964. --------E-78---------------------------------
  1965. INT 78 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ0
  1966. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  1967.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  1968. Note:    this vector is overwritten when GO32 starts but is not restored by
  1969.       early versions of the extender
  1970. SeeAlso: INT 08,INT 10/AH=FFh"GO32",INT 79"GO32"
  1971. --------A-78---------------------------------
  1972. INT 78 R - AutoCAD Device Interface - PLOTTER - SEND COMMAND
  1973.     AX = function
  1974.         0001h begin plot
  1975.         BX = file level
  1976.             0000h ASCII file
  1977.             0001h binary file
  1978.             0002h AutoCAD DXB file
  1979.             0003h installed ADI driver
  1980.         0002h end plot (close plotter)
  1981.         0003h move (pen up)
  1982.         BX = new X position
  1983.         CX = new Y position
  1984.         0004h move (pen down)
  1985.         BX = new X position
  1986.         CX = new Y position
  1987.         0005h select pen
  1988.         BX = pen number
  1989.         0006h select drawing speed
  1990.         BX = drawing speed N
  1991.         0007h select line style
  1992.         BX = line style N
  1993.         0008h raise pen
  1994.         0009h abort plot
  1995. Return: AX = 0000h (may be used for driver status in future releases)
  1996. SeeAlso: INT 79"AutoCAD",INT 7A/AX=0001h"AutoCAD",INT 7B/AX=8001h"AutoCAD"
  1997. --------d-78---------------------------------
  1998. INT 78 - ADP-60 IDE controller - ORIGINAL INT 13
  1999. SeeAlso: INT 79"ADP-60"
  2000. --------d-7800-------------------------------
  2001. INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT
  2002.     AH = 00h
  2003.     DX = interface board I/O port
  2004. Return: CF set on error
  2005.         AL = error code (see below)
  2006. Note:    if this routine is not called, the port is the driver's default
  2007.       (usually 0280h or 0300h)
  2008.     an installation check is performed by TARGA.DEV upon initialization
  2009.       by checking for the string "SCSI" at offset 03h into the interrupt
  2010.       handler
  2011. SeeAlso: AH=01h,AH=02h
  2012. Index:    installation check;TARGA.DEV
  2013.  
  2014. Values for error code:
  2015.  00h    illegal command given to SCSI code
  2016.  01h    invalid I/O port specified (must be from 100H to 3F8H, and must be on
  2017.       an 8-port boundary)
  2018.  02h    invalid DMA channel specified (must be from 1 to 3)
  2019.  03h    invalid SCSI board number specified (must be from 0 to 7)
  2020.  04h    error from data register test during self-test
  2021.  05h    SCSI input signals not all 0 when SCSI RST activated
  2022.  06h    SCSI input signals not all 0 before selecting a SCSI device
  2023.  07h    BSY signal is active; SCSI bus is busy
  2024.  08h    SCSI board not selected, BSY signal did not come on in response to
  2025.       raising SEL
  2026.  09h    time-out waiting for status state, signifying end of DMA transfer
  2027. --------d-7801-------------------------------
  2028. INT 78 - TARGA.DEV - GET I/O PORT
  2029.     AH = 01h
  2030. Return: DX = current interface board I/O port
  2031. SeeAlso: AH=00h,AH=03h"TARGA"
  2032. --------d-7802-------------------------------
  2033. INT 78 - TARGA.DEV - SET DMA CHANNEL
  2034.     AH = 02h
  2035.     AL = interface board DMA channel
  2036. Return: CF set on error
  2037.     AL = error code (see AH=00h)
  2038. Note:    if this routine is not called, the DMA channel is the driver's default
  2039.       (usually 3)
  2040. SeeAlso: AH=00h,AH=03h"TARGA"
  2041. --------d-7803-------------------------------
  2042. INT 78 - TARGA.DEV - GET DMA CHANNEL
  2043.     AH = 03h
  2044. Return: AL = current interface board DMA channel
  2045. SeeAlso: AH=01h,AH=02h
  2046. --------d-7804-------------------------------
  2047. INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER
  2048.     AH = 04h
  2049.     AL = SCSI device number
  2050. Return: CF set on error
  2051.     AL = error code (see AH=00h)
  2052. Note:    if this routine is not called, the device number used is the driver's
  2053.       default (usually 0)
  2054. SeeAlso: AH=02h,AH=05h
  2055. --------d-7805-------------------------------
  2056. INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER
  2057.     AH = 05h
  2058. Return: AL = current SCSI device number
  2059. SeeAlso: AH=03h"TARGA",AH=04h
  2060. --------d-7806-------------------------------
  2061. INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE
  2062.     AH = 06h
  2063.     AL = 00h clear early return mode
  2064.        = 01h set early return mode
  2065. Note:    if early return mode is set then SCSI will return with no errors
  2066.       when the last DMA transfer is started in a call with AH=13h or AH=14h
  2067.     if this routine is not called, early return mode is cleared
  2068. SeeAlso: AH=13h,AH=14h,AH=15h
  2069. --------d-7808-------------------------------
  2070. INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST
  2071.     AH = 08h
  2072. Return: CF set on error
  2073.     AL = error code (see AH=00h)
  2074. Note:    the SCSI bus is also reset
  2075. SeeAlso: AH=09h
  2076. --------d-7809-------------------------------
  2077. INT 78 - TARGA.DEV - RESET SCSI BUS
  2078.     AH = 09h
  2079. Return: AL = error code if carry set (see AH=00h)
  2080. SeeAlso: AH=08h
  2081. --------d-7810-------------------------------
  2082. INT 78 - TARGA.DEV - SEND SCSI COMMAND
  2083.     AH = 10h
  2084.     DS:SI -> command bytes
  2085. Return: AH = SCSI status byte
  2086.     CF clear if successful
  2087.         AL = SCSI message byte
  2088.     CF set on error
  2089.         AL = error code (see AH=00h)
  2090. SeeAlso: AH=11h,INT 21/AX=4403h"ST-01"
  2091.  
  2092. Format of SCSI Command:
  2093. Offset    Size    Description
  2094.  00h    BYTE    length of command
  2095.  01h    ???    command bytes
  2096. --------d-7811-------------------------------
  2097. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O)
  2098.     AH = 11h
  2099.     DS:SI -> command bytes
  2100.     ES:BX -> data storage area
  2101.     CX = number of data bytes to transfer
  2102. Return: AH = SCSI status byte
  2103.     CF clear if successful
  2104.         AL = SCSI message byte
  2105.     CF set on error
  2106.         AL = error code (see AH=00h)
  2107. Note:    this command receives data internally one byte at a time
  2108. SeeAlso: AH=10h,AH=13h
  2109.  
  2110. Format of SCSI Command:
  2111. Offset    Size    Description
  2112.  00h    BYTE    length of command
  2113.  01h    ???    command bytes
  2114. --------d-7812-------------------------------
  2115. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O)
  2116.     AH = 12h
  2117.     DS:SI -> command bytes
  2118.     ES:BX -> data storage area
  2119.     CX = number of data bytes to transfer
  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. Note:    this command sends data internally one byte at a time
  2126. SeeAlso: AH=14h
  2127.  
  2128. Format of SCSI Command:
  2129. Offset    Size    Description
  2130.  00h    BYTE    length of command
  2131.  01h    ???    command bytes
  2132. --------d-7813-------------------------------
  2133. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA)
  2134.     AH = 13h
  2135.     DS:SI -> command bytes
  2136.     ES:BX -> data storage area
  2137.     DX:CX = number of data bytes to transfer
  2138. Return: AH = SCSI status byte (if early return mode is clear)
  2139.     CF clear if successful
  2140.         AL = SCSI message byte (if early return mode is clear)
  2141.     CF set on error
  2142.         AL = error code (see AH=00h)
  2143. Note:    this command receives data using DMA
  2144. SeeAlso: AH=11h,AH=12h
  2145.  
  2146. Format of SCSI Command:
  2147. Offset    Size    Description
  2148.  00h    BYTE    length of command
  2149.  01h    ???    command bytes
  2150. --------d-7814-------------------------------
  2151. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA)
  2152.     AH = 14h
  2153.     DS:SI -> command bytes
  2154.     ES:BX -> data storage area
  2155.     DX:CX = number of data bytes to transfer
  2156. Return: AH = SCSI status byte (if early return mode is clear)
  2157.     CF clear if successful
  2158.         AL = SCSI message byte (if early return mode is clear)
  2159.     CF set on error
  2160.         AL = error code (see AH=00h)
  2161. Note:    this command sends data using DMA
  2162. SeeAlso: AH=12h,AH=13h
  2163.  
  2164. Format of SCSI Command:
  2165. Offset    Size    Description
  2166.  00h    BYTE    length of command
  2167.  01h    ???    command bytes
  2168. --------d-7815-------------------------------
  2169. INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA)
  2170.     AH = 15h
  2171. Return: AH = SCSI status byte
  2172.     CF clear if successful
  2173.         AL = SCSI message byte
  2174.     CF set on error
  2175.         AL = error code (see AH=00h)
  2176. Note:    if AH=06h was previously called to set the early return mode, this
  2177.       function finishes a command AH=13h or AH=14h which returned before
  2178.       the last DMA transfer was finished
  2179. SeeAlso: AH=06h,AH=13h,AH=14h
  2180. --------V-79---------------------------------
  2181. INT 79 - AVATAR.SYS - FAST GET KEYSTROKE
  2182. Return: CF set if no keystroke available
  2183.         AX = FFFFh
  2184.     CF clear if key pressed
  2185.         AX = keystroke
  2186. Program: AVATAR.SYS is a CON driver by George Adam Stanislav which interprets
  2187.       AVATAR command codes just as ANSI.SYS interprets ANSI commands
  2188. Note:    if a keystroke is available, it is removed from the keyboard buffer
  2189.       before being returned
  2190. SeeAlso: INT 29
  2191. --------E-79---------------------------------
  2192. INT 79 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ1
  2193. Note:    this vector is overwritten when GO32 starts but is not restored by
  2194.       early versions of the extender
  2195. SeeAlso: INT 09,INT 78"GO32",INT 7A"GO32"
  2196. --------d-79---------------------------------
  2197. INT 79 U - ADP-60 IDE adapter - ???
  2198. SeeAlso: INT 78"ADP-60"
  2199. --------E-79---------------------------------
  2200. INT 79 - DBOS DOS Extender
  2201.     details not available
  2202. Desc:    this interrupt is used by an MS Windows virtual device driver with
  2203.       which the DBOS extender communicates when run inside a Windows
  2204.       Enhanced Mode DOS box
  2205. SeeAlso: INT 78"DBOS"
  2206. --------A-790001-----------------------------
  2207. INT 79 R - AutoCAD Device Interface - DIGITIZER - INITIALIZE
  2208.     AX = 0001h
  2209.     BX = interface level (0001h)
  2210. Return: AX = status (0000h initialization failed, 0001h init successful)
  2211.     BX = digitizer type
  2212.         0000h relative pointing device (mouse, etc.)
  2213.         0001h digitizing tablet
  2214.     CX = digitizer dataflow type
  2215.         0000h continuous
  2216.         0001h pauses between packets
  2217. SeeAlso: AX=0002h,AX=0003h,INT 7A/AX=0001h"AutoCAD"
  2218. --------A-790002-----------------------------
  2219. INT 79 R - AutoCAD Device Interface - DIGITIZER - TERMINATE
  2220.     AX = 0002h
  2221. SeeAlso: AX=0001h,AX=0003h
  2222. --------A-790003-----------------------------
  2223. INT 79 R - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS
  2224.     AX = 0003h
  2225. Return: AX = status
  2226.         0000h nothing
  2227.         0002h tracking point (no button pressed)
  2228.         BX = X coordinate
  2229.         CX = Y coordinate
  2230.         0003h picked point (button 0,A,B,C,D pressed)
  2231.         BX = X coordinate
  2232.         CX = Y coordinate
  2233.         0004h button pick
  2234.             BX = button number
  2235.         0005h button and coordinates
  2236.         BX = button number
  2237.         CX = X coordinate
  2238.         DX = Y coordinate
  2239. SeeAlso: AX=0001h,AX=0002h
  2240. --------N-7A---------------------------------
  2241. INT 7A U - Topware Network Operating System - ???
  2242.     AL = ???
  2243.     ???
  2244. Return: ???
  2245. SeeAlso: INT 21/AH=FFh"Topware",INT 2F/AX=FF00h
  2246. --------N-7A---------------------------------
  2247. INT 7A - X.PC Packet software interface
  2248.     ES:BX -> parameter block
  2249. SeeAlso: INT 60/AX=01FFh
  2250. --------E-7A---------------------------------
  2251. INT 7A - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ2
  2252. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  2253.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  2254. Note:    this vector is overwritten when GO32 starts but is not restored by
  2255.       early versions of the extender
  2256. SeeAlso: INT 0A,INT 79"GO32",INT 7B"GO32"
  2257. --------P-7A---------------------------------
  2258. INT 7A O - PRINDIR - API (moved to INT 7C)
  2259. SeeAlso: INT 7C"PRINDIR"
  2260. --------N-7A---------------------------------
  2261. INT 7A - Novell NetWare - LOW-LEVEL API - Notes
  2262. Note:    this interrupt is used for IPX/SPX access in NetWare versions through
  2263.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  2264.       entry point even though INT 7A still exists.    For both INT 7A and
  2265.       the FAR entry point, BX contains the function number; IPX is
  2266.       sometimes called internally with BX bit 15 set.
  2267. SeeAlso: INT 2F/AX=7A00h,INT 64"Novell",INT 7A/BX=0000h
  2268. --------N-7A----BX0000-----------------------
  2269. INT 7A - Novell NetWare - IPX Driver - OPEN SOCKET
  2270.     BX = 0000h
  2271.     AL = socket longevity
  2272.         00h open until close or terminate
  2273.         FFh open until close
  2274.     DX = socket number (high byte in DL)
  2275.         0000h dynamic allocation
  2276.         else  socket to open (see below)
  2277. Return: AL = return code
  2278.         00h success
  2279.         DX = socket number
  2280.         FEh socket table full
  2281.         FFh socket already open
  2282. Notes:    TSRs which need to use sockets should set AL to FFh, non-resident
  2283.       programs should normally use AL=00h
  2284.     IPX can be configured to support up to 150 open sockets on a
  2285.       workstation, and defaults to 20
  2286.     this function is supported by Advanced NetWare 1.02+
  2287. SeeAlso: BX=0001h,BX=0004h
  2288.  
  2289. Values for socket number:
  2290.  0451h    File Service (NetWare Core Protocol)
  2291.  0452h    Service Advertising Protocol
  2292.  0453h    Routing Information Packet
  2293.  0455h    NetBIOS Packet
  2294.  0456h    diagnostics
  2295.  0457h    server serial numbers (labeled "Copy Protection" by Lanalyzer)
  2296.  4000h-7FFFh used for dynamic allocation
  2297.  4444h    Brightwork Development's SiteLock server
  2298.  5555h    Brightwork Development's SiteLock client (workstation)
  2299.  8000h-FFFFh assigned by Novell
  2300. Note:    SiteLock is an application metering product using IPX to communicate
  2301.       between the application and the license server
  2302. --------N-7A----BX0001-----------------------
  2303. INT 7A - Novell NetWare - IPX Driver - CLOSE SOCKET
  2304.     BX = 0001h
  2305.     DX = socket number (high byte in DL)
  2306. Notes:    also cancels events set by any Event Control Blocks for the socket
  2307.     the program must close all open sockets before terminating
  2308.     this function is supported by Advanced NetWare 1.02+
  2309. SeeAlso: BX=0000h
  2310. --------N-7A----BX0002-----------------------
  2311. INT 7A - Novell NetWare - IPX Driver - GET LOCAL TARGET
  2312.     BX = 0002h
  2313.     ES:SI -> target internetwork address (see INT 7A/BX=000Bh)
  2314.     ES:DI -> 6-byte buffer for local target
  2315. Return: AL = return code
  2316.         00h success
  2317.            CX = expected one-way transfer time (clock ticks) for a 576-byte
  2318.             packet
  2319.            ES:DI -> local target
  2320.         FAh unsuccessful (no path to destination)
  2321. Notes:    the internetwork address consists of a 4-byte network address followed
  2322.       by a 6-byte node address.  The local target is only a 6-byte node
  2323.       address.  If the target is in the same network, the local target is
  2324.       just the node address of target; otherwise, the local target is the
  2325.       node address of the bridge that leads to the target.
  2326.     this function may be called from inside IPX and AES Event Service
  2327.       Routines, but not from other interrupt handlers
  2328.     this function is supported by Advanced NetWare 1.02+
  2329. SeeAlso: BX=0009h
  2330. --------N-7A----BX0003-----------------------
  2331. INT 7A - Novell NetWare - IPX Driver - SEND PACKET
  2332.     BX = 0003h
  2333.     ES:SI -> Event Control Block (see below)
  2334. Notes:    returns immediately; IPX attempts to send the packet in the background
  2335.     this function is supported by Advanced NetWare 1.02+
  2336.     this function is nearly identical to BX=000Fh, except that it always
  2337.       copies the source address into the IPX header assumed to be at the
  2338.       beginning of the first fragment
  2339. SeeAlso: BX=0004h,BX=000Fh,INT 21/AH=EEh"Novell"
  2340.  
  2341. Format of Event Control Block:
  2342. Offset    Size    Description
  2343.  00h    DWORD    Link
  2344.  04h    DWORD    -> Event Service Routine (00000000h if none)
  2345.  08h    BYTE    in use flag (see below)
  2346.  09h    BYTE    completion code (see below)
  2347.  0Ah    WORD    (big-endian) socket number (see INT 7A/BX=0000h)
  2348.  0Ch  4 BYTEs    IPX workspace
  2349.  10h 12 BYTEs    driver workspace
  2350.  1Ch  6 BYTEs    immediate local node address
  2351.  22h    WORD    fragment count
  2352.  24h    var    fragment descriptors
  2353.         Offset    Size    Description
  2354.          00h    DWORD    -> fragment data
  2355.          04h    WORD    size of fragment in bytes.
  2356. Notes:    ESR is a far procedure that is called when the ECB has been handled.
  2357.       On call, the in use flag is zero if the ECB has been handled,
  2358.       non-zero otherwise. If the flag is zero, the completion code holds
  2359.       the result of the event.
  2360.     the first fragment should start with an IPX header
  2361.     all fragments are concatenated and sent in one piece
  2362.     node address FFh FFh FFh FFh FFh FFh broadcasts to all nodes
  2363.  
  2364. Format of AES-ECB:
  2365. Offset    Size    Description
  2366.  00h    DWORD    Link
  2367.  04h    DWORD    ESR address
  2368.  08h    BYTE    in use flag (see below)
  2369.  09h  5 BYTEs    AES workspace
  2370.  
  2371. Values for ECB in use flag:
  2372.  00h    available
  2373.  E0h    AES temporary
  2374.  F6h    \ special IPX/SPX processing for v3.02+
  2375.  F7h    /
  2376.  F8h    IPX in critical section
  2377.  F9h    SPX listening
  2378.  FAh    processing
  2379.  FBh    holding
  2380.  FCh    AES waiting
  2381.  FDh    AES couting down delay time
  2382.  FEh    awaiting packet reception
  2383.  FFh    sending packet
  2384.  
  2385. Values for ECB completion code:
  2386.  00h    success
  2387.  ECh    remote terminated connection without acknowledging packet
  2388.  EDh    abnormal connection termination
  2389.  EEh    invalid connection ID
  2390.  EFh    SPX connection table full
  2391.  F9h    event should not be cancelled
  2392.  FAh    cannot establish connection with specified destination
  2393.  FCh    cancelled
  2394.  FDh    malformed packet
  2395.  FEh    packet undeliverable
  2396.  FFh    physical error
  2397.  
  2398. Event Service Routine called with:
  2399.     AL = caller's identity (00h = AES, FFh = IPX)
  2400.     ES:SI -> event control block
  2401.     interrupts disabled
  2402.  
  2403. Format of IPX header:
  2404. Offset    Size    Description
  2405.  00h    WORD    (big-endian) checksum
  2406.  02h    WORD    (big-endian) length in bytes of total packet
  2407.  04h    BYTE    transport control
  2408.  05h    BYTE    packet type (see below)
  2409.  06h 10 BYTEs    destination internetwork address
  2410.  10h    WORD    (big-endian) destination socket
  2411.  12h 10 BYTEs    source internetwork address
  2412.  1Ch    WORD    (big-endian) source socket
  2413.  
  2414. Values for IPX packet type:
  2415.  00h    unknown packet type
  2416.  01h    routing information packet
  2417.  02h    echo packet
  2418.  03h    error packet
  2419.  04h    packet exchange packet (always use this one)
  2420.  05h    SPX packet
  2421.  11h    NetWare Core Protocol
  2422.  14h    Propagated Packet (for NetWare), NetBIOS name packet
  2423.  15h-1Eh experimental protocols
  2424.  
  2425. Format of Service Advertising Protocol Service Query Packet:
  2426. Offset    Size    Description
  2427.  00h 30 BYTEs    IPX header
  2428.  1Eh    WORD    (big-endian) query type
  2429.         0001h general find service
  2430.         0003h find nearest server
  2431.  20h    WORD    (big-endian) server type (see INT 21/AH=E3h"NetWare")
  2432.  
  2433. Format of Service Advertising Protocol Server Identification Packet:
  2434. Offset    Size    Description
  2435.  00h 30 BYTEs    IPX header
  2436.  1Eh    WORD    (big-endian) response type
  2437.         0002h general service
  2438.         0004h nearest service
  2439.  20h 64N BYTEs    server entries (1-7) (see below)
  2440.  
  2441. Format of SAP server entry:
  2442. Offset    Size    Description
  2443.  00h    WORD    (big-endian) server type (see INT 21/AH=E3h"NetWare")
  2444.  02h 48 BYTEs    ASCIZ server name
  2445.  32h  2 WORDs    (big-endian) network number
  2446.  34h  3 WORDs    (big-endian) node number
  2447.  3Ch    WORD    (big-endian) socket number
  2448.  3Eh    WORD    (big-endian) number of hops between caller and server
  2449.  
  2450. Format of Routing Information packet:
  2451. Offset    Size    Description
  2452.  00h 30 BYTEs    IPX header
  2453.  1Eh    WORD    operation (0001h request, 0002h response)
  2454.  20h 8N BYTEs    network entries (1-50) (see below)
  2455.  
  2456. Format of RIP network entry:
  2457. Offset    Size    Description
  2458.  00h    DWORD    network number (FFFFFFFFh = general request)
  2459.  04h    WORD    (response) number of hops
  2460.  06h    WORD    (response) number of clock ticks to reach destination
  2461. --------N-7A----BX0004-----------------------
  2462. INT 7A - Novell NetWare - IPX Driver - LISTEN FOR PACKET
  2463.     BX = 0004h
  2464.     ES:SI -> Event Control Block (see BX=0003h)
  2465. Return: AL = status
  2466.         00h successful
  2467.         FFh no listening socket for packet
  2468. Desc:    this function provides IPX with an ECB for receiving an IPX packet, but
  2469.       does not wait for a packet to arrive
  2470. Notes:    the application must open a socket and initialize the ECB's ESR
  2471.       address, socket number, fragment count, and fragment descriptor
  2472.       fields before invoking this function
  2473.     there is no limit on the number of ECBs which may simultaneously be
  2474.       listening on a socket
  2475.     this function is supported by Advanced NetWare 1.02+
  2476. SeeAlso: BX=0000h,BX=0003h
  2477. --------N-7A----BX0005-----------------------
  2478. INT 7A - Novell NetWare - IPX Driver - SCHEDULE IPX EVENT
  2479.     BX = 0005h
  2480.     AX = delay time in clock ticks
  2481.     ES:SI -> Event Control Block (see BX=0003h)
  2482. Note:    this function is supported by Advanced NetWare 1.02+
  2483. SeeAlso: BX=0006h,BX=0007h,BX=0008h
  2484. --------N-7A----BX0006-----------------------
  2485. INT 7A - Novell NetWare - IPX Driver - CANCEL EVENT
  2486.     BX = 0006h
  2487.     ES:SI -> Event Control Block (see BX=0003h)
  2488. Return: AL = return code
  2489.         00h success
  2490.         F9h event in use
  2491.         FCh event cancelled
  2492.         FFh unsuccessful, event not in use, or unrecognized ECB flag
  2493. Notes:    cannot cancel packets which the node's driver has already sent
  2494.     this function is supported by Advanced NetWare 1.02+
  2495. SeeAlso: BX=0005h
  2496. --------N-7A----BX0007-----------------------
  2497. INT 7A - Novell NetWare - IPX Driver - SCHEDULE SPECIAL EVENT
  2498.     BX = 0007h
  2499.     AX = delay time
  2500.     ES:SI -> Event Control Block (see BX=0003h)
  2501. Note:    this function is supported by Advanced NetWare 1.02+
  2502. SeeAlso: BX=0006h
  2503. --------N-7A----BX0008-----------------------
  2504. INT 7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER
  2505.     BX = 0008h
  2506. Return: AX = interval marker in clock ticks
  2507. Notes:    may be used to measure the time elapsed between two events, up to one
  2508.       hour
  2509.     this function is supported by Advanced NetWare 1.02+
  2510. SeeAlso: BX=0005h
  2511. --------N-7A----BX0009-----------------------
  2512. INT 7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS
  2513.     BX = 0009h
  2514.     ES:SI -> buffer for own internetwork address (see below)
  2515. Return: ES:SI buffer filled
  2516.     SI destroyed
  2517. Note:    this function is supported by Advanced NetWare 1.02+
  2518. SeeAlso: BX=0002h,BX=000Bh
  2519.  
  2520. Format of internetwork address:
  2521. Offset    Size    Description
  2522.  00h  4 BYTEs    (big-endian) network number
  2523.  04h  6 BYTEs    (big-endian) node number within network
  2524. --------N-7A----BX000A-----------------------
  2525. INT 7A - Novell NetWare - IPX Driver - RELINQUISH CONTROL
  2526.     BX = 000Ah
  2527. Desc:    this call indicates that the application is idle and permits the IPX
  2528.       driver to do some work
  2529. Note:    this function is supported by Advanced NetWare 1.02+
  2530. SeeAlso: INT 15/AX=1000h,INT 21/AH=89h,INT 2F/AX=1680h
  2531. --------N-7A----BX000B-----------------------
  2532. INT 7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET
  2533.     BX = 000Bh
  2534.     ES:SI -> internetwork address (see below)
  2535. Notes:    this function permits the network software on the remote machine to
  2536.       remove any virtual connection with the calling machine
  2537.     only use in point-to-point networks
  2538.     should never be called from within an Event Service Routine
  2539.     this function is supported by Advanced NetWare 1.02+
  2540. SeeAlso: BX=0002h,BX=0009h
  2541.  
  2542. Format of internetwork address:
  2543. Offset    Size    Description
  2544.  00h  4 BYTEs    (big-endian) destination network
  2545.  04h  6 BYTEs    (big-endian) destination node
  2546.  0Ah  2 BYTEs    (big-endian) destination socket
  2547. --------N-7A----BX000C-----------------------
  2548. INT 7A U - Novell NetWare - IPX Driver - internal - INITIALIZE NETWORK ADDRESS
  2549.     BX = 000Ch
  2550.     CX:DX = global network address (see INT 7A/BX=0002h)
  2551.     ES:DI -> "OSINCRITICALSECTION" flag
  2552.     DS:SI -> current mode for socket
  2553. Note:    the address cannot be changed once it has been initialized
  2554. --------N-7A----BX000D-----------------------
  2555. INT 7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE
  2556.     BX = 000Dh
  2557. Return: AX = maximum packet size
  2558.     CX = retry count
  2559. SeeAlso: BX=001Ah
  2560. --------N-7A----BX000E-----------------------
  2561. INT 7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS
  2562.     BX = 000Eh
  2563. Return: nothing
  2564. Note:    this function terminates all sockets opened with the current mode; this
  2565.       may be intended for future enhancements as the socket mode never
  2566.       changes in v2.15
  2567. --------N-7A----BX000F-----------------------
  2568. INT 7A U - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET
  2569.     BX = 000Fh
  2570.     ES:SI -> Event Control Block (see BX=0003h)
  2571. Note:    nearly identical to function 0003h, but does not copy address into
  2572.       the first fragment
  2573. SeeAlso: BX=0003h
  2574. --------N-7A----BX0010-----------------------
  2575. INT 7A - Novell NetWare - SPX Driver - INSTALLATION CHECK
  2576.     BX = 0010h
  2577.     AL = 00h
  2578. Return: AL = FFh if SPX loaded
  2579.         BH = SPX major version
  2580.         BL = SPX minor version
  2581.         CX = maximum SPX connections
  2582.         DX = SPX connections available
  2583. Note:    this function is supported by Advanced NetWare 2.1+
  2584.     this interrupt is used for IPX/SPX access in NetWare versions through
  2585.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  2586.       entry point even though INT 7A still exists.    For both INT 7A and
  2587.       the FAR entry point, BX contains the function number; IPX is
  2588.       sometimes called internally with BX bit 15 set.
  2589. SeeAlso: BX=0015h
  2590. --------N-7A----BX0011-----------------------
  2591. INT 7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION
  2592.     BX = 0011h
  2593.     AL = retry count
  2594.     AH = watchdog flag
  2595.     ES:SI -> Event Control Block (see BX=0003h)
  2596. Return: AL = status
  2597.         00h attempting to contact destination socket
  2598.         EFh local connection table full
  2599.         FDh buffer size not 42 or fragment count not 1
  2600.         FFh sending socket not open
  2601.     DX = assigned connection ID number
  2602. Desc:    attempt to establish a connection with a listening socket
  2603. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  2604.       that NetWare can perform its internal packet exchanges
  2605.     the first fragment should start with a SPX header.  Fill in all
  2606.       destination addresses.
  2607.     this function is supported by Advanced NetWare 2.1+
  2608. SeeAlso: BX=0000h,BX=0012h,BX=0013h,BX=0014h,BX=0015h
  2609.  
  2610. Format of SPX header:
  2611. Offset    Size    Description
  2612.  00h    WORD    (big-endian) checksum
  2613.  02h    WORD    (big-endian) length in bytes of total packet
  2614.  04h    BYTE    transport control
  2615.  05h    BYTE    packet type (see INT 7A/BX=0003h)
  2616.  06h 10 BYTEs    destination internet address
  2617.  10h    WORD    (big-endian) destination socket
  2618.  12h 10 BYTEs    source internet address
  2619.  1Ch    WORD    (big-endian) source socket
  2620.  1Eh    BYTE    connection control (see below)
  2621.  1Fh    BYTE    datastream type
  2622.         FEh terminate connection request packet
  2623.         FFh terminate connection acknowledgement packet
  2624.         other user-defined, ignored by SPX
  2625.  20h    WORD    (big-endian) source connection ID
  2626.  22h    WORD    (big-endian) destination connection ID
  2627.  24h    WORD    (big-endian) sequence number
  2628.  26h    WORD    (big-endian) acknowledge number
  2629.  28h    WORD    (big-endian) allocation number
  2630.  
  2631. Bitfield for connection control:
  2632.  bits 3-0 unused???
  2633.  bit 4    end of message
  2634.  bit 5    reserved
  2635.  bit 6    acknowledgement required
  2636.  bit 7    system packet
  2637. --------N-7A----BX0012-----------------------
  2638. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX CONNECTION
  2639.     BX = 0012h
  2640.     AH = watchdog flag
  2641.         00h disabled
  2642.         01h enabled
  2643.     AL = retry count (00h = default)
  2644.     ES:SI -> Event Control Block (see BX=0003h)
  2645. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  2646.       that NetWare can perform its internal packet exchanges
  2647.     this function is supported by Advanced NetWare 2.1+
  2648. SeeAlso: BX=0011h,BX=0013h,BX=0014h
  2649. --------N-7A----BX0013-----------------------
  2650. INT 7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION
  2651.     BX = 0013h
  2652.     DX = connection ID to terminate
  2653.     ES:SI -> Event Control Block (see BX=0003h)
  2654. Note:    this function is supported by Advanced NetWare 2.1+
  2655. SeeAlso: BX=0011h,BX=0012h,BX=0014h
  2656. --------N-7A----BX0014-----------------------
  2657. INT 7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION
  2658.     BX = 0014h
  2659.     DX = connection ID to terminate
  2660. Notes:    this function is supported by Advanced NetWare 2.1+
  2661.     this function does not tell the other side that the connection has been
  2662.       terminated
  2663.     also aborts any outstanding Establish Connection, Terminate Connection,
  2664.       and Send Sequenced Packet commands
  2665. SeeAlso: BX=0011h,BX=0013h
  2666. --------N-7A----BX0015-----------------------
  2667. INT 7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS
  2668.     BX = 0015h
  2669.     DX = connection ID
  2670.     ES:SI -> status buffer (see below)
  2671. Return: AL = return code
  2672.         00h connection still valid
  2673.         ES:SI -> status buffer filled
  2674.         EEh no such connection
  2675. Note:    this function is supported by Advanced NetWare 2.1+
  2676. SeeAlso: BX=0010h,BX=0011h
  2677.  
  2678. Format of status buffer:
  2679. Offset    Size    Description
  2680.  00h    BYTE    connection state
  2681.         01h waiting to establish connection
  2682.         02h starting (attempting to create connection)
  2683.         03h connection established
  2684.         04h terminating
  2685.  01h    BYTE    watchdog flag
  2686.         bit 0: used internally by SPX
  2687.         bit 1: SPX watchdog is monitoring connection
  2688.         bits 2-7 used internally by SPX
  2689.  02h    WORD    (big-endian) source connection ID
  2690.  04h    WORD    (big-endian) destination connection ID
  2691.  06h    WORD    (big-endian) sequence number of next packet sent
  2692.  08h    WORD    (big-endian) acknowledge number, expected sequence number of
  2693.           next received packet
  2694.  0Ah    WORD    (big-endian) maximum sequence number remote SPX may send
  2695.           without ACK from local SPX
  2696.  0Ch    WORD    (big-endian) remote acknowledge number, next sequence number
  2697.           remote SPX expects to receive
  2698.  0Eh    WORD    (big-endian) remote allocation number, maximum sequence number
  2699.           local SPX may send
  2700.  10h    WORD    (big-endian) connection socket
  2701.  12h  6 BYTEs    immediate node address--bridge on local network to destination
  2702.  18h 10 BYTEs    destination internetwork address (see INT 7A/BX=000Bh)
  2703.  22h    WORD    (big-endian) retransmit count
  2704.  24h    WORD    (big-endian) estimated roundtrip delay
  2705.  26h    WORD    (big-endian) retransmitted packets
  2706.  28h    WORD    (big-endian) suppressed packets
  2707.  2Ah 12 BYTEs    ??? (v2.15)
  2708. --------N-7A----BX0016-----------------------
  2709. INT 7A - Novell NetWare - SPX Driver - SEND SPX PACKET
  2710.     BX = 0016h
  2711.     DX = connection ID
  2712.     ES:SI -> Event Control Block (see BX=0003h)
  2713. Notes:    this function is supported by Advanced NetWare 2.1+
  2714.     CX may need to be 0001h ???
  2715. SeeAlso: BX=0011h,BX=0017h
  2716. --------N-7A----BX0017-----------------------
  2717. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX PACKET
  2718.     BX = 0017h
  2719.     DX = connection ID (unused in v2.15)
  2720.     ES:SI -> Event Control Block (see BX=0003h)
  2721. Notes:    this function is supported by Advanced NetWare 2.1+
  2722.     CX may need to be 0001h ???
  2723. SeeAlso: BX=0011h,BX=0016h
  2724. --------N-7A----BX0018-----------------------
  2725. INT 7A U - Novell NetWare - IPX Driver - internal - ADD DIAGNOSTIC ELEMENT
  2726.     BX = 0018h
  2727.     ES:SI -> diagnostic element (see below) to be added to Diagnostic Queue
  2728. Note:    this function is supported on file servers only under v2.15; v3.02 also
  2729.       supports it on workstations
  2730. SeeAlso: BX=0019h
  2731.  
  2732. Format of diagnostic element:
  2733. Offset    Size    Description
  2734.  00h    DWORD    pointer to next diagnostic element
  2735.  04h    DWORD    pointer to function for ???
  2736.  08h    DWORD    pointer to function for ???
  2737. --------N-7A----BX0019-----------------------
  2738. INT 7A U - Novell NetWare - IPX Driver - internal - CANCEL DIAGNOSTIC ELEMENT
  2739.     BX = 0019h
  2740.     ES:SI -> diagnostic element (see BX=0018h) to be removed
  2741. Note:    this function is supported on file servers only under v2.15; v3.02 also
  2742.       supports it on workstations
  2743. SeeAlso: BX=0018h
  2744. --------N-7A----BX001A-----------------------
  2745. INT 7A U - Novell NetWare - IPX Driver - internal - GET DRIVER PACKT SIZE LIMIT
  2746.     BX = 001Ah
  2747. Return: AX = packet size with preamble
  2748.     CX = IPX retry count
  2749. Note:    this function is supported on file servers only under v2.15; v3.02 also
  2750.       supports it on workstations
  2751. SeeAlso: BX=000Dh
  2752. --------N-7A----BX001B-----------------------
  2753. INT 7A U - Novell NetWare - IPX Driver - INTERNAL
  2754.     BX = 001Bh
  2755.     ???
  2756. Return: ???
  2757. Note:    this function is supported on file servers only under v2.15; v3.02 also
  2758.       supports it on workstations
  2759. --------A-7A0001-----------------------------
  2760. INT 7A R - AutoCAD Device Interface - DISPLAY - INITIALIZE (INIT1)
  2761.     AX = 0001h
  2762.     BX = configuration
  2763.     CX = interface level (0001h)
  2764. Return: AX = status
  2765.         0000h initialization failed
  2766.         0001h pre-v4.0 driver initialized successfully
  2767.         0003h post-v3.1 driver initialized successfully (driver truncates
  2768.               excessivly long packets)
  2769.     BX = width of graphics area in pixels, or 0000h if using packet
  2770.               communication
  2771.     DX:CX -> packet-mode entry point
  2772. SeeAlso: AX=0001h,AX=0200h,AX=07D0h,INT 61/AX=0007h"OPTIMA",INT 78"AutoCAD"
  2773. SeeAlso: INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD",INT 7C"AutoShade"
  2774.  
  2775. Call packet-mode entry point with:
  2776. STACK:    DWORD    pointer to request packet
  2777.     WORD    length of packet
  2778.  
  2779. Format of request packet:
  2780. Offset    Size    Description
  2781.  00h    WORD    function number (00h-45h for Compaq VGADI41.EXE)
  2782. --------A-7A0200BX0000-----------------------
  2783. INT 7A R - AutoCAD Device Interface - RENDERING DEVICE - INITIALIZE (RDLINKUP)
  2784.     AX = 0200h
  2785.     BX = 0000h
  2786.     CX = interface level (0001h)
  2787. Return: BX = 0000h (driver uses packet communication)
  2788.     DX:CX -> packet-mode entry point (see AX=0001h"AutoCAD")
  2789. SeeAlso: AX=0001h"AutoCAD",INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD"
  2790. --------I-7A04-------------------------------
  2791. INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE
  2792.     AH = 04h
  2793.     ???
  2794. Return: ???
  2795. SeeAlso: AH=06h
  2796. --------I-7A06-------------------------------
  2797. INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE
  2798.     AH = 06h
  2799.     ???
  2800. Return: ???
  2801. SeeAlso: AH=04h
  2802. ----------7A07D0-----------------------------
  2803. INT 7A R - AutoCAD Device Interface - Compaq VGADI41.EXE - GET ENTRY POINT
  2804.     AX = 07D0h
  2805. Return: AX = ??? (0003h)
  2806.     BX = 0000h
  2807.     DX:CX -> ADI entry point (see AX=0001h)
  2808. SeeAlso: AX=0001h
  2809. --------I-7A09--BX8020-----------------------
  2810. INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES
  2811.     AH = 09h
  2812.     BX = 8020h (synchronous request)
  2813.     CX = 0000h
  2814.     DX = ID of session manager (SESSMGR)
  2815.     AL = service
  2816.         01h get session ID
  2817.         02h get session info
  2818.         04h dettach from session
  2819.         05h attach to session
  2820.         06h get list of windows available
  2821.         07h get environment of window
  2822.         08h get 'PIF' (program information file) info
  2823.         0Ah get base window ID
  2824.         0Bh get cursor info
  2825.     ES:DI -> control block
  2826. Return: ???
  2827. --------I-7A09--BX8020-----------------------
  2828. INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES
  2829.     AH = 09h
  2830.     BX = 8020h (synchronous request)
  2831.     CX = 0000h
  2832.     DX = ID of keyboard manager
  2833.     AL = service
  2834.         01h connect to keyboard
  2835.         02h disconnect from keyboard
  2836.         03h read from keyboard
  2837.         04h send keystroke to session
  2838.         05h disable input
  2839.         06h enable input
  2840.         07h update status code
  2841.     ES:DI -> control block
  2842. Return: ???
  2843. --------I-7A09--BX8020-----------------------
  2844. INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES
  2845.     AH = 09h
  2846.     BX = 8020h (synchronous request)
  2847.     CX = 00FFh
  2848.     DX = ID of window service controller (WSCTRL)
  2849.     AL = service
  2850.         01h connect to WS control
  2851.         02h disconnect from WS control
  2852.         03h add a window
  2853.         04h change window's position on screen
  2854.         05h change window's size
  2855.         06h change window's color
  2856.         07h change window's position in the presentation space
  2857.         08h hide/unhide toggle
  2858.         09h enlarge/reduce toggle
  2859.         0Ah change screen background color
  2860.         0Bh get window's position on screen
  2861.         0Ch get window's size
  2862.         0Dh get window's color
  2863.         0Eh get window's position in the presentation space
  2864.         0Fh determine whether hidden
  2865.         10h determine whether enlarged
  2866.         11h get background color
  2867.         12h get window names
  2868.         13h delete all windows from profile
  2869.         14h pick active window
  2870.         15h redraw screen
  2871.         16h redraw window
  2872.         17h delete a window from profile
  2873.         18h get active window
  2874.         19h get active screen
  2875.         1Ah get window data
  2876.         1Bh change window data
  2877.         1Ch select active screen
  2878.     ES:DI -> control block
  2879. Return: ???
  2880. --------I-7A09--BX8020-----------------------
  2881. INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES
  2882.     AH = 09h
  2883.     BX = 8020h
  2884.     CX = 00FFh
  2885.     DX = ID of PCPSM
  2886.     AL = service
  2887.         01h define presentation space
  2888.         02h delete presentation space
  2889.         03h display presentation space
  2890.         04h position cursor in presentation space
  2891.         05h change default presentation space
  2892.     ES:DI -> control block
  2893. Return: ???
  2894. --------I-7A09--BX8020-----------------------
  2895. INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION
  2896.     AH = 09h
  2897.     BX = 8020h
  2898.     CX = 00FFh
  2899.     DX = ID of 3270EML
  2900.     AL = service
  2901.         01h connect
  2902.         02h disconnect
  2903.     ES:DI -> control block
  2904. Return: ???
  2905. --------I-7A09--BX8020-----------------------
  2906. INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA
  2907.     AH = 09h
  2908.     BX = 8020h
  2909.     CX = 00FFh
  2910.     DX = ID of OIAM
  2911.     AL = service
  2912.         01h read Operator Information Area
  2913.         02h read OIA subset
  2914.     ES:DI -> control block
  2915. Return: ???
  2916. Note: the OIA is the 25th line on the Host session
  2917. --------I-7A09--BX8020-----------------------
  2918. INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA
  2919.     AH = 09h
  2920.     BX = 8020h
  2921.     CX = 00FFh
  2922.     DX = ID of XLATE
  2923.     AL = service
  2924.         01h translate from host characters to ASCII and vice versa
  2925.         (determined by control block byte 11)
  2926.     ES:DI -> control block
  2927. Return: ???
  2928. --------I-7A09--BX8020-----------------------
  2929. INT 7A - IBM 3270 Workstation Program API - COPY SERVICE
  2930.     AH = 09h
  2931.     BX = 8020h
  2932.     CX = 00FFh
  2933.     DX = ID of copy service
  2934.     AL = service
  2935.         01h copy string from one presentation space to another
  2936.         02h copy block from one presentation space to another
  2937.         03h connect to PC session for copy
  2938.         04h disconnect PC session from copy
  2939.     ES:DI -> control block
  2940. Return: ???
  2941. --------I-7A09--BX8020-----------------------
  2942. INT 7A - IBM 3270 Workstation Program API - Multi-DOS
  2943.     AH = 09h
  2944.     BX = 8020h
  2945.     CX = 00FFh
  2946.     ES:DI -> control block
  2947.     DX = ID of INDJQRY
  2948.         get environment size
  2949.        = ID of INDJASY
  2950.         request DOS functions from workstation
  2951.        = ID of MEMORY
  2952.         AL = function
  2953.             01h allocate memory
  2954.             02h deallocate memory
  2955.             03h modify allocated size
  2956. Return: ???
  2957. --------I-7A09-------------------------------
  2958. INT 7A - IBM 3270 Workstation Program API - HOST SERVICES
  2959.     AH = 09h
  2960.     BX = request type (4000h async, 8028h synchronous)
  2961.     CX = 0000h
  2962.     DX = ID of MFIC
  2963.     AL = service
  2964.        01h connect to host
  2965.        02h disconnect from host
  2966.        03h read DFT structured data from host
  2967.        04h write DFT structured data to host
  2968.        05h create a host buffer
  2969.     ES:DI -> control block
  2970. --------I-7A13-------------------------------
  2971. INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE
  2972.     AH = 13h
  2973.     ???
  2974. Return: ???
  2975. ----------7A7A-------------------------------
  2976. INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE
  2977.     AH = 7Ah
  2978.     ???
  2979. Return: AX = 0000h success
  2980.          000Eh undefined function code
  2981. Note:    this interface is normally on INT 7A but can be changed via device
  2982.       driver command line arguments
  2983. --------I-7A81-------------------------------
  2984. INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME
  2985.     AH = 81h
  2986.     ES:DI -> 8-char blank-padded gate name
  2987.         "SESSMGR ", "KEYBOARD", "WSCTRL     ", "MFIC    ", "PCPSM     ",
  2988.         "3270EML ", "COPY    ", "XLATE     ", "OIAM    ", "MEMORY     ",
  2989.         "INDJQRY ", or "INDJASY "
  2990. Return: DX = gate ID
  2991. --------I-7A83-------------------------------
  2992. INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS
  2993.     AH = 83h
  2994.     ???
  2995. Return: ???
  2996. --------I-7AFDCB-----------------------------
  2997. INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK
  2998.     AX = FDCBh
  2999. Return: DX:AX -> PCS/3270 signature block if loaded (see below)
  3000.  
  3001. Format of signature block:
  3002. Offset    Size    Description
  3003.  04h    WORD    PCS/3270 signature (5741h)
  3004.  06h    WORD    version (0501h = PCS/3270 v1.0)
  3005. --------I-7AFE01-----------------------------
  3006. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  3007.     AX = FE01h
  3008.     ???
  3009. Return: ???
  3010. SeeAlso: AX=FE02h
  3011. --------I-7AFE02-----------------------------
  3012. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  3013.     AX = FE02h
  3014.     ???
  3015. Return: ???
  3016. SeeAlso: AX=FE01h
  3017. --------I-7AFF01-----------------------------
  3018. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  3019.     AX = FF01h
  3020.     ES:DI -> API function handler routine
  3021. Return: CX = 1200h
  3022. SeeAlso: AX=FF02h,AX=FF03h
  3023. --------I-7AFF02-----------------------------
  3024. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION
  3025.     AX = FF02h
  3026. Return: CX = 1200h
  3027. SeeAlso: AX=FF01h
  3028. --------I-7AFF03-----------------------------
  3029. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  3030.     AX = FF03h
  3031.     ES:DI -> send/receive function handler routine
  3032. Return: CX = 1200h
  3033. SeeAlso: AX=FF01h
  3034. --------I-7AFF04-----------------------------
  3035. INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ???
  3036.     AX = FF04h
  3037.     ES:DI -> ???
  3038. Return: CX = 1200h
  3039. --------f-7B---------------------------------
  3040. INT 7B - Btrieve API (single user)
  3041.     DS:DX -> 38-byte parameter record (see below)
  3042. Return: return code field set
  3043. Note:    Btrieve sets low byte of vector to 33h; this serves as the installation
  3044.       check
  3045. SeeAlso: INT 2F/AX=AB01h,INT 7F/AX=0200h
  3046.  
  3047. Format of Btrieve parameter record:
  3048. Offset    Size    Description
  3049.  00h    DWORD    pointer to data buffer
  3050.  04h    WORD    data buffer length
  3051.  06h    DWORD    pointer to 90-byte record containing positioning info
  3052.         (should be same for all calls for same file)
  3053.  0Ah    DWORD    pointer to 38-byte FCB info buffer
  3054.         (should be same for all calls for same file)
  3055.  0Eh    WORD    function code (see below)
  3056.  10h    DWORD    pointer to file name/key buffer
  3057.  14h    BYTE    key length
  3058.  15h    BYTE    key number
  3059.  16h    DWORD    pointer to status code (see below)
  3060.  1Ah    WORD    interface code (version specific)
  3061.         6176h version 5.10
  3062.  
  3063. Values for function code:
  3064.  00h    open
  3065.  01h    close
  3066.  02h    insert
  3067.  03h    update
  3068.  04h    delete
  3069.  05h    get_equal
  3070.  06h    get_next
  3071.  07h    get_prev
  3072.  08h    get_greater
  3073.  09h    get_gr_eql
  3074.  0Ah    get_less
  3075.  0Bh    get_less_eq
  3076.  0Ch    get_first
  3077.  0Dh    get_last
  3078.  0Eh    create
  3079.  0Fh    stat
  3080.  10h    extend
  3081.  11h    set_dir: set directory information
  3082.  12h    get_dir: get directory information
  3083.  13h    begin_trans
  3084.  14h    end_trans
  3085.  15h    abort_trans
  3086.  16h    get_pos: get record position number
  3087.  17h    get_direct: get data by sending record position
  3088.  18h    step_next
  3089.  19h    stop
  3090.  1Ah    version
  3091.  1Bh    unlock
  3092.  1Ch    reset
  3093.  1Dh    set owner
  3094.  1Eh    clear owner
  3095.  1Fh    create supplemental index
  3096.  20h    drop supplemental index
  3097.  21h    step first
  3098.  22h    step last
  3099.  23h    step previous
  3100.  24h    get next extended: get multiple records using a filter
  3101.  25h    get previous extended: get multiple records using a filter
  3102.  26h    step next extended: get multiple records using a filter
  3103.  27h    step previous extended: get multiple records using a filter
  3104.  28h    insert extended: insert one or more records
  3105.  31h    ???
  3106.  add 50 (32h) to any "get" operation to just return the key data
  3107.  add 100 (64h) for a single-record wait lock (automatically released on next
  3108.         get)
  3109.  add 200 (C8h) for a single-record nowait lock (nowait lock returns error 54h
  3110.         or 55h if record already locked)
  3111.  add 300 (12Ch) for a multiple-record wait lock (not released until unlock
  3112.         called)
  3113.  add 400 (190h) for a multiple-record nowait lock (nowait lock returns error
  3114.         54h or 55h if record already locked)
  3115.  
  3116. Values for status code:
  3117.  00h    successful
  3118.  01h    invalid operation
  3119.  02h    I/O error
  3120.  03h    file not open
  3121.  04h    key value not found
  3122.  05h    duplicate key value
  3123.  06h    invalid key number
  3124.  07h    different key number
  3125.  08h    invalid positioning
  3126.  09h    end of file
  3127.  0Ah    modifiable key value error
  3128.  0Bh    invalid file name
  3129.  0Ch    file not found
  3130.  0Dh    extended file error
  3131.  0Eh    pre-image open error
  3132.  0Fh    pre-image I/O error
  3133.  10h    expansion error
  3134.  11h    close error
  3135.  12h    disk full
  3136.  13h    unrecoverable error
  3137.  14h    record manager inactive
  3138.  15h    key buffer too short
  3139.  16h    data buffer length overrun
  3140.  17h    position block length
  3141.  18h    page size error
  3142.  19h    create I/O error
  3143.  1Ah    number of keys
  3144.  1Bh    invalid key position
  3145.  1Ch    invalid record length
  3146.  1Dh    invalid key length
  3147.  1Eh    not a Btrieve file
  3148.  1Fh    file already extended
  3149.  20h    extended I/O error
  3150.  22h    invalid extension name
  3151.  23h    directory error
  3152.  24h    transaction error
  3153.  25h    transaction is active
  3154.  26h    transaction control file I/O error
  3155.  27h    end/abort transaction error
  3156.  28h    transaction max files
  3157.  29h    operation not allowed
  3158.  2Ah    incomplete accelerated access
  3159.  2Bh    invalid record address
  3160.  2Ch    null key path
  3161.  2Dh    inconsistent key flags
  3162.  2Eh    access to file denied
  3163.  2Fh    maximum open files
  3164.  30h    invalid alternate sequence definition
  3165.  31h    key type error
  3166.  32h    owner already set
  3167.  33h    invalid owner
  3168.  34h    error writing cache
  3169.  35h    invalid interface
  3170.  36h    variable page error
  3171.  37h    autoincrement error
  3172.  38h    incomplete index
  3173.  39h    expanded memory error
  3174.  3Ah    compression buffer too short
  3175.  3Bh    file already exists
  3176.  3Ch    reject count reached
  3177.  3Dh    work space too small
  3178.  3Eh    incorrect descriptor
  3179.  3Fh    invalid extended insert
  3180.  40h    filter limit reached
  3181.  41h    incorrect field offset
  3182.  4Ah    automatic transaction abort
  3183.  4Eh    deadlock detected
  3184.  50h    conflict
  3185.  51h    lock error
  3186.  52h    lost position
  3187.  53h    read outside transaction
  3188.  54h    record in use
  3189.  55h    file in use
  3190.  56h    file table full
  3191.  57h    handle table full
  3192.  58h    incompatible open mode
  3193.  5Ah    redirected device table full
  3194.  5Bh    server error
  3195.  5Ch    transaction table full
  3196.  5Dh    incompatible lock type
  3197.  5Eh    permission error
  3198.  5Fh    session no longer valid
  3199.  60h    communications environment error
  3200.  61h    data message too small
  3201.  62h    internal transaction error
  3202. --------I-7B---------------------------------
  3203. INT 7B - Eicon Access API (3270/5250 gateways)
  3204. SeeAlso: INT 5C"NetBIOS"
  3205. --------E-7B---------------------------------
  3206. INT 7B - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ3
  3207. Note:    this vector is overwritten when GO32 starts but is not restored by
  3208.       early versions of the extender
  3209. SeeAlso: INT 0B,INT 10/AH=FFh"GO32",INT 7A"GO32",INT 7C"GO32"
  3210. --------A-7B---------------------------------
  3211. INT 7B CR - AutoCAD Device Interface - PRINTER/PLOTTER - SEND PLOTTING DATA
  3212.     AX = data length (0000h-7FFFh)
  3213.     CX:BX -> data to be plotted
  3214.     DX = vertical position of line on page
  3215. Return: nothing
  3216. Notes:    This interrupt is called by AutoCAD to perform its output
  3217.     A data length of 0000h indicates that a blank line is to be output
  3218. SeeAlso: AX=8001h,AX=8002h,INT 78"AutoCAD",INT 7A/AX=0001h"AutoCAD"
  3219. --------A-7B8001-----------------------------
  3220. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - BEGIN PLOT
  3221.     AX = 8001h
  3222.     BX = file level
  3223.         0000h binary file
  3224.         0001h CAD/camera image file
  3225.         0002h installed ADI driver
  3226.     CX = horizontal size in pixels
  3227.     DX = vertical size in pixels
  3228. Return: AX = status (0000h initialization failed, 0001h init successful)
  3229.     BX = allowed output format
  3230.         0000h monochrome
  3231.         0001h color (4 bits per pixel)
  3232. SeeAlso: AX=8002h,AX=8003h,INT 7B"AutoCAD",INT 7C"AutoShade"
  3233. --------A-7B8002-----------------------------
  3234. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - END PLOT
  3235.     AX = 8002h
  3236. SeeAlso: AX=8001h,AX=8003h
  3237. --------A-7B8003-----------------------------
  3238. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - ABORT PLOT
  3239.     AX = 8003h
  3240. SeeAlso: AX=8001h,AX=8002h
  3241. --------r-7C---------------------------------
  3242. INT 7C U - IBM REXX88PC command language
  3243.     ???
  3244. --------E-7C---------------------------------
  3245. INT 7C - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ4
  3246. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  3247.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  3248. Note:    this vector is overwritten when GO32 starts but is not restored by
  3249.       early versions of the extender
  3250. SeeAlso: INT 0C,INT 7B"GO32",INT 7D"GO32"
  3251. --------P-7C---------------------------------
  3252. INT 7C - PRINDIR v8.02+ - API
  3253.     AH = function
  3254.        00h set output to Invisible mode
  3255.        01h set output to LPT1
  3256.        02h set output to LPT2
  3257.        03h set output to LPT3
  3258.        04h set output to COM1
  3259.        05h set output to COM2
  3260.        06h set output to COM3
  3261.        07h set output to COM4
  3262.        08h set output to screen
  3263.        09h set output to file
  3264.        0Ah change file path
  3265.            ES:DI -> new path
  3266.            CX = length of path (max 41, but not range-checked)
  3267.        0Bh change file name
  3268.            ES:DI -> new filename
  3269.            CX = length of new name (max 41, but not range-checked)
  3270.        0Ch set redirected device
  3271.         (01h = LPT1 ... 03h = LPT3, 04h = COM1 ... 07h = COM4)
  3272.        0Dh force buffer dump
  3273.        0Eh set display color
  3274.            AL = new color attribute (see INT 10/AH=08h)
  3275.        0Fh set popup hotkey
  3276.            AL = hotkey scancode
  3277.        10h toggle byte display
  3278.            AL = new state (00h off, 01h on)
  3279.        11h change buffer flush delay
  3280.            AL = timer ticks before flush
  3281. Return: AX = status
  3282.         0000h successful
  3283.         0001h invalid function or nothing in buffer to be dumped
  3284.         (documented as "nonzero = error")
  3285. Program: PRINDIR is a shareware printer-redirection program by J.M. Allen
  3286.       Creations
  3287. Notes:    the installation check consists of testing for the ASCIZ signature
  3288.       "PRINDIR N.NN" (where N.NN is the version number) two bytes beyond
  3289.       the start of the interrupt handler
  3290.     prior versions of PRINDIR used INT 7A instead of INT 7C
  3291. SeeAlso: INT 7A"PRINDIR"
  3292. Index:    hotkeys;PRINDIR
  3293. --------A-7C---------------------------------
  3294. INT 7C - AutoShade v2 - RENDERING HARDCOPY DRIVER
  3295. Note:    this is the default interrupt vector for rendering hardcopy drivers
  3296.       instead of INT 7A used by AutoCAD drivers
  3297. SeeAlso: INT 7A/AX=0001h"AutoCAD"
  3298. --------N-7C---------------------------------
  3299. INT 7C - SK-UPPS/SK-PASSPORT Data Link Interface (DLI) API
  3300. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3301.       which provides an API on top of it Data Link Interface, allowing the
  3302.       use of any of several network transport layers; this product is
  3303.       called SK-PASSPORT in the USA.
  3304. Notes:    The installation check consists of testing for the ASCII signature
  3305.       string "UPPS_DLI" immediately preceding the interrupt handler.
  3306.     To find the service interrupt being used by the driver, an application
  3307.       should scan through the interrupt table until it finds an interrupt
  3308.       vector with the "UPPS_DLI" string.
  3309.     There may be more than one DLI loaded, each having its own service
  3310.       interrupt.
  3311. SeeAlso: AX=0000h,AX=0002h,AX=000Fh
  3312. Index:    installation check;SK-UPPS
  3313. --------N-7C0000-----------------------------
  3314. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER VERSION
  3315.     AX = 0000h
  3316. Return: AH = major DLI version
  3317.     AL = minor DLI version
  3318.     DX = OEM signature (see below)
  3319.     CL = DLI 2.8+ topology: 1=Ethernet, 2=FDDI, 3=Token-Ring
  3320. SeeAlso: AX=0002h,AX=000Bh,AX=000Dh,AX=000Eh
  3321.  
  3322. OEM signatures (defined by SK):
  3323.  0001h experimental
  3324.  3343h 3COM
  3325.  4942h IBM
  3326.  4943h Intellicom
  3327.  494Eh Intel
  3328.  4B4Fh Kodiak
  3329.  4D41h Madge
  3330.  4E45h Novell
  3331.  4F43h Olicom
  3332.  5349h Siemens
  3333.  534Bh Schneider & Koch (SysKonnect)
  3334.  5744h Western Digital
  3335. --------N-7C0001-----------------------------
  3336. INT 7C - SK-UPPS Data Link Interface API - DOWN DRIVER
  3337.     AX = 0001h
  3338. Return: AX = completion code (see below)
  3339. Note:    the DLI will refuse to unload if there are any protocols
  3340.       (see AX=0007h) or clients (see AX=0010h) active.
  3341. Index:    uninstall;SK-UPPS Data Link Interface
  3342.  
  3343. Completion codes:
  3344.  0000h SUCCESS
  3345.  0005h INVALID_MULTICAST
  3346.  0006h BUFFER_TOO_SMALL
  3347.  0007h NO_BUFFERS_LEFT
  3348.  0008h NO_RESOURCES_LEFT
  3349.  000Bh ILLEGAL_PROTOCOL_ID
  3350.  000Ch PROTOCOL_IN_USE
  3351.  000Dh NO_MULTICAST_ADDRESS
  3352.  000Fh PROTOCOLS_ACTIVE
  3353.  0010h CLIENTS_ACTIVE
  3354.  001Bh INVALID_MODE
  3355.  001Ch MODE_NOT_SUPPORTED
  3356.  FFFFh UNKNOWN_SERVICE
  3357. --------N-7C0002-----------------------------
  3358. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATUS
  3359.     AX = 0002h
  3360.     ES:DI -> Status Information Block (SIB) (see AX=000Eh, description of
  3361.           Driver Information Block)
  3362. Return: AX = completion code (see AX=0001h)
  3363. Note:    GET DRIVER INFO (AX=000Eh) should be used instead.
  3364. SeeAlso: AX=0000h,AX=000Bh,AX=000Dh,AX=000Eh
  3365. --------N-7C0003-----------------------------
  3366. INT 7C - SK-UPPS Data Link Interface API - CHANGE DRIVER ADDRESS
  3367.     AX = 0003h
  3368.     ES:DI -> new node address (6 bytes)
  3369. Return: AX = completion code (see AX=0001h)
  3370. Note:    the DLI will refuse to change the address if any protocols
  3371.       (see AX=0007h) are active
  3372. SeeAlso: AX=0001h,AX=000Eh
  3373. --------N-7C0004-----------------------------
  3374. INT 7C - SK-UPPS Data Link Interface API - REQUEST BUFFER
  3375.     AX = 0004h
  3376.     DX = protocol ID (see AX=0007h)
  3377. Return: AX = completion code (see also AX=0001h)
  3378.         0000h successful
  3379.         ES:BX -> Memory Buffer (Mbuf) (see below)
  3380. Note:    if the DLI has no free Mbufs, it will set an internal flag for the
  3381.       protocol and later call the protocol's Event Upcall with
  3382.       EV_BUFFER_AVAILABLE (see AX=0007h) as soon as an Mbuf becomes
  3383.       available.  There will only be one "buffer available" Upcall, even
  3384.       if this function has been called several times before.
  3385. SeeAlso: AX=0005h,AX=0006h,AX=0012h,AX=0013h
  3386.  
  3387. Format of Memory Buffer (Mbuf):
  3388. Offset    Size    Description
  3389.  00h    DWORD    -> NEXT Mbuf (linked list)
  3390.  04h    WORD    OFFSET of actual data within DATA area
  3391.  06h  2 BYTEs    reserved (currently unused)
  3392.  08h    WORD    LENGTH of actual data found in DATA area starting at OFFSET
  3393.  0Ah  2 BYTEs    reserved (currently unused)
  3394.  0Ch    DWORD    -> DATA area (size can be obtained via AX=000Eh call)
  3395.  10h    WORD    PROTOCOL ID of protocol currently "owning" the Mbuf
  3396.  12h    BYTE    IN USE flag; nonzero if Mbuf still in use by DLI (see AX=0006h)
  3397.  13h    BYTE    RECEIVE STATUS (bit 0-7 only; see AX=0007h - Receive Upcall)
  3398. --------N-7C0005-----------------------------
  3399. INT 7C - SK-UPPS Data Link Interface API - RELEASE BUFFER
  3400.     AX = 0005h
  3401.     ES:BX -> Mbuf (see AX=0004h)
  3402. Return: nothing
  3403. SeeAlso: AX=0004h
  3404. --------N-7C0006-----------------------------
  3405. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME
  3406.     AX = 0006h
  3407.     ES:BX -> Mbuf (see AX=0004h)
  3408. Return: nothing
  3409. Notes:    The DLI will send LENGTH bytes found in the Mbuf's DATA area starting
  3410.       at OFFSET. A complete and valid frame must be stored there. The DLI
  3411.       will only copy the current node address (see AX=0003h) to the
  3412.       source node field of the frame's MAC header.
  3413.     On Ethernet, the DLI will always send a minimum of 60 bytes, regardless
  3414.       of the value found in the LENGTH field.
  3415.     This function returns immediately; the DLI will call the protocol's
  3416.       Transmit Upcall (see AX=0007h) when the frame has been sent.
  3417.     The Mbuf's IN USE field will be non-zero until the DLI calls the
  3418.       Transmit Upcall.
  3419. SeeAlso: AX=0002h,AX=0004h,AX=0013h
  3420.  
  3421. Transmit Upcall called with:
  3422.     ES:BX -> Mbuf (NEXT field destroyed)
  3423.     interrupts disabled
  3424. Note:    On FDDI the bytes of the source and destination node fields in the MAC
  3425.       header have been bit-swapped to physical address format.
  3426. --------N-7C0007-----------------------------
  3427. INT 7C - SK-UPPS Data Link Interface API - REGISTER PROTOCOL
  3428.     AX = 0007h
  3429.     ES:BX -> Protocol Control Block (see below)
  3430. Return: AX = completion code (see AX=0001h)
  3431. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3432.       which provides an API on top of its Data Link Interface, allowing the
  3433.       use of any of several network transport layers
  3434. SeeAlso: AX=0008h,AX=000Bh
  3435.  
  3436. Format of Protocol Control Block (PCB):
  3437. Offset    Size    Description
  3438.  00h    WORD    protocol type (high-low)
  3439.  02h    WORD    protocol mode (see below)
  3440.  04h    DWORD    -> Receive Upcall routine
  3441.  08h    DWORD    -> Transmit Upcall routine
  3442.  0Ch    DWORD    -> Event Upcall routine
  3443.  10h    DWORD    -> ASCIZ protocol name (zero if none)
  3444.  14h    WORD    protocol ID will be returned here (always non-zero)
  3445.  
  3446. Bitfields for protocol mode:
  3447.  bit 0    promiscuous mode; protocol receives all frames regardless of their
  3448.       destination (PROTOCOL TYPE must be FFFFh)
  3449.  bit 1    if set, protocol's Event Upcall will be called on entry and exit of the
  3450.       DLI's Interrupt Service Routine (see event codes below)
  3451.  bit 2    DLI 2.2+ hook mode; protocol receives all directed frames destined for
  3452.       this station (PROTOCOL TYPE must be FFFFh)
  3453.  bit 3    DLI 2.3+ receive error frames (only valid in promiscuous mode (bit 0))
  3454.  bit 4-5 DLI 2.5+ frame type:
  3455.     00 Ethernet II; specify type code in PROTOCOL TYPE field (high-low)
  3456.     01 IEEE 802.2; specify Service Access Point (SAP) in MSB
  3457.         (offset 0) of PROCOTOL TYPE field; LSB must be zero
  3458.     10 IEEE 802.2 with SNAP header; specify type code in PROTOCOL TYPE
  3459.         field (high-low)
  3460.     11 reserved (currently unused)
  3461.  bit 6    DLI 2.5+ if set, protocol's Event Upcall will be called with event code
  3462.       EV_BUFFER_WANTED, when DLI runs out of Mbufs
  3463.  bit 7    DLI 2.7+ chain mode; if set, client allows the specified frame type to
  3464.       be shared with other clients
  3465.  bit 8    DLI 2.8+ receive non-LLC frames rather than LLC frames
  3466.  bit 9    DLI 2.8+ receive all multicast frames (see also AX=0009h)
  3467.  bit 10-15 reserved (currently unused; must be zero)
  3468. Notes:    If PROTOCOL TYPE is FFFFh and neither the "promiscuous" nor the "hook"
  3469.       mode bit is set, the protocol receives all frames that did not match
  3470.       any registered frame type (demultiplexor mode).
  3471.     Protocols using "promiscuous", "hook" or "chain" mode should always
  3472.       return from the Receive Upcall with the received Mbuf in ES:BX and the
  3473.       Carry Flag set. The DLI will then pass the Mbuf to the FEED BACK
  3474.       BUFFER function (see AX=000Fh).
  3475.     Some DLIs do not support all or even any of the "promiscuous",
  3476.       "receive non-LLC" and "receive all multicasts" mode bits.
  3477.  
  3478. Receive Upcall called with:
  3479.  ES:BX -> Mbuf
  3480.  AX = receive status (see below; also stored in Mbuf's RECEIVE STATUS field)
  3481.  interrupts disabled
  3482.  
  3483. Bitfields for receive status (reserved bits currently unused and always zero):
  3484.  bit 0-2 reserved
  3485.  bit 3    frame check sequence (FCS) error
  3486.  bit 4    overflow (frame too long)
  3487.  bit 5    framing error
  3488.  bit 6    reserved
  3489.  bit 7    non-LLC frame (see bit 8 of PCB's protocol mode field)
  3490.  bit 8-15 reserved
  3491. Notes:    The protocol's Receive Upcall routine will be called whenever a frame
  3492.       matching the specified frame type is received. A received frame is
  3493.       passed to the protocol in the Mbuf's DATA area at OFFSET and its size
  3494.       is LENGTH bytes.
  3495.     The receive status passed to the Receive Upcall in register AL is
  3496.       always zero, except for protocols using "non-LLC" mode (bit 8 of PCB's
  3497.       protocol mode field) or "promiscuous" mode together with "receive
  3498.       error frames" (bits 0 & 3).
  3499.     Upcalls are FAR routines and must return with a RET FAR. If the Carry
  3500.       Flag is set on return from a Receive or Transmit Upcall, then ES:BX
  3501.       must point to an Mbuf, which the DLI will then pass to the RELEASE
  3502.       BUFFER function (see AX=0005h). See also notes for PROTOCOL MODE.
  3503.  
  3504. Event Upcall called with:
  3505.  AX = event code (see below)
  3506. Note:    All Event Upcalls may be ignored by the protocol.
  3507.  
  3508. Event codes found in register AX on Event Upcall:
  3509.  00h EV_BUFFER_AVAILABLE  client may now call REQUEST BUFFER (AX=0004h)
  3510.  01h EV_ISR_START    start of Interrupt Service Routine
  3511.  02h EV_ISR_END        end of ISR (see bit 1 in PCB's protocol mode field)
  3512.  03h EV_BUFFER_WANTED    DLI temporarily out of Mbufs
  3513.  04h EV_NETWORK_STATUS    DLI 2.8+ network status (DX=status; see below)
  3514.  05h EV_IO_CONTROL    DLI 2.8+ I/O control (DX=subfunction; see AX=0016h)
  3515.  
  3516. Bitfields for EV_NETWORK_STATUS in register DX:
  3517.     Token-Ring        FDDI
  3518.  bit 15 SIGNAL_LOSS        SIGNAL_LOSS
  3519.  bit 14 HARD_ERROR        HARD_ERROR
  3520.  bit 13 SOFT_ERROR        SOFT_ERROR
  3521.  bit 12 TRANSMIT_BEACON        TRANSMIT_BEACON
  3522.  bit 11 LOBE_WIRE_FAULT        PATH_TEST_FAILED
  3523.  bit 10 AUTO_REMOVAL        SELF_TEST_REQUIRED
  3524.  bit 9    reserved        reserved
  3525.  bit 8    REMOVE_RECEIVED        REMOTE_DISCONNECT
  3526.  bit 7    COUNTER_OVERFLOW    reserved
  3527.  bit 6    SINGLE_STATION        DUPLICATE_ADDRESS
  3528.  bit 5    RING_RECOVERY        NO_RING_OP_STATUS
  3529.  bit 4    reserved        VERSION_MISMATCH
  3530.  bit 3    reserved        STUCK_BYPASS
  3531.  bit 2    reserved        FDDI_EVENT
  3532.  bit 1    reserved        RING_OP_CHANGE
  3533.  bit 0    reserved        reserved
  3534. Note:    EV_NETWORK_STATUS is not supported on Ethernet
  3535. --------N-7C0008-----------------------------
  3536. INT 7C - SK-UPPS Data Link Interface API - DISABLE PROTOCOL
  3537.     AX = 0008h
  3538.     BX = protocol ID (see AX=0007h)
  3539. Return: AX = completion code (see AX=0001h)
  3540. Note:    the DLI will handle any Mbufs given to TRANSMIT FRAME (AX=0006h) as if
  3541.       they had been given to TRANSMIT FRAME RELEASE (AX=0013h).
  3542.     all multicast addresses registered for this protocol will be disabled.
  3543.     after this function returns, the protocol's Upcall routines will no
  3544.       longer be called.
  3545. SeeAlso: AX=0007h,AX=000Bh
  3546. --------N-7C0009-----------------------------
  3547. INT 7C - SK-UPPS Data Link Interface API - REGISTER MULTICAST
  3548.     AX = 0009h
  3549.     BX = protocol ID (see AX=0007h)
  3550.     ES:DI -> multicast address (6 bytes)
  3551. Return: AX = completion code (see AX=0001h)
  3552. Notes:    The broadcast address is always enabled.
  3553.     Set bit 9 of PCB's protocol mode field in REGISTER PROTOCOL call
  3554.       (AX=0007h) to receive all multicast frames.
  3555. SeeAlso: AX=000Ah,AX=0014h
  3556. --------N-7C000A-----------------------------
  3557. INT 7C - SK-UPPS Data Link Interface API - DISABLE MULTICAST
  3558.     AX = 000Ah
  3559.     BX = protocol ID (see AX=0007h)
  3560.     ES:DI -> multicast address (6 bytes)
  3561. Return: AX = completion code (see AX=0001h)
  3562. SeeAlso: AX=0009h,AX=0014h
  3563. --------N-7C000B-----------------------------
  3564. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL LIST
  3565.     AX = 000Bh
  3566.     ES:DI -> protocol ID buffer
  3567.     CX = number of 2-byte protocol IDs that may be stored in buffer
  3568. Return: AX = completion code (see AX=0001h)
  3569.     CX = number of active protocols (regardless of value returned in AX)
  3570.     protocol ID buffer filled with active protocol IDs
  3571. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3572.       which provides an API on top of its Data Link Interface, allowing the
  3573.       use of any of several network transport layers
  3574. Note:    If the buffer supplied is too small, CX still contains the total number
  3575.       of active protocols and the buffer has been filled until full.
  3576. SeeAlso: AX=000Ch,AX=0014h
  3577. --------N-7C000C-----------------------------
  3578. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL STATUS
  3579.     AX = 000Ch
  3580.     BX = protocol ID (see AX=000Bh)
  3581.     ES:DI -> Protocol Status Block (see below)
  3582. Return: AX = completion code (see AX=0001h)
  3583. SeeAlso: AX=000Bh,AX=0014h
  3584.  
  3585. Format of Protocol Status Block (PSB):
  3586. Offset    Size    Description
  3587.  00h    DWORD    -> ASCIZ protocol name
  3588.  04h    WORD    protocol mode (see AX=0007h)
  3589.  06h    WORD    protocol type (see AX=0007h)
  3590.  08h    WORD    number of registered multicasts (see AX=0009h, AX=0014h)
  3591. --------N-7C000D-----------------------------
  3592. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATISTICS
  3593.     AX = 000Dh
  3594.     BX = flag: 0=don't clear statistics, 1=clear statistics
  3595.     ES:DI -> Statistics Data Block (see below)
  3596. Return: AX = completion code (see AX=0001h)
  3597. SeeAlso: AX=0002h,AX=0015h
  3598.  
  3599. Format of Statistics Data Block (SDB):
  3600. Offset    Size    Description
  3601.  00h    DWORD    node uptime in ticks (1/18.21 sec.)
  3602.  04h    DWORD    bytes received
  3603.  08h    DWORD    bytes transmitted
  3604.  0Ch    DWORD    frames received
  3605.  10h    DWORD    frames transmitted
  3606.  14h    DWORD    multicast bytes received
  3607.  18h    DWORD    multicast frames received
  3608.  1Ch    DWORD    unrecognized frames
  3609.  20h    WORD    missed frames
  3610.  22h    WORD    frame check sequence (FCS) errors
  3611.  24h    WORD    framing errors
  3612.  26h    WORD    babbling errors
  3613.  28h    WORD    late collision errors
  3614.  2Ah    WORD    loss of carrier errors
  3615.  2Ch    WORD    16 retries failed errors
  3616.  2Eh    WORD    overflow errors
  3617. Note:    fields 26h through 2Ch are always zero, except in some very old
  3618.       versions of the DLI.    Use GET MEDIA STATISTICS (AX=0015h) to get
  3619.       more detailed information.
  3620. --------N-7C000E-----------------------------
  3621. INT 7C - SK-UPPS Data Link Interface API - DLI 2.5+ - GET DRIVER INFO
  3622.     AX = 000Eh
  3623.     ES:DI -> Driver Information Block (see below)
  3624.     BX = offset of 1st field within DIB to be returned
  3625.     CX = number of bytes to be returned
  3626. Return: AX = completion code (see AX=0001h)
  3627.     CX = number of bytes copied (regardless of value returned in AX)
  3628. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3629.       which provides an API on top of its Data Link Interface, allowing the
  3630.       use of any of several network transport layers
  3631. SeeAlso: AX=0000h,AX=0002h,AX=000Bh,AX=000Dh,AX=0015h
  3632.  
  3633. Format of Driver Information Block (DIB):
  3634. Offset    Size    Description
  3635.  00h  6 BYTEs    physical node address (from adapter's ROM)
  3636.  06h  6 BYTEs    current node address (see AX=0003h)
  3637.  0Ch    BYTE    adapter id (defined by OEM)
  3638.  0Dh    BYTE    IRQ line (FFh if none)
  3639.  0Eh    DWORD    -> shared memory (zero if none)
  3640.  12h    DWORD    size of shared memory (zero if none)
  3641.  16h    WORD    base I/O port (zero if none)
  3642.  18h    BYTE    DMA line (FFh if none)
  3643.  19h    BYTE    DLI 2.4+ topology (see AX=0000h)
  3644.  1Ah    WORD    size of an Mbuf's DATA area (see AX=0004h)
  3645.  1Ch  2 BYTEs    reserved (currently unused)
  3646.  1Eh    WORD    total number of Mbufs the DLI has
  3647.  20h    WORD    maximum number of Mbufs that can be allocated via REQUEST
  3648.          BUFFER (AX=0004h) and SYNC REQUEST BUFFER (AX=0012h)
  3649.  ---- end of Status Information Block returned by GET DRIVER STATUS (AX=0002h)
  3650.  22h    DWORD    -> ASCIZ adapter name
  3651.  26h    WORD    number of I/O ports used (zero if none)
  3652.  28h    DWORD    line speed in bits/sec.
  3653. --------N-7C000F-----------------------------
  3654. INT 7C - SK-UPPS Data Link Interface API - FEED BACK BUFFER
  3655.     AX = 000Fh
  3656.     ES:BX -> Mbuf
  3657. Return: nothing
  3658. Notes:    A protocol may call this function instead of returning the Mbuf
  3659.       directly from the Receive Upcall if it is running in "promiscuous",
  3660.       "hook" or "chain" mode.
  3661. SeeAlso: AX=0007h
  3662. --------N-7C0010-----------------------------
  3663. INT 7C - SK-UPPS Data Link Interface API - CLIENT HOOK
  3664.     AX = 0010h
  3665. Return: nothing
  3666. Notes:    An application having no active protocols may call this function to
  3667.       prevent the DLI from unloading.
  3668. SeeAlso: AX=0001h,AX=0011h
  3669. --------N-7C0011-----------------------------
  3670. INT 7C - SK-UPPS Data Link Interface API - CLIENT UNHOOK
  3671.     AX = 0011h
  3672. Return: nothing
  3673. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3674.       which provides an API on top of its Data Link Interface, allowing the
  3675.       use of any of several network transport layers
  3676. SeeAlso: AX=0010h
  3677. --------N-7C0012-----------------------------
  3678. INT 7C - SK-UPPS Data Link Interface API - SYNC REQUEST BUFFER
  3679.     AX = 0012h
  3680.     DX = protocol ID (see AX=0007h)
  3681. Return: AX = completion code (see AX=0001h)
  3682.     if AX=0000h: ES:BX -> Mbuf (see AX=0004h)
  3683. Note:    If the protocol wants to be informed when an Mbuf becomes available,
  3684.       REQUEST BUFFER (AX=0004h) should be used instead.
  3685. SeeAlso: AX=0004h,AX=0005h,AX=0006h,AX=0013h
  3686. --------N-7C0013-----------------------------
  3687. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME RELEASE
  3688.     AX = 0013h
  3689.     ES:BX -> Mbuf (see AX=0004h)
  3690. Return: nothing
  3691. Notes:    Returns immediately; The protocol's Transmit Upcall will NOT be called.
  3692.     The Mbuf may no more be used by the protocol in any way (i.e. the
  3693.       Mbuf's IN USE field may not be polled).
  3694. SeeAlso: AX=0004h,AX=0013h
  3695. --------N-7C0014-----------------------------
  3696. INT 7C - SK-UPPS Data Link Interface API - GET MULTICAST LIST
  3697.     AX = 0014h
  3698.     BX = protocol ID (see AX=000Bh)
  3699.     ES:DI -> multicast address buffer
  3700.     CX = number of 6-byte multicast addresses that may be stored in buffer
  3701. Return: AX = completion code (see AX=0001h)
  3702.     CX = number of registered multicast addresses for this protocol
  3703.       (regardless of value returned in AX)
  3704.     multicast address buffer filled with multicast addresses registered for
  3705.       this protocol
  3706. Note:    If the buffer supplied is too small, CX still contains the total number
  3707.       of registered multicast addresses for this protocol and the buffer has
  3708.       been filled until full.
  3709. SeeAlso: AX=000Bh,AX=0009h,AX=000Ch
  3710. --------N-7C0015-----------------------------
  3711. INT 7C - SK-UPPS Data Link Interface API - DLI 2.6+ - GET MEDIA STATISTICS
  3712.     AX = 0015h
  3713.     ES:DI -> media-specific statistics buffer (see below)
  3714.     BX = offset of 1st field within MSS to be returned
  3715.     CX = number of bytes to be returned
  3716. Return: AX = completion code (see AX=0001h)
  3717.     CX = number of bytes copied (regardless of value returned in AX)
  3718. Note:    not supported by all DLIs (will return AX=FFFFh if not supported).
  3719. SeeAlso: AX=0000h,AX=000Dh
  3720.  
  3721. Format of media-specific statistics for Ethernet:
  3722. Offset    Size    Description
  3723.  00h    DWORD    alignment errors
  3724.  04h    DWORD    frame check sequence (FCS) errors
  3725.  08h    DWORD    single collision frames
  3726.  0Ch    DWORD    multiple collision frames
  3727.  10h    DWORD    signal quality error (SQE) test errors
  3728.  14h    DWORD    deferred transmissions
  3729.  18h    DWORD    late collisions
  3730.  1Ch    DWORD    excessive collisions
  3731.  20h    DWORD    internal MAC transmit errors
  3732.  24h    DWORD    carrier sense errors
  3733.  28h    DWORD    excessive deferrals
  3734.  2Ch    DWORD    frame too longs
  3735.  30h    DWORD    in range length errors
  3736.  34h    DWORD    out of range length fields
  3737.  38h    DWORD    internal MAC receive errors
  3738.  
  3739. Format of media-specific statistics for FDDI:
  3740. Offset    Size    Description
  3741.  00h    DWORD    SMT operating version id (refer to ANSI 7.1.2.2)
  3742.  04h    DWORD    SMT CF state: 1=Isolated, 2= Wrap_S, 3=Wrap_A, 4=Wrap_B,
  3743.          5=Wrap_AB, 6=Thru (refer to ANSI SMT 9.7.4.3)
  3744.  08h    DWORD    SMT frames sent
  3745.  0Ch    DWORD    SMT frames received
  3746.  10h    DWORD    SMT ring up count
  3747.  14h  6 BYTEs    MAC upstream neighbour
  3748.  1Ah  6 BYTEs    MAC downstream neighbour
  3749.  20h    DWORD    MAC frame counter (refer to ANSI MAC 2.2.1)
  3750.  24h    DWORD    MAC error counter ( " )
  3751.  28h    DWORD    MAC lost counter ( " )
  3752.  2Ch    BYTE    port 1 link error estimate (ranges from 10**-4 to 10**-15 and
  3753.          is reported as the absolute value of the exponent)
  3754.  2Dh    BYTE    port 2 link error estimate ( " )
  3755.  2Eh  2 BYTEs    reserved (currently unused)
  3756.  30h    DWORD    attachment class: 1=single-attachment (S PORT),
  3757.          2=dual-attachment (A/B PORT pairs), 3=concentrator (M PORTs)
  3758.  34h    DWORD    attachment optical bypass present: 1=true, 2=false
  3759.  
  3760. Format of media-specific statistics for Token-Ring:
  3761. Offset    Size    Description
  3762.  00h  6 BYTEs    upstream neighbour
  3763.  06h    WORD    local ring number
  3764.  08h    DWORD    ring up count
  3765.  0Ch    DWORD    signal loss errors
  3766.  10h    DWORD    lobe wire faults
  3767.  14h    DWORD    ring recovery count
  3768.  18h    DWORD    line errors
  3769.  1Ch    DWORD    burst errors
  3770.  20h    DWORD    ARI/FCI errors
  3771.  24h    DWORD    lost frame errors
  3772.  28h    DWORD    receive congestion errors
  3773.  2Ch    DWORD    frame copied errors
  3774.  30h    DWORD    token errors
  3775.  34h    DWORD    DMA bus errors
  3776.  38h    DWORD    DMA parity errors
  3777.  3Ch    DWORD    receive overflow errors
  3778. --------N-7C0016-----------------------------
  3779. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - DRIVER I/O CONTROL
  3780.     AX = 0016h
  3781.     DX = subfunction; bits 14-15 specify direction of I/O:
  3782.         00 no data at all (ES:BX undefined)
  3783.         01 driver -> application (GET)
  3784.         10 application -> driver (SET)
  3785.         11 both directions (GET/SET)
  3786.     ES:BX -> I/O buffer (optional)
  3787.     CX = size of buffer (if ES:BX valid)
  3788. Return: AX = completion code; defined by OEM
  3789. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3790.       which provides an API on top of its Data Link Interface, allowing the
  3791.       use of any of several network transport layers
  3792. Notes:    not supported by all DLIs (will return AX=FFFFh if not supported)
  3793.     subfunction codes are defined by OEMs
  3794. SeeAlso: AX=0001h
  3795. --------N-7C0017-----------------------------
  3796. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - INTERRUPT REQUEST
  3797.     AX = 0017h
  3798. Return: AX = completion code (see AX=0001h)
  3799. Notes:    not supported by all DLIs (will return AX=FFFFh, if not supported).
  3800.     must be called with interrupts disabled; when the client re-enables
  3801.       interrupts, an interrupt will be generated and reported to the client
  3802.       through an Event Upcall (see AX=0007h [EV_ISR_START/EV_ISR_END])
  3803. SeeAlso: AX=0007h
  3804. --------t-7D---------------------------------
  3805. INT 7D - [obsoleted proposal] - ALTERNATE MULTIPLEX INTERRUPT
  3806. Note:    this interface has been moved to INT 2D; there are no known
  3807.       implementations on INT 7D
  3808. SeeAlso: INT 2D,INT 2F
  3809. --------S-7D---------------------------------
  3810. INT 7D U - YTERM 1.4 - CLOCK SUPPORT
  3811. SeeAlso: INT 7E"YTERM"
  3812. --------E-7D---------------------------------
  3813. INT 7D - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ5
  3814. Note:    this vector is overwritten when GO32 starts but is not restored by
  3815.       early versions of the extender
  3816. SeeAlso: INT 0D,INT 7C"GO32",INT 7E"GO32"
  3817. --------U-7D---------------------------------
  3818. INT 7D - HyperPAD v2.2 - API ACCESS
  3819. Note:    this vector is hooked but immediately passed on (without checking
  3820.       whether the previous handler was 0000h:0000h).  The sole purpose of
  3821.       this vector is to provide the address of the data area described
  3822.       below.
  3823.  
  3824. Format of HyperPAD data area:
  3825. Offset    Size    Description
  3826.  -16h    DWORD    pointer to ??? FAR function
  3827.  -12h    DWORD    pointer to callback setting function
  3828.         [C calling conventions, (*callback)(int (_loadds far *)()) ]
  3829.  -0Eh 6 BYTEs    signature "BRC001"
  3830.  -08h    DWORD    pointer to previous INT 7D handler
  3831.  -04h    DWORD    pointer to ??? data
  3832.  00h        HyperPAD INT 7D handler
  3833. ----------7D00-------------------------------
  3834. INT 7D - SCSILink - RESET SCSI BUS
  3835.     AH = 00h
  3836. Program: SCSILink is a TSR by Cross Products Ltd which allows its PC-hosted
  3837.       cross assemblers and similar products to communicate with Cross
  3838.       Products hardware debuggers
  3839. Desc:    reset all devices on the SCSI bus
  3840. Note:    the installation check is the signature "SCSILINK" immediately prior
  3841.       to the interrupt handler
  3842. Index:    installation check;SCSILink
  3843. ----------7D01-------------------------------
  3844. INT 7D - SCSILink - CONNECT TO TARGET
  3845.     AH = 01h
  3846.     AL = target ID
  3847. Return: CF clear if successful
  3848.     CF set on error
  3849.         AL = initiator error
  3850.         AH = target error
  3851. Desc:    arbitrate the use of the bus and select the specified target device
  3852. ----------7D02-------------------------------
  3853. INT 7D - SCSILink - SEND COMMAND
  3854.     AH = 02h
  3855.     ES:BX -> parameter block (see below)
  3856. Return: CF clear if successful
  3857.     CF set on error
  3858.         AL = initiator error
  3859.         AH = target error
  3860. Desc:    send the specified command block to the target device and perform any
  3861.       related I/O
  3862.  
  3863. Format of parameter block:
  3864. Offset    Size    Description
  3865.  00h    DWORD    size of command block
  3866.  04h    DWORD    address of command block (see below)
  3867.  08h    DWORD    size of buffer
  3868.  0Ch    DWORD    address of buffer
  3869.  
  3870. Format of command block:
  3871. Offset    Size    Description
  3872.  00h        info not yet available
  3873. ----------7D03-------------------------------
  3874. INT 7D - SCSILink - SET TIMEOUT
  3875.     AH = 03h
  3876.     AL = timeout selector (see below)
  3877.     BX = new value in 55ms ticks
  3878. Desc:    change an internal timeout value to allow communication with very
  3879.       slow targets
  3880.  
  3881. Values for timeout selector:
  3882.  00h    time to wait for bus (default 18)
  3883.  01h    time to wait for new phase (default 5)
  3884.  02h    maximum time to send/receive block (default 18)
  3885.  03h    time to wait for reselect (default 180)
  3886. ----------7D04-------------------------------
  3887. INT 7D - SCSILink - GET ERROR STRING
  3888.     AH = 04h
  3889.     AL = error number
  3890. Return: ES:BX -> ASCIZ error string for error number
  3891. ----------7D05-------------------------------
  3892. INT 7D - SCSILink - GET ADDRESS
  3893.     AH = 05h
  3894. Return: AL = DMA channel
  3895.     AH = initiator ID
  3896.     BX = card address
  3897. Desc:    determine the current hardware configuration
  3898. ----------7D06-------------------------------
  3899. INT 7D - SCSILink - PUT DATA
  3900.     AH = 06h
  3901.     CX = number of bytes to store (0001h-0100h)
  3902.     ES:BX -> data to be saved
  3903. Return: CF clear if successful
  3904.     CF set on error
  3905.         AL = error code (01h = too much data)
  3906. Note:    the specified data is stored in SCSILink's PSP
  3907. SeeAlso: AH=07h
  3908. ----------7D07-------------------------------
  3909. INT 7D - SCSILink - GET DATA
  3910.     AH = 07h
  3911.     CX = number of bytes to retrieve (0001h-0100h)
  3912.     ES:BX -> buffer for data
  3913. Return: CF clear if successful
  3914.     CF set on error
  3915.         AL = error code (01h = too much data)
  3916. Note:    retrieve data previously stored with AH=06h
  3917. SeeAlso: AH=06h
  3918. ----------7D08-------------------------------
  3919. INT 7D - SCSILink - TERMINATE SESSION
  3920.     AH = 08h
  3921. Desc:    indicate to any other programs that intercept INT 7D that the program
  3922.       has finished with the link
  3923. Note:    the program should call this function even if a SCSI error caused its
  3924.       termination
  3925. ----------7D09-------------------------------
  3926. INT 7D - SCSILink - POLL REQUEST
  3927.     AH = 09h
  3928.     AL = target ID
  3929. Return: AL = status
  3930.         FEh resident driver experienced SCSI error
  3931.         FFh resident driver handleded event
  3932. Desc:    give any drivers chained onto INT 7D a chance to handle an exception
  3933.       not specifically handled by the calling program
  3934. Notes:    this service exists so that resident disk servers, etc. can continue
  3935.       running even while debuggers and profilers are active
  3936.     the resident driver assumes that a connection has been established and
  3937.       attempts to leave the target connected
  3938. --------*-7E---------------------------------
  3939. INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY
  3940. --------S-7E---------------------------------
  3941. INT 7E U - YTERM 1.4 - ???
  3942. SeeAlso: INT 7D"YTERM",INT 7F"YTERM"
  3943. --------E-7E---------------------------------
  3944. INT 7E - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ6
  3945. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  3946.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  3947. Note:    this vector is overwritten when GO32 starts but is not restored by
  3948.       early versions of the extender
  3949. SeeAlso: INT 0E,INT 7D"GO32",INT 7F"GO32"
  3950. --------m-7E5857BL57-------------------------
  3951. INT 7E - XLOAD - INSTALLATION CHECK
  3952.     AX = 5857h
  3953.     BL = 57h
  3954. Return: AX = 0000h if installed
  3955. Program: XLOAD is the LOADHIGH-equivalent from Helix Software's Netroom
  3956. SeeAlso: AX=5857h/BL=5Ah,AX=5857h/BL=5Bh
  3957. --------m-7E5857BL5A-------------------------
  3958. INT 7E - XLOAD - GET ???
  3959.     AX = 5857h
  3960.     BL = 5Ah
  3961. Return: AX = 0000h
  3962.     CX = ???
  3963.     DS:SI -> ???
  3964. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Bh
  3965. --------m-7E5857BL5B-------------------------
  3966. INT 7E - XLOAD - GET XLOAD MEMORY SIZE
  3967.     AX = 5857h
  3968.     BL = 5Bh
  3969. Return: AX = 0000h
  3970.     CX = segment of XLOAD TSR
  3971.     DX = size of memory block in which XLOAD TSR is located
  3972. SeeAlso: AX=5857h/BL=57h/AX=5857h/BL=5Ah
  3973. --------V-7F---------------------------------
  3974. INT 7F - IBM XGA - ???
  3975. --------V-7F---------------------------------
  3976. INT 7F - Halo88 - API
  3977.     BX = function
  3978.         64h arc
  3979.         65h bar
  3980.         66h box
  3981.         67h circle
  3982.         68h clr
  3983.         69h default hatch style
  3984.         6Ah default line style
  3985.         6Bh delhcur
  3986.         6Ch delln / deltcur
  3987.         6Dh ellipse
  3988.         6Eh fill
  3989.         6Fh flood
  3990.         70h flood2
  3991.         71h init graphics
  3992.         72h init hcur
  3993.         73h init marker
  3994.         74h init tcur
  3995.         75h inqarc
  3996.         76h inqbknd
  3997.         77h inqclr
  3998.         78h inqerr
  3999.         79h inqgcur
  4000.         7Ah inqhcur
  4001.         7Bh inqmarker
  4002.         7Dh inqtcur
  4003.         7Eh inqtext
  4004.         7Fh lnabs
  4005.         80h lnrel
  4006.         81h markerabs
  4007.         82h markerrel
  4008.         83h moveabs
  4009.         84h movehcurabs
  4010.         85h movehcurrel
  4011.         86h moverel
  4012.         87h movetcurabs
  4013.         88h movetcurrel
  4014.         89h movefrom
  4015.         8Ah moveto
  4016.         8Bh pie
  4017.         8Ch polylnabs
  4018.         8Dh polylnrel
  4019.         8Eh ptabs
  4020.         8Fh ptrel
  4021.         91h setasp
  4022.         92h set color
  4023.         93h set font
  4024.         94h set hatch style
  4025.         95h set line style
  4026.         97h settext
  4027.         98h set text color
  4028.         99h btext
  4029.         9Ah setseg
  4030.         9Bh display
  4031.         9Ch setscreen
  4032.         9Eh close graphics
  4033.         9Fh ftinit
  4034.         A0h ftlocate
  4035.         A1h ftext
  4036.         A5h set viewport
  4037.         A6h set window
  4038.         A7h set world
  4039.         AAh ftcolor
  4040.         ACh initlp
  4041.         ADh inqasp
  4042.         AEh inqdev
  4043.         AFh inqdisplay
  4044.         B0h inqft
  4045.         B1h inqftcolor
  4046.         B2h inqinterlace
  4047.         B3h inqlpa
  4048.         B4h inqlpg
  4049.         B5h inqmode
  4050.         B6h inqscreen
  4051.         B7h inqversion
  4052.         B8h roam
  4053.         B9h scroll
  4054.         BAh setieee
  4055.         BBh set interlace
  4056.         BCh shift
  4057.         BDh start graphics
  4058.         BEh vpan
  4059.         CBh gwrite
  4060.         CCh gread
  4061.         CDh setxor
  4062.         CEh rbox
  4063.         CFh rcir
  4064.         D0h rlnabs
  4065.         D1h rlnrel
  4066.         D2h delbox
  4067.         D3h delcir
  4068.         D5h setseg2
  4069.         DCh worldoff
  4070.         DDh mapwtod
  4071.         DEh mapdtow
  4072.         DFh mapwton
  4073.         E0h mapntow
  4074.         E1h mapdton
  4075.         E2h mapntod
  4076.         E3h inqworld
  4077.         E4h inqviewport
  4078.         E5h set line width
  4079.         E6h lnjoint
  4080.         E7h set locator
  4081.         E8h read locator
  4082.         E9h setdev
  4083.         EBh setstext
  4084.         ECh setstclr
  4085.         EDh setstang
  4086.         EEh stext
  4087.         EFh inqstext
  4088.         F0h setdegree
  4089.         F1h inqstsize
  4090.         F2h polyfabs
  4091.         F3h polyfrel
  4092.         F4h inqdrange
  4093.         F5h inqstang
  4094.         F6h orglocator
  4095.         F7h inqlocator
  4096.         F8h inqarea
  4097.         F9h setipal
  4098.         FAh setborder
  4099.         FBh inqcrange
  4100.         FEh setclip
  4101.         FFh fcir
  4102.            100h setcrange
  4103.            101h setdrange
  4104.            102h setlattr
  4105.            103h polycabs
  4106.            104h polycrel
  4107.            108h memcom
  4108.            109h memexp
  4109.            10Ah memmov
  4110.            10Eh movefx
  4111.            10Fh movetx
  4112.            110h inqrgb
  4113.            111h save image
  4114.            112h restore image
  4115.            113h setapal
  4116.            114h setxpal
  4117.            118h inqtsize
  4118.            12Eh gprint
  4119.            130h setprn
  4120.            131h setpattr
  4121.            133h setbattr
  4122.            135h pexpand
  4123.            136h ptnorm
  4124.            137h pfnorm
  4125.            13Bh inqprn
  4126.            13Ch lopen
  4127.            13Dh lclose
  4128.            13Eh lappend
  4129.            13Fh lrecord
  4130.            140h lswitch
  4131.            142h inqfun
  4132.            15Dh lsetup
  4133.            15Eh lrest
  4134.            15Fh lsave
  4135.     additional parameters on stack
  4136. Return: ???
  4137. Program: Halo88 is a suite of graphics routines
  4138. Note:    according to Stuart Kemp, the code appears to make no provisions for
  4139.        chaining
  4140. --------N-7F---------------------------------
  4141. INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
  4142.     AL = request ID
  4143.         01h "Request"/"RequestDirect"
  4144.         ES:BX -> pRq
  4145.         DX ignored
  4146.         04h "Wait"
  4147.         ES:BX -> ppMsgRet
  4148.         DX = exchange
  4149.         05h "AllocExch"
  4150.         ES:BX -> pExchRet
  4151.         06h "DeAllocExch"
  4152.         DX = exchange
  4153.         07h "Check"
  4154.         ES:BX -> ppMsgRet
  4155.         DX = exchange
  4156.     CX = 4354h ('CT')
  4157. Return: AX = status
  4158.         0000h successful
  4159. --------S-7F---------------------------------
  4160. INT 7F - Telebit ACS SERIAL I/O
  4161.     ES:SI-> parameter block
  4162. Return: CF set on error
  4163.     CF clear on success
  4164. Notes:    the signature "PDGATEWRKSTNIF" appears just prior to the interrupt
  4165.       handler; this serves as the installation check
  4166. Index:    installation check;Telebit ACS Serial I/O
  4167.  
  4168. Format of Telebit ACS parameter block:
  4169. Offset    Size    Description
  4170.  00h    BYTE    command (see below)
  4171.  01h    BYTE    gateway number
  4172.  02h    BYTE    reserved
  4173.  03h    BYTE    port
  4174.  04h 17 BYTEs    auxiliary buffer
  4175.  15h    BYTE    session
  4176.  16h    WORD    count of bytes passed to API
  4177.  18h    DWORD    buffer pointer passed to/from API
  4178.  1Ch    WORD    count of bytes passed from API
  4179.  1Eh    BYTE    return code (see below)
  4180.  
  4181. Values for command:
  4182.  3Ch    status
  4183.  3Dh    connect
  4184.  3Eh    disconnect
  4185.  3Fh    read
  4186.  40h    data/command write
  4187.  41h    clear receive buffer
  4188.  42h    get configuration
  4189.  43h    get receiver status
  4190.  44h    raw write
  4191.  45h    search servers
  4192.  46h    set transmit buffer size
  4193.  
  4194. Values for return code:
  4195.  00h    success
  4196.  01h    invalid session
  4197.  05h    servername invalid
  4198.  06h    NetWare fileserver bindery is locked
  4199.  07h    communication server not active
  4200.  08h    general failure in NetWare fileserver
  4201.  09h    not logged into a fileserver
  4202.  10h    connection table full
  4203.  11h    no response from communication server
  4204.  12h    connection attempt terminated abnormally
  4205.  13h    connection refused - no sessions available
  4206.  14h    gateway number/port already in use
  4207.  15h    invalid connection response
  4208.  16h    port invalid
  4209.  17h    incorrect version in server response
  4210.  18h    gateway number/port combination not configured
  4211.  19h    initialization has not been completed
  4212.  20h    no more sockets are available
  4213.  21h    no active poolname
  4214.  23h    FATAL internal interface error
  4215.  24h    registration of host workstation failed - name is already in use
  4216.  25h    registration of host workstation failed - workstation name table full
  4217.  26h    registration of host workstation failed - only one session may be
  4218.       registered for dial-in
  4219.  FFh    Telebit ACS API is busy - retry later
  4220. --------N-7F---------------------------------
  4221. INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE
  4222. Notes:    the installation check consists of checking for the signature "Lynn"
  4223.       in the four bytes preceding the interrupt handler; if present, the
  4224.       current program is running as a DOS task on a non-dedicated NetWare
  4225.       2.x file server.
  4226.     Before placing the server into "console" mode, it is recommended that
  4227.       NetWare broadcast messages be disabled with INT 21/AX=DE00h.
  4228. SeeAlso: INT 21/AX=DE00h
  4229. Index:    installation check;non-dedicated NetWare server
  4230. --------S-7F---------------------------------
  4231. INT 7F U - YTERM - ???
  4232. SeeAlso: INT 7E"YTERM"
  4233. --------E-7F---------------------------------
  4234. INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7
  4235. Note:    this vector is overwritten when GO32 starts but is not restored by
  4236.       early versions of the DOS extender
  4237. SeeAlso: INT 0F,INT 7E"GO32"
  4238. ----------7F---------------------------------
  4239. INT 7F - Canon IXHND2 Scanner Interface
  4240. --------N-7F---------------------------------
  4241. INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)
  4242. Notes:    the words at C800h:0000h and C800h:0002h will both be 584Eh if the
  4243.       MW386 multitasking system is present (i.e. signature "NXNX")
  4244.     NTNX allows its API to be placed on a different interrupt than 7Fh at
  4245.       load time.  To determine the actual vector used, open the device
  4246.       "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with
  4247.       INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will
  4248.       be the actual interrupt number being used; the other interrupts may
  4249.       be found with INT 7F/AH=09h/CL=03h
  4250. --------N-7F---------------------------------
  4251. INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK
  4252. Note:    a program may determine that it is running on an ANSK Slave by checking
  4253.       the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this
  4254.       address is RAM, and should not be written.  However, the above check
  4255.       will not work on Slaves with <1MB RAM or those using the SLIM.SYS
  4256.       device driver
  4257. --------N-7F00-------------------------------
  4258. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
  4259.     AH = 00h
  4260.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  4261. Return: AL = status (see below)
  4262.     AH = semaphore owner if status=02h
  4263. SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h
  4264.  
  4265. Values for status:
  4266.  00h    successful
  4267.  01h    invalid function
  4268.  02h    semaphore already locked
  4269.  03h    unable to lock/unlock semaphore
  4270.  04h    semaphore space exhausted
  4271.  05h    host/target PC did not respond (NTNX)
  4272. --------N-7F00-------------------------------
  4273. INT 7F - G8BPQ - proposed addition - GET NODE/SWITCH VERSION AND DESCRIPTION
  4274.     AH = 00h
  4275.     ES:SI -> buffer for "USERS" text string
  4276. Return: AH = major version
  4277.     AL = minor version
  4278.     CX = length of returned string
  4279. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  4280.       John Wiseman which allows a PC to act as a node in an AX.25 network
  4281. SeeAlso: AH=01h"G8BPQ",AH=09h"G8BPQ"
  4282. --------N-7F01-------------------------------
  4283. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
  4284.     AH = 01h
  4285.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  4286. Return: AL = status (see AH=00h)
  4287.     AH = semaphore owner if status=02h
  4288. SeeAlso: AH=00h,AH=02h,AH=41h
  4289. --------V-7F01-------------------------------
  4290. INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS
  4291.     AH = 01h
  4292. Return: BX = 1234h if installed
  4293.         DX:AX -> array of FAR entry points
  4294.         CH = driver major version
  4295.         CL = driver minor version
  4296. Note:    TIGACD 2.05 returns CF set on unrecognized functions in AX
  4297. SeeAlso: AX=1234h,AX=4321h
  4298. --------N-7F01-------------------------------
  4299. INT 7F - G8BPQ v4.00+ - HOST MODE - SET APPLICATION FLAGS AND MASK
  4300.     AH = 01h
  4301.     AL = stream number (01h-40h)
  4302.     CL = new application flags
  4303.         bit 7: monitored frames available via AH=0Bh"G8BPQ"
  4304.     DL = new application mask
  4305. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  4306.       John Wiseman which allows a PC to act as a node in an AX.25 network
  4307. Note:    INT 7Fh is the default, which may be changed in the configuration file
  4308.       for v4.03+
  4309. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=0Bh"G8BPQ"
  4310. --------I-7F0104BX0000-----------------------
  4311. INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)
  4312.     AX = 0104h (HLLAPI gate ID)
  4313.     BX = 0000h
  4314.     DS:SI -> parameter control block (see below)
  4315. Return: parameter control block updated
  4316. SeeAlso: AX=0105h,AX=ABCDh
  4317.  
  4318. Format of parameter control block:
  4319. Offset    Size    Description
  4320.  00h  3 BYTEs    signature = 'PCB'
  4321.  03h    BYTE    function number (see below)
  4322.  04h    WORD    segment of control string
  4323.  06h    WORD    offset of control string
  4324.  08h    WORD    length of control string, unless explicit end-of-str char set
  4325.  0Ah    BYTE    unused (IBM)
  4326.         ControlString[0] (Rabbit)
  4327.  0Bh    WORD    return code (see below)
  4328.  0Dh    WORD    maximum length of control string (IBM)
  4329.         unused (Rabbit)
  4330.  
  4331. Values for HLLAPI function number:
  4332.  00h    OEM function (Query system for Attachmate implementation)
  4333.  01h    Connect presentation space
  4334.  02h    Disconnect presentation space
  4335.  03h    Send string of keystrokes as if typed from keyboard
  4336.  04h    Wait ~60s, returns status of presentation space
  4337.  05h    Copy current presentation space into a user-defined buffer
  4338.  06h    Search presentation space for first occurrence of a specified string
  4339.  07h    Query cursor location in current presentation space
  4340.  08h    Copy part or all of current presentation space into user buffer
  4341.  09h    Set session parameters; parameters vary by vendor
  4342.  0Ah    Get info on sessions currently connected
  4343.  0Bh    Lock current presentation space
  4344.  0Ch    Unlock previously locked presentation space
  4345.  0Dh    Return copy of operator info area (OIA) of current presentation space
  4346.  0Eh    get attribute byte for given position in the current presentation space
  4347.  0Fh    copy string of characters to the current presentation space
  4348.  10h    workstation control functions
  4349.  11h    storage manager functions, intended primarily for BASIC applications
  4350.     (not implemented by Rabbit)
  4351.  12h    set delay period in half-second intervals
  4352.  14h    get info on level of workstation support used
  4353.  15h    reset session parameters to default values
  4354.  16h    get detailed info on the current session
  4355.  17h    start host notification to application on presentation sp or OIA update
  4356.  18h    check host update when host notification enabled
  4357.  19h    stop host notification
  4358.  1Eh    search field within current presentation space for string
  4359.  1Fh    get first positionof a selected field in the current presentation space
  4360.  20h    get length of specified field
  4361.  21h    copy string into a specified field
  4362.  22h    copy specified field into a user-defined buffer
  4363.  23h    create alternate presentation space (IBM only), don't use with BASIC
  4364.  24h    switch to alternate presentation space (IBM only), not with BASIC
  4365.  25h    display cursor in specified area (IBM only), don't use with BASIC
  4366.  26h    display alternate presentation space (IBM only), don't use with BASIC
  4367.  27h    delete alternate presentation space (IBM only), don't use with BASIC
  4368.  28h    set cursor
  4369.  29h    start Close Intercept
  4370.  2Ah    query Close Intercept
  4371.  2Bh    stop Close Intercept
  4372.  32h    start intercepting keystrokes to allow filtering
  4373.  33h    get keystrokes after turning on interception
  4374.  34h    notify operator when keystroke rejected by filter subroutine
  4375.  35h    stop intercepting keystrokes
  4376.  5Ah    send file
  4377.  5Bh    receive file
  4378.  5Ch    run a program (not implemented by Rabbit)
  4379.  5Dh    execute DOS command (not implemented by Rabbit)
  4380.  63h    change presentation space position to PC display row/col or vice versa
  4381.  65h    connect to Window Services
  4382.  66h    disconnect from Window Services
  4383.  67h    set/query window coordinates
  4384.  68h    set/query window status
  4385.  69h    change presentation space name
  4386.  78h    connect Structured Fields
  4387.  79h    disconnect Structured Fields
  4388.  7Ah    query size of communications buffer
  4389.  7Bh    allocate communications buffer
  4390.  7Ch    free communications buffer
  4391.  7Dh    get request completion state
  4392.  7Eh    read Structured Fields
  4393.  7Fh    write Structured Fields
  4394.  FFh    Get info on DCA implementation
  4395.  
  4396. Values for LLAPI function number:
  4397.  80h    initialize LLAPI (internal call)
  4398.  83h    set Session ID (one-character ID)
  4399.  84h    read Session ID (one-character ID)
  4400.  85h    lock 327x keyboard
  4401.  86h    unlock 327x keyboard
  4402.  87h    wait for Clear to Send
  4403.  88h    type ASCII character
  4404.  89h    type 327x key
  4405.  8Ah    read keyboard lock state
  4406.  8Fh    force screen update
  4407.  90h    view session
  4408.  91h    relinquish (suspend foreground until background becomes idle)
  4409.  92h    poke screen character
  4410.  93h    poke translated character
  4411.  94h    peek screen character
  4412.  95h    peek translated character
  4413.  96h    set cursor position
  4414.  97h    send scan code (Rabbit only)
  4415.  98h    synchronize (returns after keystroke queue empty)
  4416.  99h    type PC key (Rabbit only)
  4417.  
  4418. Session Parameters for function 09h:
  4419.  ASCII        ??? (Rabbit only)
  4420.  ATTRIB        return attributes in hex
  4421.  NOATTRIB    return attributes as blanks
  4422.  CONPHYS    make physical connection
  4423.  CONLOG        only make logical connection
  4424.  EAB        copy extended attribute bytes along with data
  4425.  NOEAB        copy data only
  4426.  ESC=n        set escape character to "n" (default '@')
  4427.  EOT=n        set end of string character (default 00h)
  4428.  FPAUSE        full-duration pause
  4429.  FTNOWAIT    return immediately from functions 5Ah and 5Bh (Rabbit only)
  4430.  FTWAIT        wait for file transfer to complete (Rabbit only)
  4431.  IPAUSE        interruptable pause
  4432.  RABESC        ??? (Rabbit only)
  4433.  NORABESC    ??? (Rabbit only)
  4434.  SCANCODE    ??? (Rabbit only)
  4435.  STRLEN        use explicit string lengths
  4436.  STREOT        use terminated strings
  4437.  SRCHALL    search entire presentation space
  4438.  SRCHFROM    search from specified offset
  4439.  SRCHFRWD    search forward from position 1
  4440.  SRCHBKWD    search backward from last position in presentation space
  4441.  TIMEOUT=n    ??? (Rabbit only)
  4442.  TWAIT        wait specified time for keyboard ready
  4443.  LWAIT        wait until keyboard ready
  4444.  NWAIT        no wait
  4445.  TRON        enable tracing
  4446.  TROFF        disable tracing
  4447.  AUTORESET    send reset before sending keys with function 03h
  4448.  NORESET    don't send reset
  4449.  QUIET        don't display messages sent with INT 21/AH=09h
  4450.  NOQUIET    allow messages to be displayed
  4451.  TIMEOUT=n    set timeout in 30-second intervals, 0 = wait until ^Break
  4452.  XLATE        translate extended attribute bytes
  4453.  NOXLATE    don't translate
  4454.  NEWRET        use HLLAPI v3.0 return code conventions
  4455.  OLDRET        use HLLAPI v2.0 return code conventions
  4456.  
  4457. Values for Windows HLLAPI return code:
  4458.  00h    successful
  4459.  01h    Presentation Space not connected/requested size unavailable
  4460.  02h    invalid function or parameter error/invalid block ID
  4461.  03h    file transfer complete
  4462.  04h    file transfer complete (segmented)/Presentation Space busy
  4463.  05h    inhibited or keyboard locked
  4464.  06h    data truncated
  4465.  07h    invalid Presentation Space position
  4466.  08h    operation not available
  4467.  09h    system error
  4468.  0Ah    blocking error
  4469.  0Bh    resource not available
  4470.  0Ch    session stopped
  4471.  14h    undefined key combination
  4472.  15h    OIA updated
  4473.  16h    Presentation Space updated
  4474.  17h    both Presentation Space and OIA updated
  4475.  18h    no such field
  4476.  19h    no keystrokes available
  4477.  1Ah    Presentation Space or Operator Information Area changed
  4478.  1Bh    file transfer aborted
  4479.  1Ch    zero-length field
  4480.  1Eh    cursor type invalid
  4481.  1Fh    keystroke overflow
  4482.  20h    another application is already connected
  4483.  22h    message sent to host cancelled
  4484.  23h    transmission from host cancelled
  4485.  24h    lost contact with host
  4486.  25h    function successful
  4487.  26h    function incomplete
  4488.  27h    a DDM session is already connected
  4489.  28h    disconnected, but asynchronous requests still pending
  4490.  29h    buffer already in use
  4491.  2Ah    no matching request found
  4492. 12Dh    invalid function number
  4493. 12Eh    file not found
  4494. 131h    access denied
  4495. 134h    out of memory
  4496. 136h    environment invalid
  4497. 137h    format invalid
  4498. 270Eh (9998) invalid Presentation Space ID
  4499. 270Fh (9999) invalid row or column code
  4500. ---Windows HLLAPI extensions---
  4501. F000h    asynchronous call already in progress
  4502. F001h    invalid asynchronous task ID
  4503. F002h    blocking call cancelled
  4504. F003h    underlying subsystem not started
  4505. F004h    unsupported application version
  4506. --------V-7F0105-----------------------------
  4507. INT 7F - HDILOAD.EXE - 8514/A VIDEO CONTROLLER INTERFACE
  4508.     AX = 0105h
  4509. Return: CF set on error
  4510.     CF clear if successful
  4511.         CX:DX -> array of FAR pointers to entry points
  4512. Note:    most functions are invoked by pushing the DWORD parameter block pointer
  4513.       and then performing a FAR call via the appropriate vector of the
  4514.       entry point array
  4515. SeeAlso: AX=0104h,AX=ABCDh
  4516.  
  4517. Function numbers: (do FAR call via entry_points+4*function)
  4518.  08h    HOPEN
  4519.  10h    HINT
  4520.  13h    HLDPAL
  4521.  15h    HBBW
  4522.  17h    HBBR
  4523.  18h    HBBCHN
  4524.  1Dh    HQMODE
  4525.  22h    HCLOSE
  4526.  30h    HINIT
  4527.  31h    HSYNC
  4528.  39h    HSPAL
  4529.  3Ah    HRPAL
  4530. --------N-7F02-------------------------------
  4531. INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
  4532.     AH = 02h
  4533.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  4534. Return: AL = status (see AH=00h"NTNX")
  4535.     AH = semaphore owner if status=02h
  4536. SeeAlso: AH=00h,AH=01h,AH=42h
  4537. --------N-7F02-------------------------------
  4538. INT 7F - G8BPQ v4.00+ - HOST MODE - SEND FRAME
  4539.     AH = 02h
  4540.     AL = stream number (01h-40h)
  4541.     CX = length of frame
  4542.     ES:SI -> frame to be sent
  4543. SeeAlso: AH=03h"G8BPQ",AH=07h"G8BPQ",AH=0Ah"G8BPQ"
  4544. --------f-7F0200-----------------------------
  4545. INT 7F - Btrieve Multi-User - GIVE UP TIME???
  4546.     AX = 0200h
  4547. SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve"
  4548. --------N-7F03-------------------------------
  4549. INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER
  4550.     AH = 03h
  4551. Return: AL = user number
  4552.     AH = machine number (MW386)
  4553. Note:    this function call is the recommended method for a CPU-bound process to
  4554.       prevent its priority from being lowered
  4555. SeeAlso: AH=04h,AH=05h,AH=A1h
  4556. --------N-7F03-------------------------------
  4557. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE FRAME
  4558.     AH = 03h
  4559.     AL = stream number (01h-40h)
  4560.     ES:DI -> buffer for frame (must be large enough for a full frame; 350
  4561.           bytes is usually sufficient)
  4562. Return:    BX = number of pending frames (0000h if returned frame was last avail)
  4563.     CX = length of received frame
  4564. SeeAlso: AH=02h"G8BPQ",AH=07h"G8BPQ",AH=0Bh"G8BPQ"
  4565. --------N-7F04-------------------------------
  4566. INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS
  4567.     AH = 04h
  4568. Return: AL = total number of users on currrent machine (MW386)
  4569.     AL = number of slaves on system (NTNX)
  4570. SeeAlso: AH=03h
  4571. --------N-7F04-------------------------------
  4572. INT 7F - G8BPQ v4.00+ - HOST MODE - GET STREAM STATUS
  4573.     AH = 04h
  4574.     AL = stream number (01h-40h)
  4575. Return: CX = state (0000h disconnected, 0001h connected)
  4576.     DX = delta state (0000h no change, 0001h changed since last check)
  4577. SeeAlso: AH=02h"G8BPQ",AH=05h"G8BPQ"
  4578. --------N-7F05-------------------------------
  4579. INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL
  4580.     AH = 05h
  4581.     AL = function
  4582.         00h lock system (disable slave services)
  4583.         01h unlock system
  4584.         02h enable spooler
  4585.         03h disable spooler
  4586.         04h enable slave timer update
  4587.         05h disable slave timer update
  4588.         06h enable form feeds
  4589.         07h disable form feeds
  4590. SeeAlso: INT 17/AH=A4h
  4591. --------N-7F05-------------------------------
  4592. INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
  4593.     AH = 05h
  4594.     DX:DI -> buffer for user information record (see below)
  4595. Notes:    MW386 provides this function for backward compatibility only, and sets
  4596.       many of the fields to zero because they are meaningless under MW386
  4597.     this function has no effect when called by the host (user 0)
  4598. SeeAlso: AH=03h
  4599.  
  4600. Format of user information record:
  4601. Offset    Size    Description
  4602.  00h    WORD    segment of video RAM
  4603.  02h    WORD    segment of secondary copy of video RAM
  4604.  04h    WORD    offset of screen update flag (see INT 10/AH=8Bh)
  4605.         flag nonzero if update needed
  4606.  06h    WORD    video NMI enable port
  4607.         (not used by MW386, set to 0000h)
  4608.  08h    WORD    video NMI disable port
  4609.         (not used by MW386, set to 0000h)
  4610.  0Ah    BYTE    processor type
  4611.         00h 8088
  4612.         01h V20
  4613.         02h 8086
  4614.         03h V30
  4615.         06h 80386
  4616.  0Bh    WORD    multitasking flag (00h = single tasking, 01h = multitasking)
  4617.         (not used by MW386, set to 0000h)
  4618.  0Dh    WORD    offset of terminal driver
  4619.         (not used by MW386, set to 0000h)
  4620.  0Fh    BYTE    port for console I/O
  4621.         (not used by MW386, set to 0000h)
  4622.  10h    WORD    offset of processor communication busy flag
  4623.         bit 7 set when slave communicating with host
  4624.  12h    WORD    pointer to FAR NX system call
  4625.         (not used by MW386, set to 0000h)
  4626.  14h    WORD    offset of 16-byte user configuration record (see AH=38h)
  4627.  16h    WORD    offset of command/status word
  4628.  18h    WORD    offset of screen valid flag (see INT 10/AH=93h)
  4629.         nonzero if screen must be repainted
  4630.  1Ah    WORD    offset of screen repaint flag
  4631.  1Ch    WORD    pointer to NEAR NX system call
  4632.         (not used by MW386, set to 0000h)
  4633.  1Eh    WORD    offset for intercept flags
  4634.         (not used by MW386, set to 0000h)
  4635.         intercept flag = FFh if MS-DOS intercepts should be disabled
  4636.  20h    WORD    offset of terminal lock flag (see INT 10/AH=92h)
  4637.         lock flag = FFh if backgrnd screen updates should be suspended
  4638.  22h 26 BYTEs    reserved
  4639. --------N-7F05-------------------------------
  4640. INT 7F - G8BPQ v4.00+ - HOST MODE - ACKNOWLEDGE STREAM STATUS CHANGE
  4641.     AH = 05h
  4642.     AL = stream number (01h-40h)
  4643. Note:    this function must be called in order to receive a report of another
  4644.       status change
  4645. SeeAlso: AH=04h"G8BPQ"
  4646. --------N-7F06-------------------------------
  4647. INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO
  4648.     AH = 06h
  4649.     AL = drive number (1=A:, 2=B:, etc)
  4650.     ES:DI -> drive info record (see below)
  4651. Return: AX = status
  4652.         0000h successful
  4653.         ES:DI buffer filled
  4654.         0001h not shared drive
  4655.  
  4656. Format of drive info record:
  4657. Offset    Size    Description
  4658.  00h    WORD    segment of drive IO-REQUEST structure (MS-DOS DPB)
  4659.  02h    WORD    segment of allocation map (owner table)
  4660.         one byte per FAT entry, containing user ID owning that entry
  4661.  04h    WORD    segment of master FAT for drive (copy of FAT on disk)
  4662.  06h    WORD    pointer to configuration file
  4663.  08h    WORD    total number of clusters
  4664.  0Ah    WORD    bytes per sector
  4665.  0Ch    WORD    sectors per cluster
  4666.  0Eh    BYTE    FAT type (0Ch = 12-bit, 10h = 16-bit)
  4667. --------N-7F06-------------------------------
  4668. INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE
  4669.     AH = 06h
  4670.     DL = drive number (1=A:,2=B:,etc)
  4671.     CX = number of clusters to allocate
  4672. Return: AH = status
  4673.         00h successful
  4674.         CX = number of clusters still free
  4675.         10h invalid shared drive request
  4676.         CL = first and second shared drives
  4677.         11h invalid cluster count (must be 01h-FFh)
  4678. --------N-7F06-------------------------------
  4679. INT 7F - G8BPQ v4.00+ - HOST MODE - SESSION CONTROL
  4680.     AH = 06h
  4681.     AL = stream number (01h-40h)
  4682.     CX = subfunction
  4683.         0000h connect to node
  4684.         DL bit 0: use BBS callsign instead of Node Call
  4685.         0001h connect ot node
  4686.         use BBS Call if APPLMASK=1
  4687.         0002h disconnect
  4688.         0003h return user to node
  4689. SeeAlso: AH=01h"G8BPQ",AH=04h"G8BPQ"
  4690. --------N-7F07-------------------------------
  4691. INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
  4692.     AH = 07h
  4693. Return: ES:DI -> shared drive list (see below)
  4694. Note:    MW386 considers all fixed disks to be shared drives; only C and D will
  4695.       be returned as shared
  4696.  
  4697. Format of shared drive list:
  4698. Offset    Size    Description
  4699.  00h    BYTE    string length
  4700.  01h    BYTE    number of shared drives
  4701.  02h  N BYTEs    one byte per shared drive
  4702. --------N-7F07-------------------------------
  4703. INT 7F - G8BPQ v4.00+ - HOST MODE - GET BUFFER COUNTS FOR STREAM
  4704.     AH = 07h
  4705.     AL = stream number (01h-40h)
  4706. Return: BX = number of pending receive frames
  4707.     CX = number of unacknowledged sent frames
  4708.     DX = number of buffers available
  4709. SeeAlso: AH=02h"G8BPQ",AH=03h"G8BPQ"
  4710. --------N-7F08-------------------------------
  4711. INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS
  4712.     AH = 08h
  4713.     CL = function
  4714.         00h get original interrupt vector
  4715.         01h get Network Executive interrrupt
  4716.     AL = interrupt number
  4717.     DX:SI -> DWORD to hold interrupt vector
  4718. Return: AL = status
  4719.         00h successful
  4720.         01h interrupt vector not used by network executive
  4721.         02h invalid subfunction
  4722. Note:    the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h,
  4723.       1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh
  4724. SeeAlso: AH=09h/CL=03h,INT 21/AH=35h
  4725. --------N-7F08--CL02-------------------------
  4726. INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT
  4727.     AH = 08h
  4728.     CL = 02h
  4729.     DX = timeout in seconds
  4730. Return: AL = status
  4731.         00h successful
  4732.         02h invalid subfunction
  4733. --------N-7F08-------------------------------
  4734. INT 7F - G8BPQ v4.00+ - HOST MODE - PORT CONTROL/INFORMATION
  4735.     AH = 08h
  4736.     AL = stream number (01h-40h)
  4737. Return: ES:DI -> 10-byte buffer containing blank-padded callsign
  4738.     ---v4.05+ ---
  4739.     AL = radio port to which channel is connected (level 2)
  4740.     AH = session type (see below)
  4741.     BX = L2 paclen for session
  4742.     CX = maximum frame size
  4743.     DX = L4 window size or 0000h if not L4 circuit
  4744. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  4745.       John Wiseman which allows a PC to act as a node in an AX.25 network
  4746. SeeAlso: AH=01h"G8BPQ",AH=02h"G8BPQ",AH=03h"G8BPQ",AH=0Ah"G8BPQ"
  4747.  
  4748. Bitfields for session type:
  4749.  bit 0    L2LINK
  4750.  bit 1    SESSION
  4751.  bit 2    UPLINK
  4752.  bit 3    DOWNLIND
  4753.  bit 5    BPQHOST
  4754. --------T-7F09-------------------------------
  4755. INT 7F - MultiLink Advanced - SET TASK PRIORITY
  4756.     AH = 09h
  4757.     AL = priority (0-7)
  4758. Note:    the installation check consists of ensuring that the interrupt vector
  4759.       is not pointing at segment 0000h, then checking whether the byte
  4760.       at offset 0000h in the interrupt handler's segment is E9h
  4761. Index:    installation check;MultiLink Advanced
  4762. --------N-7F09-------------------------------
  4763. INT 7F - G8BPQ - proposed addition - GET NODE/APPLICATION CALLSIGN AND ALIAS
  4764.     AH = 09h
  4765.     AL = application
  4766.         00h node
  4767.         01h BBS
  4768.         02h HOST
  4769.         03h SYSOP
  4770.     BL = what to get (00h callsign, 01h application name)
  4771.     ES:SI -> buffer for callsign/name string
  4772. Return: CX = length of returned string
  4773. SeeAlso: AH=00h"G8BPQ",AH=01h"G8BPQ",AH=0Ch"G8BPQ"
  4774. --------N-7F09-------------------------------
  4775. INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING
  4776.     AH = 09h
  4777.     CL = function
  4778.         00h enable checking of RTNX.MUD file
  4779.         01h disable RTNX.MUD checking
  4780. --------N-7F09--CL02-------------------------
  4781. INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE
  4782.     AH = 09h
  4783.     CL = 02h
  4784. Note:    in dedicated mode, the host will only poll for I/O requests from the
  4785.       slave processors, and not provide workstation services
  4786. --------N-7F09--CL03-------------------------
  4787. INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT
  4788.     AH = 09h
  4789.     CL = 03h
  4790.     AL = default interrupt number (67h,7Fh,etc)
  4791. Return: CL = actual interrupt which handles specified interrupt's calls
  4792. SeeAlso: AH=08h
  4793. --------N-7F0A--CL00-------------------------
  4794. INT 7F - Alloy NTNX - GET SYSTEM FLAGS
  4795.     AH = 0Ah
  4796.     CL = 00h
  4797.     ES:DI -> buffer for system flags (see below)
  4798. Return: ES:DI buffer filled
  4799. Notes:    on a slave, only the NX_Busy flag is returned
  4800.     all three flags are at fixed positions, so this function only needs to
  4801.       be called once
  4802.     an interrupt handler should only perform DOS or device accesses when
  4803.       all three flags are 00h
  4804.  
  4805. Format of system flags:
  4806. Offset    Size    Description
  4807.  00h    DWORD    pointer to NX_Busy flag (nonzero when communicating with users)
  4808.  04h    DWORD    pointer to device driver busy flag
  4809.  08h    DWORD    pointer to InTimer flag
  4810. --------N-7F0A-------------------------------
  4811. INT 7F - G8BPQ v4.00+ - HOST MODE - TRANSMIT RAW (KISS) FRAME
  4812.     AH = 0Ah
  4813.     AL = radio port
  4814.     ES:SI -> buffer containing data to be sent
  4815.     CX = number of bytes to send
  4816. SeeAlso: AH=02h"G8BPQ",AH=08h"G8BPQ",AH=0Bh"G8BPQ"
  4817. --------N-7F0B--CL02-------------------------
  4818. INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE
  4819.     AH = 0Bh
  4820.     CL = 02h
  4821.     AL = slave ID number
  4822.     CH = DOS to activate
  4823.         00h graphics DOS
  4824.         01h character DOS
  4825. Return: AL = status
  4826.         00h successful
  4827.         01h nothing done, proper DOS type already loaded
  4828. --------N-7F0B-------------------------------
  4829. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE TRACE (RAW DATA) FRAME
  4830.     AH = 0Bh
  4831.     ES:DI -> buffer for received data (see below)
  4832. Return: CX = number of bytes received
  4833. Note:    the specified buffer must be large enough to receive a full frame
  4834. SeeAlso: AH=03h"G8BPQ",AH=08h"G8BPQ",AH=0Ah"G8BPQ"
  4835.  
  4836. Format of received data:
  4837. Offset    Size    Description
  4838.  00h    WORD    internal control information
  4839.  02h    BYTE    port number (bit 7 set if transmitted frame)
  4840.  03h    WORD    frame length including this header
  4841.  05h    var    user data
  4842. --------N-7F0C-------------------------------
  4843. INT 7F - G8BPQ v4.00+ - HOST MODE - UPDATE SWITCH INFORMATION
  4844.     AH = 0Ch
  4845.     DX = function
  4846.         0001h update beacon text
  4847.         CX = length of data
  4848.         ES:SI -> data to be sent in beacons
  4849. SeeAlso: AH=09h"G8BPQ"
  4850. --------N-7F0F-------------------------------
  4851. INT 7F - G8BPQ v4.00+ - HOST MODE - GET TIME MARKER
  4852.     AH = 0Fh
  4853. Return: AX = time marker (clock ticks modulo 64K)
  4854. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  4855.       John Wiseman which allows a PC to act as a node in an AX.25 network
  4856. SeeAlso: AH=01h"G8BPQ",INT 1A/AH=00h
  4857. --------N-7F10--CL00-------------------------
  4858. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL
  4859.     AH = 10h
  4860.     CL = 00h
  4861.     AL = channel number
  4862.     DX:DI -> channel buffer
  4863. Return: AL = status (00h-03h,0Dh) (see below)
  4864. Note:    may not be invoked from within a hardware interrupt handler
  4865. SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h
  4866.  
  4867. Values for status:
  4868.  00h    successful
  4869.  01h    busy
  4870.  02h    channel range error (not 00h-3Fh)
  4871.  03h    invalid subfunction
  4872.  0Ah    channel not open
  4873.  0Ch    channel already locked
  4874.  0Dh    unable to open
  4875. --------N-7F10--CL01-------------------------
  4876. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
  4877.     AH = 10h
  4878.     CL = 01h
  4879.     AL = channel number
  4880. Return: AL = status (00h-03h,0Ah) (see AH=10h/CL=00h)
  4881. Note:    may not be invoked from within a hardware interrupt handler
  4882. SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h
  4883. --------N-7F10--CL02-------------------------
  4884. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
  4885.     AH = 10h
  4886.     CL = 02h
  4887.     AL = channel number
  4888. Return: AL = status (00h-03h,0Ah,0Ch) (see AH=10h/CL=00h)
  4889. Note:    may not be invoked from within a hardware interrupt handler
  4890. SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h
  4891. --------N-7F10--CL03-------------------------
  4892. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
  4893.     AH = 10h
  4894.     CL = 03h
  4895.     AL = channel number
  4896. Return: AL = status (00h-03h,0Ah) (see AH=10h/CL=00h)
  4897. Notes:    should only be used on channels locked with AH=10h/CL=02h, not on those
  4898.       locked by receipt of a datagram
  4899.     may not be invoked from within a hardware interrupt handler
  4900. SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h
  4901. --------N-7F10--CL04-------------------------
  4902. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
  4903.     AH = 10h
  4904.     CL = 04h
  4905.     AL = channel number
  4906. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  4907. Notes:    unlocks buffer after received datagram has been processed
  4908.     may not be invoked from within a hardware interrupt handler
  4909. SeeAlso: AH=10h/CL=00h
  4910. --------N-7F10--CL05-------------------------
  4911. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
  4912.     AH = 10h
  4913.     CL = 05h
  4914. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  4915. Notes:    clears all pending datagrams and clears buffer pointers before closing
  4916.       the channels
  4917.     may not be invoked from within a hardware interrupt handler
  4918. SeeAlso: AH=10h/CL=01h
  4919. --------N-7F10--CL06-------------------------
  4920. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
  4921.     AH = 10h
  4922.     CL = 06h
  4923. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  4924. Note:    may not be invoked from within a hardware interrupt handler
  4925. SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h
  4926. --------N-7F10--CL07-------------------------
  4927. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
  4928.     AH = 10h
  4929.     CL = 07h
  4930. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  4931. Notes:    unlocks all locked channels which have no pending datagrams
  4932.     may not be invoked from within a hardware interrupt handler
  4933. SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h
  4934. --------N-7F10--CL08-------------------------
  4935. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS
  4936.     AH = 10h
  4937.     CL = 08h
  4938.     DX = maximum channel number to lock
  4939. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  4940. Notes:    locks channels numbered 00h through the value in DX
  4941.     may not be invoked from within a hardware interrupt handler
  4942. SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h
  4943. --------N-7F10--CL09-------------------------
  4944. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS
  4945.     AH = 10h
  4946.     CL = 09h
  4947.     DX = maximum channel number to unlock
  4948. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  4949. Notes:    unlocks channels numbered 00h through the value in DX
  4950.     may not be invoked from within a hardware interrupt handler
  4951. SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h
  4952. --------N-7F11-------------------------------
  4953. INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
  4954.     AH = 11h
  4955.     DX:SI -> request block (see below)
  4956. Return: AL = status (see below)
  4957. Note:    if wildcard channel FFh used, actual channel number will be filled in
  4958. SeeAlso: AH=12h
  4959.  
  4960. Values for status:
  4961.  00h    successful
  4962.  01h    busy
  4963.  02h    channel range error (not 00h-3Fh)
  4964.  03h    invalid subfunction
  4965.  0Ah    packet too large (or <2 bytes if NTNX)
  4966.  0Bh    can't send packet to itself
  4967.  0Ch    invalid number of destinations
  4968.  0Dh    destination channel number out of range
  4969.  0Eh    destination user is busy
  4970.  0Fh    destination user has locked channel
  4971.  10h    channel not open
  4972.  11h    no datagram server on destination (NTNX)
  4973.  
  4974. Format of request block:
  4975. Offset    Size    Description
  4976.  00h    DWORD    pointer to packet to send
  4977.  04h    WORD    packet size in bytes (1-4096)
  4978.  06h    BYTE    number of destinations for packet (max 1Fh)
  4979.  07h 31 BYTEs    destination user IDs (FFh = broadcast to all except sender)
  4980.  26h 31 BYTEs    destination channels (FFh = first available channel)
  4981.  45h 31 BYTEs    return destination statuses
  4982. --------N-7F12-------------------------------
  4983. INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM
  4984.     AH = 12h
  4985.     AL = channel number being acknowledged
  4986.     DI:DX = 32-bit status to return to sender
  4987. Return: AL = status (see below)
  4988. Note:    also unlocks the channel, allowing the next datagram to be received
  4989. SeeAlso: AH=11h,AH=15h/CL=04h
  4990.  
  4991. Values for status:
  4992.  00h    successful
  4993.  01h    busy
  4994.  02h    channel range error (not 00h-3Fh)
  4995.  03h    invalid subfunction
  4996.  0Ah    channel not open
  4997.  0Bh    no message in channel
  4998.  0Ch    destination slave busy--retry (NTNX)
  4999.  0Dh    destination user not active
  5000.  0Eh    destination slave not active (NTNX)
  5001.  0Fh    destination disabled datagram service
  5002. --------V-7F1234-----------------------------
  5003. INT 7F - TIGA Communications Driver v2.05 - UNINSTALL
  5004.     AX = 1234h
  5005. SeeAlso: AX=4321h
  5006. --------N-7F13--CL00-------------------------
  5007. INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS
  5008.     AH = 13h
  5009.     CL = 00h
  5010. Note:    clears all pending datagrams and removes all channels opened in NTNX
  5011.       compatibility mode
  5012. --------N-7F14--CL00-------------------------
  5013. INT 7F - Alloy NTNX, MW386 -  SET RECEIVE ISR
  5014.     AH = 14h
  5015.     CL = 00h
  5016.     DX:DI -> application FAR receive service routine (see below)
  5017. Return: AL = status (00h-03h) (see AH=12h)
  5018. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  5019.  
  5020. Service routine called with:
  5021.     DH = sender ID
  5022.     DL = channel with datagram
  5023.     interrupts disabled
  5024. Return: AL = response code
  5025.         00h leave buffer locked, set channel status, and repeat call later
  5026.         01h release channel buffer
  5027.         02h change buffer pointer to DX:DI
  5028.     AH,CX,DX,DI,SI may be destroyed
  5029. --------N-7F14--CL01-------------------------
  5030. INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
  5031.     AH = 14h
  5032.     CL = 01h
  5033.     DX:DI -> application FAR acknowledge service routine (see below)
  5034. Return: AL = status (00h-03h) (see AH=12h)
  5035. Note:    the service routine will be called as soon as an acknowledgment arrives
  5036. SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h
  5037.  
  5038. Service routine called with:
  5039.     DS:SI -> acknowledge structure (see AH=15h/CL=04h)
  5040. Return: AL = response code
  5041.         00h application busy, network executive should call again later
  5042.         01h acknowledge accepted
  5043.     AH,DX,SI may be destroyed
  5044. --------N-7F14--CL02-------------------------
  5045. INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER
  5046.     AH = 14h
  5047.     CL = 02h
  5048.     AL = channel number
  5049.     DX:DI -> receive buffer
  5050. Return: AL = status (00h-03h) (see AH=12h)
  5051. Note:    may be called from within a receive ISR or when a datagram is pending
  5052. SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h
  5053. --------N-7F14--CL03-------------------------
  5054. INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR
  5055.     AH = 14h
  5056.     CL = 03h
  5057. Return: DX:DI -> current receive ISR
  5058. SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h
  5059. --------N-7F14--CL04-------------------------
  5060. INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR
  5061.     AH = 14h
  5062.     CL = 04h
  5063. Return: DX:DI -> current acknowledge ISR
  5064. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  5065. --------N-7F14--CL05-------------------------
  5066. INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
  5067.     AH = 14h
  5068.     CL = 05h
  5069.     DX:DI -> buffer for busy structure (see below)
  5070. Return: DX:DI buffer filled
  5071.  
  5072. Format of busy structure:
  5073. Offset    Size    Description
  5074.  00h    DWORD    pointer to busy flag byte
  5075.  04h    WORD    fixed port address (FF00h)
  5076. --------N-7F15--CL00-------------------------
  5077. INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
  5078.     AH = 15h
  5079.     CL = 00h
  5080.     AL = channel number
  5081.     DX:DI -> status structure (see below)
  5082. Return: AL = status (00h-03h) (see AH=12h)
  5083. SeeAlso: AH=15h/CL=01h
  5084.  
  5085. Format of status structure:
  5086. Offset    Size    Description
  5087.  00h    BYTE    channel status
  5088.         bit 0: channel open
  5089.         bit 1: channel buffer contains received data
  5090.         bit 7: channel locked
  5091.  01h    BYTE    sender ID
  5092. --------N-7F15--CL01-------------------------
  5093. INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
  5094.     AH = 15h
  5095.     CL = 01h
  5096.     DX:DI -> full-channel structure
  5097. Return: AL = status
  5098.         00h successful
  5099.         01h busy
  5100.         0Ah no datagrams available
  5101. Note:    MW386 v1.0 returns the lowest channel with a datagram; newer versions
  5102.       and NTNX return the oldest datagram
  5103. SeeAlso: AH=15h/CL=00h
  5104.  
  5105. Format of full-channel structure:
  5106. Offset    Size    Description
  5107.  00h    BYTE    number of channel with oldest datagram
  5108.  01h    BYTE    sender ID
  5109. --------N-7F15--CL02-------------------------
  5110. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS
  5111.     AH = 15h
  5112.     CL = 02h
  5113. Return: AH = number of channels available (40h for MW386)
  5114. Note:    the application may always assume at least 32 channels available
  5115. SeeAlso: AH=15h/CL=03h
  5116. --------N-7F15--CL03-------------------------
  5117. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE
  5118.     AH = 15h
  5119.     CL = 03h
  5120.     DX:DI -> WORD for return value
  5121. Return: buffer WORD filled with maximum packet size (4096 for MW386)
  5122. SeeAlso: AH=15h/CL=02h
  5123. --------N-7F15--CL04-------------------------
  5124. INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
  5125.     AH = 15h
  5126.     CL = 04h
  5127.     DX:DI -> status structure (see below)
  5128. Return: AL = status
  5129.         00h successful
  5130.         DX:DI structure filled
  5131.         01h busy
  5132.         0Ah no acknowledgement has arrived
  5133. SeeAlso: AH=12h,AH=14h/CL=01h
  5134.  
  5135. Format of status structure:
  5136. Offset    Size    Description
  5137.  00h    BYTE    sender ID
  5138.  01h    BYTE    channel number
  5139.  02h  4 BYTEs    receiver status (see AH=12h)
  5140. --------N-7F16-------------------------------
  5141. INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
  5142.     AH = 16h
  5143.     DX:SI -> transfer structure (see below)
  5144. Return: AL = status
  5145.         00h successful
  5146.         0Ah source or destination out of range
  5147.         0Bh transfer kernal busy--try again
  5148. Notes:    this call transfers memory contents directly between users; both source
  5149.       and destination user IDs may differ from the caller's ID
  5150.     no segment wrap is allowed
  5151.  
  5152. Format of transfer structure:
  5153. Offset    Size    Description
  5154.  00h    WORD    bytes to transfer
  5155.  02h    BYTE    source ID
  5156.         FEh = caller
  5157.  03h    DWORD    source address
  5158.  07h    BYTE    destination ID
  5159.         FFh = all slaves except caller
  5160.         FEh = caller
  5161.  08h    DWORD    destination address
  5162. --------N-7F21-------------------------------
  5163. INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)
  5164.     AH = 21h
  5165.     AL = sender's user ID
  5166.     DS:DX -> control packet (see below)
  5167. Note:    messages or commands are ignored if disabled by the destination user
  5168. SeeAlso: AH=22h
  5169.  
  5170. Format of control packet:
  5171. Offset    Size    Description
  5172.  00h    BYTE    packet type
  5173.         00h message
  5174.         01h NTNX command
  5175.         02h MW386 command
  5176.  01h    BYTE    destination user ID or 'A' for all users
  5177.  02h 62 BYTEs    ASCIZ message (packet type 00h)
  5178.         BIOS keycodes terminated by NUL byte (type 01h) or word (02h)
  5179. Note:    a maximum of 16 keycodes will be processed for NTNX and MW386 commands
  5180. --------N-7F22-------------------------------
  5181. INT 7F - Alloy NTNX - GET MESSAGE
  5182.     AH = 22h
  5183. Return: pending messages displayed on user's screen
  5184. SeeAlso: AH=21h
  5185. --------N-7F24-------------------------------
  5186. INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS
  5187.     AH = 24h
  5188.     CL = function
  5189.         00h attach
  5190.         01h release
  5191.     CH = drive (0=A:,1=B:,etc)
  5192. Return: AX = status
  5193.         00h successful
  5194.         01h invalid request
  5195.         02h already attached
  5196.         03h not attached
  5197.         04h lock table full
  5198. Note:    only drives on the current machine may be attached
  5199. --------N-7F24-------------------------------
  5200. INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
  5201.     AH = 24h
  5202.     CL = function
  5203.         02h attach host
  5204.         03h release host
  5205. Return: AX = status
  5206.         00h successful
  5207.         01h invalid request
  5208.         02h already attached
  5209.         03h not attached
  5210.         04h lock table full
  5211. Note:    the host processor may be attached in order to perform I/O via the host
  5212. --------N-7F25--CL00-------------------------
  5213. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION
  5214.     AH = 25h
  5215.     CL = 00h
  5216. Return: AH = version suffix letter
  5217.     CH = major version number
  5218.     CL = minor version number
  5219. SeeAlso: AH=25h/CL=01h
  5220. --------N-7F25--CL01-------------------------
  5221. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
  5222.     AH = 25h
  5223.     CL = 01h
  5224. Return: CL = type
  5225.         00h RTNX
  5226.         01h ATNX
  5227.         02h NTNX
  5228.         03h BTNX
  5229.         04h MW386
  5230.         05h ANSK
  5231. SeeAlso: AH=25h/CL=00h
  5232. ----------7F2525-----------------------------
  5233. INT 7F - TIGA Communications Driver v2.05 - ???
  5234.     AX = 2525h
  5235.     BX = ???
  5236. Return: ???
  5237. SeeAlso: AX=4321h,AX=5555h
  5238. --------N-7F26--CL00-------------------------
  5239. INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
  5240.     AH = 26h
  5241.     CL = 00h
  5242. Return: AX = file mode bits (see below)
  5243. Note:    MW386 does not support file modes, and always returns AX=001Fh
  5244. SeeAlso: AH=26h,AH=26h/CL=06h
  5245.  
  5246. Bitfields for file mode bits:
  5247.  bit 0    directory protection enabled
  5248.  bit 1    extended open enabled
  5249.  bit 2    flush on every disk write
  5250.  bit 3    flush on every disk write in locked interval
  5251.  bit 4    flush on reads from simultaneously opened file
  5252. --------N-7F26-------------------------------
  5253. INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL
  5254.     AH = 26h
  5255.     CL = check type to set/reset
  5256.         01h directory protection
  5257.         02h extended open
  5258.         03h flush on every disk write
  5259.         04h flush on disk write if any lock set during write
  5260.         05h flush on all reads if file written
  5261.     AL = new state (00h off, 01h on)
  5262. SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h
  5263. --------N-7F26--CL06-------------------------
  5264. INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE
  5265.     AH = 26h
  5266.     CL = 06h
  5267. Note:    cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h
  5268. SeeAlso: AH=26h/CL=00h
  5269. --------N-7F30-------------------------------
  5270. INT 7F - Alloy MW386 - GET PORT INFORMATION
  5271.     AH = 30h
  5272.     CX = MW386 port number
  5273. Return: AL = FFh if port not found
  5274.        else     driver unit number
  5275.            BL = port mode
  5276.            BH = port type
  5277.            02h remote
  5278.            DH = owner's machine ID
  5279.            DL = owner's user ID
  5280. SeeAlso: INT 17/AH=8Bh
  5281. --------N-7F31-------------------------------
  5282. INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
  5283.     AH = 31h
  5284.     ???
  5285. Return: ???
  5286. --------N-7F37-------------------------------
  5287. INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
  5288.     AH = 37h
  5289. Return: ES:AX -> semaphore table
  5290. --------N-7F37-------------------------------
  5291. INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL
  5292.     AH = 37h
  5293.     DS:DX -> ASCIZ string to display
  5294. Note:    if the string is empty, a terminal update will be forced
  5295. --------N-7F38-------------------------------
  5296. INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER
  5297.     AH = 38h
  5298.     AL = new terminal driver number
  5299.         FFh dummy driver
  5300.         FEh current driver
  5301.         FDh load new driver
  5302.         DS:SI -> new driver
  5303. SeeAlso: AH=39h
  5304. --------N-7F39-------------------------------
  5305. INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
  5306.     AH = 39h
  5307.     AL = new terminal driver number
  5308.     DL = user number (FFh = caller)
  5309.     DH = machine number if DL <> FFh
  5310. Return: CF set if invalid user number
  5311.     CF clear if successful
  5312. Notes:    only available to supervisors
  5313.     the new driver number will not take effect until the user is rebooted
  5314. SeeAlso: AH=38h
  5315. --------N-7F3A-------------------------------
  5316. INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS
  5317.     AH = 3Ah
  5318.     DL = user number (FFh = caller)
  5319.     DH = machine number
  5320. Return: CF clear if successful
  5321.         AH = terminal driver number
  5322.         AL = baud rate (00h = 38400, 01h = 19200, etc)
  5323.         CL = parity (00h none, 01h even, 02h odd)
  5324.         CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  5325.     CF set if invalid user number
  5326. SeeAlso: AH=3Bh
  5327. --------N-7F3B-------------------------------
  5328. INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS
  5329.     AH = 3Bh
  5330.     AL = baud rate (00h = 38400, 01h = 19200, etc)
  5331.     CL = parity (00h none, 01h even, 02h odd)
  5332.     CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  5333.     DL = user number (FFh = caller)
  5334.     DH = machine number for user
  5335. Return: CF set if invalid user number
  5336. Notes:    only available to supervisors
  5337.     the new parameters will take effect immediately if the user's terminal
  5338.       has not been started, else AH=3Dh must be called to post the changes
  5339. SeeAlso: AH=3Ah,AH=3Dh
  5340. --------N-7F3C-------------------------------
  5341. INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT
  5342.     AH = 3Ch
  5343.     AL = new state
  5344.          00h disabled, 01h enabled
  5345.     DL = user number (FFh = caller)
  5346.     DH = machine number for user
  5347. Return: CF set if invalid user number
  5348. Note:    only available to supervisors
  5349. SeeAlso: AH=3Dh
  5350. --------N-7F3D-------------------------------
  5351. INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES
  5352.     AH = 3Dh
  5353. Note:    should be called whenever a program changes the terminal type or its
  5354.       parameters
  5355. SeeAlso: AH=3Bh
  5356. --------N-7F41-------------------------------
  5357. INT 7F - Alloy NTNX - LOCK FILE FOR USER
  5358.     AH = 41h
  5359.     AL = user ID
  5360.     DS:DX -> ASCIZ filename
  5361. Return: AL = status
  5362.         00h successful
  5363.         01h invalid function
  5364.         02h already locked
  5365.         03h unable to lock
  5366.         04h lock table full
  5367. Note:    requests exclusive read/write access to file
  5368. SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX"
  5369. --------N-7F41-------------------------------
  5370. INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
  5371.     AH = 41h
  5372.     AL = user ID
  5373.     DS:DX -> ASCIZ semaphore name
  5374. Return: AL = status
  5375.         00h successful
  5376.         01h invalid function
  5377.         02h semaphore already locked
  5378.         03h unable to lock semaphore
  5379.         04h semaphore space exhausted
  5380. SeeAlso: AH=00h,AH=42h"MW386"
  5381. --------N-7F42-------------------------------
  5382. INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
  5383.     AH = 42h
  5384.     AL = user ID
  5385.     DS:DX -> ASCIZ filename
  5386. Return: AL = status
  5387.         00h successful
  5388.         01h invalid function
  5389.         02h already locked
  5390.         03h unable to lock
  5391.         04h lock table full
  5392. SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386"
  5393. --------N-7F42-------------------------------
  5394. INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER
  5395.     AH = 42h
  5396.     AL = user ID
  5397.     DS:DX -> ASCIZ semaphore name
  5398. Return: AL = status
  5399.         00h successful
  5400.         01h invalid function
  5401.         03h unable to unlock semaphore
  5402. SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX"
  5403. ----------7F4321-----------------------------
  5404. INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK
  5405.     AX = 4321h
  5406. Return: AX = 0000h if installed
  5407. Note:    INT 7F is the default, but may be overridden
  5408. SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555h
  5409. --------N-7F4E-------------------------------
  5410. INT 7F - Alloy MW386 v2+ - SET ERROR MODE
  5411.     AH = 4Eh
  5412.     AL = error mode flags
  5413.         bit 0: display critical disk errors
  5414.         bit 1: display sharing errors
  5415.     DX = 4E58h ("NX")
  5416. Return: AL = status
  5417.         00h successful
  5418. SeeAlso: AH=4Fh
  5419. --------N-7F4F-------------------------------
  5420. INT 7F - Alloy MW386 v2+ - SET FCB MODE
  5421.     AH = 4Fh
  5422.     AL = FCB mode
  5423.         02h read/write compatibility
  5424.         42h read/write shared
  5425.     DX = 4E58h ("NX")
  5426. Return: AL = status
  5427.         00h successful
  5428. --------V-7F5555-----------------------------
  5429. INT 7F - TIGA Communications Driver v2.05 - ???
  5430.     AX = 5555h
  5431.     BX = ???
  5432. Return: ???
  5433. SeeAlso: AX=4321h
  5434. --------N-7F81-------------------------------
  5435. INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
  5436.     AH = 81h
  5437.     AL = user ID
  5438.     DS:DX -> ASCIZ device name
  5439. SeeAlso: AH=82h
  5440. --------N-7F82-------------------------------
  5441. INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
  5442.     AH = 82h
  5443.     AL = user ID
  5444.     DS:DX -> ASCIZ device name
  5445. SeeAlso: AH=81h
  5446. --------N-7FA0-------------------------------
  5447. INT 7F - Alloy MW386 - GET USER NAME
  5448.     AH = A0h
  5449.     DL = user number (FFh = caller)
  5450.     DH = machine number for user
  5451.     ES:DI -> 17-byte buffer for ASCIZ user name
  5452. Return: CF set if invalid user number
  5453. SeeAlso: AH=03h,AH=A1h
  5454. --------N-7FA1-------------------------------
  5455. INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER
  5456.     AH = A1h
  5457. Return: AL = process number
  5458.     DL = user number
  5459.     DH = machine number
  5460. SeeAlso: AH=03h,AH=A0h,AH=A2h
  5461. --------N-7FA2-------------------------------
  5462. INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL
  5463.     AH = A2h
  5464.     DL = user number (FFh = caller)
  5465.     DH = machine number for user
  5466. Return: CF clear if successful
  5467.         AL = privilege level
  5468.         00h supervisor
  5469.         01h high
  5470.         02h medium
  5471.         03h low
  5472.     CF set if invalid user number
  5473. SeeAlso: AH=A1h,AH=A3h
  5474. --------N-7FA3-------------------------------
  5475. INT 7F - Alloy MW386 - GET USER LOGIN STATE
  5476.     AH = A3h
  5477.     DL = user number
  5478.     DH = machine number for user
  5479. Return: CF clear if successful
  5480.         AL = login state
  5481.         00h never logged in
  5482.         01h currently logged out
  5483.         03h currently logged in
  5484.     CF set if invalid user number or user not active
  5485. SeeAlso: AH=A2h
  5486. --------N-7FA4-------------------------------
  5487. INT 7F - Alloy MW386 - VERIFY USER PASSWORD
  5488.     AH = A4h
  5489.     DS:DX -> ASCIZ password (null-padded to 16 bytes)
  5490. Return: AL = 00h if accepted
  5491.        else     invalid password
  5492. --------N-7FA500-----------------------------
  5493. INT 7F - Alloy MW386 - GET USER STATUS
  5494.     AX = A500h
  5495.     DI = machine number and user number
  5496. Return: CF clear if successful
  5497.         BX = user flags
  5498.         bit 5: allow messages
  5499.         CL = scan code for task manager hotkey
  5500.         CH = scan code for spooler hotkey
  5501.         DL = scan code for task swapper hotkey
  5502.         DH = modifier key status
  5503.     CF set if invalid user number
  5504. SeeAlso: AX=A501h
  5505. Index:    hotkeys;Alloy MW386
  5506. --------N-7FA501-----------------------------
  5507. INT 7F - Alloy MW386 - SET USER STATUS
  5508.     AX = A501h
  5509.     BX = user flags (see above)
  5510.     CL = scan code for task manager hotkey
  5511.     CH = scan code for spooler hotkey
  5512.     DL = scan code for task swapper hotkey
  5513.     DH = modifier key status
  5514.     DI = machine number and user number
  5515. Return: CF set if invalid user number
  5516. Note:    must have supervisor privilege to set another user's status
  5517. SeeAlso: AX=A500h
  5518. Index:    hotkeys;Alloy MW386
  5519. --------V-7FABCDBX0000-----------------------
  5520. INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY
  5521.     AX = ABCDh
  5522.     BX = 0000h
  5523. Return: AX = total number of functions available
  5524.     ES:BX -> entry point array
  5525. SeeAlso: AX=0104h,AX=0105h
  5526.  
  5527. Function numbers:
  5528.  00h    check initialization and reset
  5529.  14h    set user-defined subroutine
  5530. Notes:    each driver function takes two stack parameters using Pascal calling
  5531.       conventions: address of parameter block and address of results buffer
  5532.     all pointers are FAR pointers
  5533.     on return, AX contains the status of the call:
  5534.         AX = 0000h successful
  5535.          0001h invalid input
  5536.          0002h interface error
  5537.          0003h unable to perform function
  5538.  
  5539. Format of parameter block for function 00h:
  5540. Offset    Size    Description
  5541.  00h    WORD    0000h (function number)
  5542. Note:    this function should be called before any other device driver functions
  5543.  
  5544. Format of results buffer for function 00h:
  5545. Offset    Size    Description
  5546.  00h    WORD    touch screen status
  5547.         0000h unavailable
  5548.         0001h uncalibrated
  5549.         FFFFh available
  5550.  02h    WORD    aux mouse status (0000h not present, FFFFh present)
  5551. Notes:    the following driver parameters will have been reset to zero:
  5552.       touchdown counter, liftoff counter, position at last touch, position
  5553.       at last lift, int call mask, select on count, select off count,
  5554.       pos select on count, pos select off count.
  5555.     the following driver parameters will have been reset as listed:
  5556.       mouse emulation mode: left on
  5557.       thresholds: 46 on screen, 96 push harder, 80 push release
  5558.       x, y hysteresis: 400
  5559.       data repeat rate: 40/sec
  5560.       select mechanism: push-harder - first-touch
  5561.       coordinate origin: upper left corner
  5562.       filter frequency: medium
  5563.       data block mask: all enabled
  5564.       click lock: on
  5565. --------N-7FB0-------------------------------
  5566. INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER
  5567.     AH = B0h
  5568.     AL = user number
  5569.     DS = code segment
  5570. Note:    MW386 ignores AL and DS; it releases all semaphores locked using INT 67
  5571.       or INT 7F locking functions
  5572. SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h
  5573. --------N-7FB1--SF00-------------------------
  5574. INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
  5575.     AH = B1h subfn 00h
  5576.     AL = (bits 7-5) 000
  5577.          (bits 4-0) user ID
  5578. Note:    MW386 ignores AL; it releases all semaphores locked using INT 67 or
  5579.       INT 7F locking functions
  5580. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  5581. --------N-7FB2--SF01-------------------------
  5582. INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
  5583.     AH = B2h subfn 01h
  5584.     AL = (bits 7-5) 001
  5585.          (bits 4-0) user ID
  5586. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h
  5587. --------N-7FB3--SF02-------------------------
  5588. INT 7F - Alloy NTNX - RELEASE FILES FOR USER
  5589.     AH = B3h subfn 02h
  5590.     AL = (bits 7-5) 010
  5591.          (bits 4-0) user ID
  5592. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h
  5593. --------N-7FB4-------------------------------
  5594. INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
  5595.     AH = B4h
  5596.     AL = user ID
  5597. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h
  5598. --------N-7FC3-------------------------------
  5599. INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT
  5600.     AH = C3h
  5601.     AL = byte to write
  5602. Return: CF clear if successful
  5603.     CF set on error
  5604. SeeAlso: AH=C6h
  5605. --------N-7FC5-------------------------------
  5606. INT 7F - Alloy MW386 - CHANGE CONSOLE MODE
  5607.     AH = C5h
  5608.     AL = new console mode
  5609.         00h keyboard indirect
  5610.         01h keyboard direct
  5611.         02h data handshake enforced
  5612.         03h no data handshake
  5613. Return: CF clear if successful
  5614.         AL = prior console mode
  5615.     CF set on error (caller is not remote user)
  5616. Note:    modes 2 and 3 may be used for input through the console port; no video
  5617.       output should be performed in these modes
  5618. --------N-7FC6-------------------------------
  5619. INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT
  5620.     AH = C6h
  5621.     AL = byte to write
  5622. Return: CF clear if successful
  5623.     CF set on error (caller is not remote user)
  5624. Note:    any terminal driver data translation will be bypassed
  5625. SeeAlso: AH=C3h,AH=C7h
  5626. --------N-7FC7-------------------------------
  5627. INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE
  5628.     AH = C7h
  5629. Return: CF clear if successful
  5630.         AL = byte read
  5631.     CF set on error (no data available or caller is not remote user)
  5632. Note:    used to read data after placing console in mode 2 or 3 (see AH=C5h)
  5633. SeeAlso: AH=C5h,AH=C6h,AH=C8h
  5634. --------N-7FC8-------------------------------
  5635. INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER
  5636.     AH = C8h
  5637.     AL = maximum bytes to read
  5638.     ES:DI -> buffer for console data
  5639. Return: CF clear if successful
  5640.         CX = number of bytes read
  5641.     CF set on error (caller is not remote user)
  5642. SeeAlso: AH=C7h
  5643. --------N-7FCF-------------------------------
  5644. INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
  5645.     AH = CFh
  5646.     DS:DX -> ASCIZ string containing user number to be reset
  5647. SeeAlso: AH=D6h
  5648. --------N-7FD6-------------------------------
  5649. INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
  5650.     AH = D6h
  5651.     DS:DX -> reset packet (see below)
  5652. Return: never if successful
  5653. Note:    all users will be shut down immediately if successful
  5654. SeeAlso: AH=CFh
  5655.  
  5656. Format of reset packet:
  5657. Offset    Size    Description
  5658.  00h    DWORD    reset code (60606060h)
  5659.  04h 16 BYTEs    ASCIZ supervisor password padded with nulls
  5660. --------N-7FD7-------------------------------
  5661. INT 7F - Alloy MW386 - POST EVENT
  5662.     AH = D7h
  5663.     AL = user number (if local event)
  5664.     DX = event number
  5665. --------N-7FD8-------------------------------
  5666. INT 7F - Alloy MW386 - FLUSH DISK BUFFERS
  5667.     AH = D8h
  5668. Return: CF set on error
  5669. Note:    forces all disk buffers to be written out immediately
  5670. SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h
  5671. --------N-7FDB-------------------------------
  5672. INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE
  5673.     AH = DBh
  5674. Return: AL = drive from which MW386 was started (2=C:,3=D:,etc)
  5675. --------N-7FE0-------------------------------
  5676. INT 7F - Alloy MW386 - CREATE DOS TASK
  5677.     AH = E0h
  5678.     AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  5679.     DS:DX -> ASCIZ task name (max 16 bytes)
  5680. Return: CF clear if successful
  5681.         AL = task create ID
  5682.     CF set on error
  5683. Note:    only foreground DOS tasks can use this function
  5684. SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h
  5685. --------N-7FE1-------------------------------
  5686. INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID
  5687.     AH = E1h
  5688.     AL = create ID (from AH=E0h)
  5689. Return: AL = DOS process number
  5690.     CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  5691. Note:    this function should not be called immediately after creating a new
  5692.       DOS task, since the new task is being initialized by a concurrent
  5693.       process
  5694. SeeAlso: AH=E0h,AH=E2h
  5695. --------N-7FE2-------------------------------
  5696. INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK
  5697.     AH = E2h
  5698.     AL = DOS process number (from AH=E1h)
  5699. Return: CF set on error (invalid process number or caller not foreground task)
  5700. Notes:    specified task becomes the foreground task and current task is placed
  5701.       in the background
  5702.     may only be called by a foreground task
  5703. SeeAlso: AH=E0h,AH=E1h
  5704. --------N-7FE3-------------------------------
  5705. INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
  5706.     AH = E3h
  5707. ---v1.x---
  5708.     AL = user number
  5709. ---v2+---
  5710.     BH = user number
  5711.     BL = task number
  5712. ---
  5713.     DS:DX -> ASCIZ task name
  5714. Return: CF set on error (invalid process number)
  5715. SeeAlso: AH=E0h,AH=E4h,AH=E5h
  5716. --------N-7FE4-------------------------------
  5717. INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
  5718.     AH = E4h
  5719. ---v1.x---
  5720.     AL = user number
  5721. ---v2+---
  5722.     BH = user number
  5723.     BL = task number
  5724. ---
  5725.     ES:DI -> buffer for task name
  5726. Return: CF clear if successful
  5727.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  5728.         DX = task flags
  5729.         bit 7: MS-DOS process
  5730.         ES:DI buffer filled
  5731.     CF set on error (invalid process number)
  5732. SeeAlso: AH=E3h,AH=E5h
  5733. --------N-7FE5-------------------------------
  5734. INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME
  5735.     AH = E5h
  5736.     DS:DX -> ASCIZ task name
  5737.     BH = user number
  5738. Return: CF clear if successful
  5739.         AL = DOS process number
  5740.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  5741.     CF set on error (no match for name)
  5742. SeeAlso: AH=E3h,AH=E4h
  5743. --------N-7FE6-------------------------------
  5744. INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS
  5745.     AH = E6h
  5746. Return: AX = number of processes available to current user
  5747. SeeAlso: AH=E0h
  5748. --------N-7FE7-------------------------------
  5749. INT 7F - Alloy MW386 - REMOVE DOS TASK
  5750.     AH = E7h
  5751.     AL = DOS process number
  5752. Return: CF set on error (invalid process number or first process)
  5753. Note:    can only be called by a foreground task
  5754. SeeAlso: AH=E0h
  5755. --------N-7FE8-------------------------------
  5756. INT 7F - Alloy MW386 - DOS TASK DELAY
  5757.     AH = E8h
  5758.     CX = delay time in milliseconds
  5759. Note:    a delay of 0 may be used to surrender the current time slice
  5760. SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS"
  5761. SeeAlso: INT 2F/AX=1680h
  5762. --------N-7FF0-------------------------------
  5763. INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP
  5764.     AH = F0h
  5765.     AL = group number
  5766.     DS:DX -> ASCIZ directory name
  5767. Return: CF clear if successful
  5768.         AX = status
  5769.         0002h directory not found
  5770.         0003h directory not found
  5771.         0005h directory in use, cannot be restricted
  5772.         02xxh restricted to group xxh
  5773.     CF set on error
  5774. Note:    the restriction on the directory may be removed by calling this
  5775.       function with group 0, then using AH=F1h to assign the directory to
  5776.       group 0
  5777. SeeAlso: AH=F1h,AH=F2h,AH=F3h
  5778. --------N-7FF1-------------------------------
  5779. INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP
  5780.     AH = F1h
  5781.     AL = group number
  5782.     DS:DX -> ASCIZ directory name
  5783. Notes:    performs permanent assignment to a group; no immediate action is taken
  5784.       unless the directory has been restricted with AH=F0h
  5785.     may be used to restrict a nonexistent directory
  5786. SeeAlso: AH=F0h
  5787. --------N-7FF2-------------------------------
  5788. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY
  5789.     AH = F2h
  5790.     CX = entry number
  5791.     ES:DI -> 64-byte buffer
  5792. Return: CF clear if successful
  5793.         buffer filled with 63-byte directory info and 1-byte group number
  5794.     CF set on error (invalid entry)
  5795. SeeAlso: AH=F0h,AH=F3h
  5796. --------N-7FF3-------------------------------
  5797. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP
  5798.     AH = F3h
  5799.     AL = group number
  5800.     CX = entry number
  5801.     ES:DI -> 64-byte buffer
  5802. Return: CF clear if successful
  5803.         CX = next entry number
  5804.         buffer filled with 63-byte directory info and 1-byte group number
  5805.     CF set on error (no more matching entries)
  5806. Note:    like AH=F2h, but only returns directories belonging to the specified
  5807.       group
  5808. SeeAlso: AH=F2h
  5809. --------N-7FF8-------------------------------
  5810. INT 7F - Alloy MW386 - ASSIGN USER TO GROUP
  5811.     AH = F8h
  5812.     AL = group number
  5813.     DL = user number
  5814.     DH = machine number (currently 00h)
  5815. Return: CF clear if successful
  5816.     CF set on error (user already in maximum number of groups)
  5817. Note:    each user is allowed eight group assignments
  5818. SeeAlso: AH=F9h,AH=FAh
  5819. --------N-7FF9-------------------------------
  5820. INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
  5821.     AH = F9h
  5822.     AL = group number
  5823.     DL = user number
  5824.     DH = machine number (currently 00h)
  5825. Return: CF set if failed
  5826. SeeAlso: AH=F8h,AH=FAh
  5827. --------N-7FFA-------------------------------
  5828. INT 7F - Alloy MW386 - GET USER GROUP LIST
  5829.     AH = FAh
  5830.     DL = user number
  5831.     DH = machine number (currently 00h)
  5832.     ES:DI -> 16-byte buffer for group list
  5833. Return: CX = number of groups
  5834.     ES:DI buffer filled with group numbers
  5835. SeeAlso: AH=F8h,AH=F9h
  5836. --------N-7FFB-------------------------------
  5837. INT 7F - Alloy MW386 - ASSIGN GROUP NAME
  5838.     AH = FBh
  5839.     CL = group number
  5840.     ES:DI -> ASCIZ group name (max 17 bytes)
  5841. SeeAlso: AH=FCh
  5842. --------N-7FFC-------------------------------
  5843. INT 7F - Alloy MW386 - GET GROUP NAME
  5844.     AH = FCh
  5845.     CL = group number
  5846.     ES:DI -> 17-byte buffer for ASCIZ name
  5847. Return: ES:DI buffer filled
  5848. Note:    if the group has not been named, "(unnamed)" is returned
  5849. SeeAlso: AH=FBh
  5850. ----------80---------------------------------
  5851. INT 80 - Q-PRO4 - ???
  5852. --------r-80---------------------------------
  5853. INT 80 - reserved for BASIC
  5854. Note:    this vector and INT 81 through INT ED are modified but not restored by
  5855.       Direct Access v4.0, and may be left dangling by other programs
  5856.       written with the same version of compiled BASIC
  5857. SeeAlso: INT 81"BASIC"
  5858. --------s-80----BX0000-----------------------
  5859. INT 80 - SoundBlaster SBFM driver - GET VERSION
  5860.     BX = 0000h
  5861. Return: ???
  5862. Note:    SBFM installs at a free interrupt in the range 80h through BFh
  5863. SeeAlso: BX=0008h,INT 2F/AX=FBFBh
  5864. --------s-80----BX0001-----------------------
  5865. INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
  5866.     BX = 0001h
  5867.     DX:AX -> music status byte
  5868. SeeAlso: BX=0000h,BX=0002h,BX=0003h
  5869. --------s-80----BX0002-----------------------
  5870. INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
  5871.     BX = 0002h
  5872.     CX = number of instruments
  5873.     DX:AX -> instrument table
  5874. SeeAlso: BX=0000h,BX=0001h,BX=0005h
  5875. --------s-80----BX0003-----------------------
  5876. INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE
  5877.     BX = 0003h
  5878.     AX = clock rate divisor (1193180 / desired frequency in Hertz)
  5879.         FFFFh to restore to 18.2 Hz
  5880. SeeAlso: BX=0000h,BX=0001h,BX=0004h
  5881. --------s-80----BX0004-----------------------
  5882. INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE
  5883.     BX = 0004h
  5884.     AX = driver clock rate divisor (1193180 / frequency in Hertz)
  5885. Note:    default frequency is 96 Hz
  5886. SeeAlso: BX=0000h,BX=0003h
  5887. --------s-80----BX0005-----------------------
  5888. INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
  5889.     BX = 0005h
  5890.     AX = semi-tone offset
  5891. SeeAlso: BX=0000h,BX=0002h,BX=0006h
  5892. --------s-80----BX0006-----------------------
  5893. INT 80 - SoundBlaster SBFM driver - PLAY MUSIC
  5894.     BX = 0006h
  5895.     DX:AX -> music block
  5896. Return: AX = status
  5897.         0000h successful
  5898.         0001h music already active
  5899. SeeAlso: BX=0000h,BX=0007h,BX=000Ah,INT 1A/AX=FF04h
  5900. --------s-80----BX0007-----------------------
  5901. INT 80 - SoundBlaster SBFM driver - STOP MUSIC
  5902.     BX = 0007h
  5903. Return: AX = status
  5904.         0000h successful
  5905.         0001h music not active
  5906. SeeAlso: BX=0000h,BX=0006h,BX=0009h,INT 1A/AX=FF05h
  5907. --------s-80----BX0008-----------------------
  5908. INT 80 - SoundBlaster SBFM driver - RESET DRIVER
  5909.     BX = 0008h
  5910. Return: AX = status
  5911.         0000h successful
  5912.         0001h music is active
  5913. SeeAlso: BX=0000h
  5914. --------s-80----BX0009-----------------------
  5915. INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
  5916.     BX = 0009h
  5917. Return: AX = status
  5918.         0000h successful
  5919.         0001h no music active
  5920. SeeAlso: BX=0000h,BX=0007h,BX=000Ah,INT 1A/AX=FF01h
  5921. --------s-80----BX000A-----------------------
  5922. INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
  5923.     BX = 000Ah
  5924. Return: AX = status
  5925.         0000h successful
  5926.         0001h no music paused
  5927. SeeAlso: BX=0000h,BX=0006h,BX=0009h
  5928. --------s-80----BX000B-----------------------
  5929. INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
  5930.     BX = 000Bh
  5931.     DX:AX -> trap routine
  5932. SeeAlso: BX=0000h
  5933. --------N-8001-------------------------------
  5934. INT 80 - QPC Software PKTINT.COM - INITIALIZE
  5935.     AH = 01h
  5936. Return: AX = 0000h
  5937.     CX = FFFFh
  5938.     DX = FFFFh
  5939. Notes:    this interrupt is the WinQVTNet protected mode interface to Windows 3.0
  5940.     all buffer pointers are reset back to 0
  5941. --------N-8002-------------------------------
  5942. INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES
  5943.     AH = 02h
  5944.     BX = extra bytes to allocate per packet
  5945. Return: AX = segment address of 10K buffer (for receives???)
  5946.     BX = segment address of 2K buffer (for sends???)
  5947. SeeAlso: AH=05h
  5948. --------N-8003-------------------------------
  5949. INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT
  5950.     AH = 03h
  5951. Return: CX:DX -> receive call address
  5952. Note:    the returned address can be used in the packet driver calls since it
  5953.       will be a valid address in all DOS boxes
  5954. SeeAlso: AH=06h
  5955. --------N-8004-------------------------------
  5956. INT 80 - QPC Software PKTINT.COM - ENABLE???
  5957.     AH = 04h
  5958.     BX = ???
  5959. Return: ???
  5960. SeeAlso: AH=01h
  5961. --------N-8005-------------------------------
  5962. INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS
  5963.     AH = 05h
  5964. Return: AX = amount of buffer currently in use
  5965.     BX = current offset in buffer
  5966.     CX = number of times receive has been called
  5967. SeeAlso: AH=02h
  5968. --------N-8006-------------------------------
  5969. INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET
  5970.     AH = 06h
  5971. Return: BX = next packet offset
  5972.     CX = number of bytes still buffered
  5973.     DX = size of packet released back into buffer pool
  5974. SeeAlso: AH=03h
  5975. --------r-81---------------------------------
  5976. INT 81 - reserved for BASIC
  5977. Note:    this vector is modified but not restored by Direct Access v4.0, and
  5978.       may be left dangling by other programs written with the same version
  5979.       of compiled BASIC
  5980. SeeAlso: INT 80"BASIC",INT 82"BASIC"
  5981. --------N-81---------------------------------
  5982. INT 81 - IBM TOKEN RING ADAPTER - ???
  5983. SeeAlso: INT 82"TOKEN RING",INT 91"TOKEN RING"
  5984. --------r-82---------------------------------
  5985. INT 82 - reserved for BASIC
  5986. SeeAlso: INT 81"BASIC",INT 83"BASIC"
  5987. --------N-82---------------------------------
  5988. INT 82 - IBM TOKEN RING ADAPTER - ???
  5989.     AH = function
  5990.         00h display message???
  5991.         DS:BX -> string
  5992.     ???
  5993. Return: ???
  5994. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  5995. --------r-83---------------------------------
  5996. INT 83 - reserved for BASIC
  5997. SeeAlso: INT 82"BASIC",INT 84"BASIC"
  5998. --------r-84---------------------------------
  5999. INT 84 - reserved for BASIC
  6000. SeeAlso: INT 83"BASIC",INT 85"BASIC"
  6001. --------r-85---------------------------------
  6002. INT 85 - reserved for BASIC
  6003. Note:    INT 80 through INT ED are modified but not restored by Direct Access
  6004.       v4.0, and may be left dangling by other programs written with the
  6005.       same version of compiled BASIC
  6006. SeeAlso: INT 84"BASIC",INT 86"BASIC"
  6007. --------N-86---------------------------------
  6008. INT 86 - NetBIOS - ORIGINAL INT 18
  6009. Note:    some implementations of NetBIOS reportedly relocate INT 18 here
  6010. SeeAlso: INT 18
  6011. --------r-86---------------------------------
  6012. INT 86 - IBM ROM BASIC - used while in interpreter
  6013. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6014.     BASIC.COM/BASICA.COM do not restore vector on termination
  6015. SeeAlso: INT 85"BASIC",INT 87"BASIC"
  6016. --------r-86---------------------------------
  6017. INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS
  6018. SeeAlso: INT 21/AH=4Ch,INT 87"APL"
  6019. --------r-87---------------------------------
  6020. INT 87 - IBM ROM BASIC - used while in interpreter
  6021. Notes:    called by ROM BASIC
  6022.     BASIC.COM/BASICA.COM do not restore vector on termination
  6023. SeeAlso: INT 86"BASIC",INT 88"BASIC"
  6024. --------r-87---------------------------------
  6025. INT 87 - APL*PLUS/PC - ???
  6026. SeeAlso: INT 86"APL",INT 88/AL=00h
  6027. --------v-87---------------------------------
  6028. INT 87 - VIRUS - "ZeroHunt" - VIRAL CODE (NOT A VECTOR!)
  6029. Note:    the ZeroHunt virus copies its resident code down to 0000h:021Ch and
  6030.       following
  6031. SeeAlso: INT 8B"VIRUS"
  6032. --------r-88---------------------------------
  6033. INT 88 - IBM ROM BASIC - used while in interpreter
  6034. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6035.     BASIC.COM/BASICA.COM do not restore vector on termination
  6036. SeeAlso: INT 87"BASIC",INT 89"BASIC"
  6037. --------r-88--00-----------------------------
  6038. INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE
  6039.     AL = 00h
  6040.     BX = STPTR of the variable to be assigned
  6041.     ES:SI -> model of type, rank, and shape (see below)
  6042. Return: ES:DI -> first data byte of object
  6043.     DX:CX = number of elements in the object
  6044. SeeAlso: INT C8"APL"
  6045.  
  6046. Format of shape model:
  6047. Offset    Size    Description
  6048.  00h    BYTE    type
  6049.         01h character (2-byte dimension sizes)
  6050.         02h integer (2-byte dimension sizes)
  6051.         08h floating point (2-byte dimension sizes)
  6052.         11h character (4-byte dimension sizes)
  6053.         12h integer (4-byte dimension sizes)
  6054.         18h floating point (4-byte dimension sizes)
  6055.  01h    BYTE    rank
  6056.  02h    WORD/DWORD first dimension of shape
  6057.  N    WORD/DWORD second dimension of shape
  6058.     ...
  6059. --------r-88--01-----------------------------
  6060. INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE
  6061.     AL = 01h
  6062.     AH = rank
  6063.     BX = STPTR of the variable to be assigned
  6064.     CX = first dimension (if any)
  6065.     DX = second dimension (if any)
  6066. Return: ES:DI -> object
  6067.     CX = number of elements in the object
  6068. Note:    each dimension must be 32767 or smaller
  6069. SeeAlso: AL=02h,AL=08h,INT C8"APL"
  6070. --------r-88--02-----------------------------
  6071. INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE
  6072.     AL = 02h
  6073.     AH = rank
  6074.     BX = STPTR of the variable to be assigned
  6075.     CX = first dimension (if any)
  6076.     DX = second dimension (if any)
  6077. Return: ES:DI -> object
  6078.     CX = number of elements in the object
  6079. Note:    each dimension must be 32767 or smaller
  6080. SeeAlso: AL=01h,AL=08h,INT C8"APL"
  6081. --------r-88--08-----------------------------
  6082. INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE
  6083.     AL = 08h
  6084.     AH = rank
  6085.     BX = STPTR of the variable to be assigned
  6086.     CX = first dimension (if any)
  6087.     DX = second dimension (if any)
  6088. Return: ES:DI -> object
  6089.     CX = number of elements in the object
  6090. Note:    each dimension must be 32767 or smaller
  6091. SeeAlso: AL=01h,AL=02h,INT C8"APL"
  6092. --------r-88--F5-----------------------------
  6093. INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL
  6094.     AL = F5h
  6095.     BX = STPTR of object
  6096. SeeAlso: INT C8"APL"
  6097. --------r-88--F6-----------------------------
  6098. INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING
  6099.     AL = F6h
  6100.     BX = STPTR of object
  6101. SeeAlso: AL=F7h,AL=F8h,INT C8"APL"
  6102. --------r-88--F7-----------------------------
  6103. INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING
  6104.     AL = F7h
  6105.     BX = STPTR of object
  6106. SeeAlso: AL=F6h,AL=F8h,INT C8"APL"
  6107. --------r-88--F8-----------------------------
  6108. INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING
  6109.     AL = F8h
  6110.     BX = STPTR of object
  6111. Return: BX = name's status
  6112.         0000h eligible
  6113.         0001h not eligible
  6114. SeeAlso: AL=F6h,AL=F7h,INT C8"APL"
  6115. --------r-88--F9-----------------------------
  6116. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  6117.     AL = F9h
  6118.     ES:SI -> name
  6119.     CX = length of name
  6120. Return: CF set if name ill-formed or already in use
  6121.         BX = STPTR if already in symbol table
  6122.     CF clear if name is available for use
  6123.         BX = 0000h
  6124. Note:    does not force the name into the workspace
  6125. SeeAlso: AL=FEh,AL=FFh,INT C8"APL"
  6126. --------r-88--FC-----------------------------
  6127. INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION
  6128.     AL = FCh
  6129.     BX = amount of memory needed (paragraphs)
  6130. Return: CF clear if memory available
  6131.     CF set if a workspace compaction is required
  6132. SeeAlso: AL=FDh,INT C8"APL"
  6133. --------r-88--FD-----------------------------
  6134. INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY
  6135.     AL = FDh
  6136. Return: BX = number of paragraphs available in workspace
  6137. SeeAlso: AL=FCh,INT C8"APL"
  6138. --------r-88--FE-----------------------------
  6139. INT 88 - APL*PLUS/PC - CREATE NAME
  6140.     AL = FEh
  6141.     ES:SI -> name
  6142.     CX = length of name
  6143. Return: BX = STPTR of name
  6144.     DX = interpreter's data segment
  6145. SeeAlso: AL=F9h,AL=FFh,INT C8"APL"
  6146. --------r-88--FF-----------------------------
  6147. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  6148.     AL = FFh
  6149.     ES:SI -> name
  6150.     CX = length of name
  6151. Return: CF set if name ill-formed or already in use
  6152.         BX = STPTR if already in symbol table
  6153.     CF clear if name is available for use
  6154.         BX = 0000h
  6155. Note:    forces the name into the workspace and makes it immune from outswapping
  6156. SeeAlso: AL=F9h,AL=FEh,INT C8"APL"
  6157. --------r-89---------------------------------
  6158. INT 89 - IBM ROM BASIC - used while in interpreter
  6159. Notes:    called by ROM BASIC
  6160.     BASIC.COM/BASICA.COM do not restore vector on termination
  6161. SeeAlso: INT 88"BASIC",INT 8A"BASIC"
  6162. --------r-8A---------------------------------
  6163. INT 8A - IBM ROM BASIC - used while in interpreter
  6164. Notes:    called by ROM BASIC
  6165.     BASIC.COM/BASICA.COM do not restore vector on termination
  6166. SeeAlso: INT 89"BASIC",INT 8B"BASIC"
  6167. --------r-8A---------------------------------
  6168. INT 8A - APL*PLUS/PC - PRINT SCREEN
  6169. Note:    same as INT 05
  6170. SeeAlso: INT 05,INT 8C"APL",INT CA"APL"
  6171. --------r-8B---------------------------------
  6172. INT 8B - IBM ROM BASIC - used while in interpreter
  6173. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6174.     BASIC.COM/BASICA.COM do not restore vector on termination
  6175. SeeAlso: INT 8A"BASIC",INT 8C"BASIC"
  6176. --------r-8B---------------------------------
  6177. INT 8B - APL*PLUS/PC - BEEP
  6178. Note:    same as printing a ^G via INT 21/AH=02h
  6179. SeeAlso: INT 21/AH=02h,INT CB"APL"
  6180. --------v-8B---------------------------------
  6181. INT 8B - VIRUS - "ZeroHunt" - INSTALLATION CHECK (NOT A VECTOR!)
  6182. Note:    if the ZeroHunt virus is resident, this vector will contain either
  6183.       EE83h:019Bh (ZH-411) or EE83h:019Fh (ZH-415)
  6184. SeeAlso: INT 70"VIRUS",INT 87"VIRUS",INT 9C"VIRUS"
  6185. --------r-8C---------------------------------
  6186. INT 8C - IBM ROM BASIC - used while in interpreter
  6187. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6188.     BASIC.COM/BASICA.COM do not restore vector on termination
  6189. --------r-8C---------------------------------
  6190. INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY
  6191.     AX = flag
  6192.         0000h do not save display attributes
  6193.         0001h save attributes
  6194. SeeAlso: INT CC"APL"
  6195. --------r-8D---------------------------------
  6196. INT 8D - IBM ROM BASIC - used while in interpreter
  6197. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6198.     BASIC.COM/BASICA.COM do not restore vector on termination
  6199. --------r-8E---------------------------------
  6200. INT 8E - IBM ROM BASIC - used while in interpreter
  6201. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6202.     BASIC.COM/BASICA.COM do not restore vector on termination
  6203. --------r-8F---------------------------------
  6204. INT 8F - IBM ROM BASIC - used while in interpreter
  6205. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6206.     BASIC.COM/BASICA.COM do not restore vector on termination
  6207. --------r-90---------------------------------
  6208. INT 90 - IBM ROM BASIC - used while in interpreter
  6209. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6210.     BASIC.COM/BASICA.COM do not restore vector on termination
  6211. --------r-90---------------------------------
  6212. INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER
  6213. --------r-91---------------------------------
  6214. INT 91 - IBM ROM BASIC - used while in interpreter
  6215. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6216.     BASIC.COM/BASICA.COM do not restore vector on termination
  6217. --------N-91---------------------------------
  6218. INT 91 - IBM TOKEN RING ADAPTER - ???
  6219. SeeAlso: INT 81"TOKEN RING",INT 82"TOKEN RING",INT 93"TOKEN RING"
  6220. --------r-92---------------------------------
  6221. INT 92 - IBM ROM BASIC - used while in interpreter
  6222. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6223.     BASIC.COM/BASICA.COM do not restore vector on termination
  6224. --------N-92---------------------------------
  6225. INT 92 - Sangoma X.25 INTERFACE PROGRAM
  6226.     BX:DX -> control block
  6227. SeeAlso: INT 68"Sangoma"
  6228. --------e-92E1-------------------------------
  6229. INT 92 - Da Vinci eMail Dispatcher INTERFACE
  6230.     AH = E1h
  6231.     AL = function
  6232.     BX = stack count (number of words to push)
  6233.     CX:DX -> stack data (in word-reversed order ready to push)
  6234. Return: AX = status (see below)
  6235. Note:    preserves BP, DS, SI, DI; other registers may be destroyed
  6236.  
  6237. Values for status:
  6238.  0001h    success
  6239.  FF97h    "ERS_NOT_AVAILABLE"
  6240.  FF99h    "ERS_TOO_MANY_NAMES"
  6241.  FF9Ah    "ERS_BAD_NAME_PASSWORD"
  6242.  FFE3h    "ERS_NAME_NOT_FOUND"
  6243.  FFF8h    "ERS_USE_STRING" (call NetGetError to get error string)
  6244.  FFFFh    "ERS_NO_SUCH_FILE"
  6245. --------e-92E100-----------------------------
  6246. INT 92 - Da Vinci eMail Dispatcher - "NetInitStart"
  6247.     AX = E100h
  6248.     BX = size of parameter block in words (000Ah)
  6249.     CX:DX -> parameter block (see below)
  6250. Return: AX = 0001h success
  6251. Desc:    this function is used to initialize the dispatcher
  6252. SeeAlso: AX=E101h,AX=E103h
  6253.  
  6254. Format of parameter block:
  6255. Offset    Size    Description
  6256.  00h    WORD    segment of ???
  6257.  02h    WORD    offset of ???
  6258.  04h    WORD    high part of long ???
  6259.  06h    WORD    low part of long ???
  6260.  08h    WORD    high part of long ???
  6261.  0Ah    WORD    low part of long ???
  6262.  0Ch    WORD    high part of long ???
  6263.  0Eh    WORD    low part of long ???
  6264.  10h    WORD    high part of long ???
  6265.  12h    WORD    low part of long ???
  6266. --------e-92E101BX0000-----------------------
  6267. INT 92 - Da Vinci eMail Dispatcher - "NetInitCheck"
  6268.     AX = E101h
  6269.     BX = 0000h
  6270.     CX:DX ignored
  6271. Return: AX = 0001h success
  6272. SeeAlso: AX=E100h,AX=E180h
  6273. --------e-92E102BX0000-----------------------
  6274. INT 92 - Da Vinci eMail Dispatcher - "NetCheckDriver"
  6275.     AX = E102h
  6276.     BX = 0000h
  6277.     CX:DX ignored
  6278. Return: AX = 0001h success
  6279. Desc:    this function is used to determine if the dispatcher is loaded
  6280. SeeAlso: AX=E10Bh,AX=E180h
  6281. --------e-92E103BX0000-----------------------
  6282. INT 92 - Da Vinci eMail Dispatcher - "NetTerminate"
  6283.     AX = E103h
  6284.     BX = 0000h
  6285.     CX:DX ignored
  6286. Return: AX = status (see AH=E1h)
  6287. SeeAlso: AX=E100h
  6288. --------e-92E104-----------------------------
  6289. INT 92 - Da Vinci eMail Dispatcher - "NetWhereIs"
  6290.     AX = E104h
  6291.     BX = size of parameter block in words (0006h)
  6292.     CX:DX -> parameter block (see below)
  6293. Return: AX = status (see AH=E1h)
  6294. Desc:    this function is used to verify node address for usernames
  6295. SeeAlso: AX=E180h
  6296.  
  6297. Format of parameter block:
  6298. Offset    Size    Description
  6299.  00h    WORD    segment of node address buffer
  6300.  02h    WORD    offset of node address buffer
  6301.  04h    WORD    segment of uppercase username
  6302.  06h    WORD    offset of uppercase username
  6303.  08h    WORD    segment of "DVSEMAIL"
  6304.  0Ah    WORD    offset of "DVSEMAIL"
  6305. --------e-92E105-----------------------------
  6306. INT 92 - Da Vinci eMail Dispatcher - "NetOpen"
  6307.     AX = E105h
  6308.     BX = size of parameter block in words (0007h)
  6309.     CX:DX -> parameter block (see below)
  6310. Return: AX = 0000h Error
  6311.     AX = handle
  6312. Desc:    this function is used to open a submission channel
  6313. SeeAlso: AX=E10Ah,AX=E106h,AX=E108h
  6314.  
  6315. Format of parameter block:
  6316. Offset    Size    Description
  6317.  00h    WORD    operation (1 = read, 2 = write)
  6318.  02h    WORD    segment of uppercase To: username
  6319.  04h    WORD    offset of uppercase To: username
  6320.  06h    WORD    segment of "DVSEMAIL"
  6321.  08h    WORD    offset of "DVSEMAIL"
  6322.  0Ah    WORD    segment of node address
  6323.  0Ch    WORD    offset of node address
  6324. --------e-92E106BX0004-----------------------
  6325. INT 92 - Da Vinci eMail Dispatcher - "NetRead"
  6326.     AX = E106h
  6327.     BX = 0004h
  6328.     CX:DX -> parameter block
  6329. Return: AX = 0001h
  6330. SeeAlso: AX=E108h
  6331. --------e-92E107BX0002-----------------------
  6332. INT 92 - Da Vinci eMail Dispatcher - "NetGetError"
  6333.     AX = E107h
  6334.     BX = 0002h
  6335.     CX:DX -> parameter block
  6336. Return: AX = 0001h
  6337. SeeAlso: AX=E109h,AX=E180h
  6338. --------e-92E108-----------------------------
  6339. INT 92 - Da Vinci eMail Dispatcher - "NetWrite"
  6340.     AX = E108h
  6341.     BX = size of parameter block in words (0004h)
  6342.     CX:DX -> parameter block (see below)
  6343. Return: AX = amount written
  6344. Desc:    This function is used to write transactions to the dispatcher.
  6345.       The command block is written first and then another call is used
  6346.       to write the associated data.
  6347. SeeAlso: AX=E106h
  6348.  
  6349. Format of parameter block:
  6350. Offset    Size    Description
  6351.  00h    WORD    buffer count
  6352.  02h    WORD    segment of command buffer
  6353.  04h    WORD    offset of command buffer
  6354.  06h    WORD    handle from NetOpen
  6355.  
  6356. Format of command buffer:
  6357. Offset    Size    Description
  6358.  00h    BYTE    command
  6359.         21h '!' Protocol commands for remote control
  6360.         41h 'A' Authorization protocol element
  6361.         42h 'B' Return(back) routing information
  6362.             Associated data is the From: username
  6363.         43h 'C' Carbon Copy list
  6364.             Associated data is a comma delimitted list of usernames
  6365.         44h 'D' Distribution list
  6366.             Associated data is a comma delimitted list of usernames
  6367.         45h 'E' Mail end marker
  6368.             No associated data
  6369.         48h 'H' Mail message header
  6370.             Associated data is a message header buffer
  6371.         4Dh 'M' Mail message
  6372.             Associated data is the body of the message
  6373.         4Fh 'O' Object
  6374.         50h 'P' Paperclip attachment
  6375.         52h 'R' Routing information
  6376.             Associated data is the To: username
  6377.         53h 'S' Subject
  6378.             Associated data is the subject of the message
  6379.         54h 'T' Trail of Reply/Forwards
  6380.  01h    BYTE    subcommand
  6381.  02h    DWORD    length of associated data
  6382.  
  6383. Format of message header buffer:
  6384. Offset    Size    Description
  6385.  00h 30 BYTEs    subject line
  6386.  1Eh 24 BYTEs    To
  6387.  36h 24 BYTEs    From
  6388.  4Eh    DWORD    Time
  6389.         BYTE    00h
  6390.         BYTE    hour
  6391.         BYTE    minute
  6392.         BYTE    second
  6393.  52h    DWORD    Date
  6394.         BYTE    00h
  6395.         BYTE    year
  6396.         BYTE    month
  6397.         BYTE    day
  6398.  56h    DWORD    serial number (00000000h)
  6399.  5Ah    WORD    mail types (see below)
  6400.  5Ch    WORD    special types (0)
  6401.  
  6402. Bitfields for mail types:
  6403.  bit 7    blind carbon copy
  6404.  bit 6    carbon copy
  6405.  bit 5    priority
  6406.  bit 4    confidential
  6407.  bit 3    certified
  6408.  bit 2    bulk
  6409.  bits 1-0 class (first, second, third, bulk)
  6410. --------e-92E109-----------------------------
  6411. INT 92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED)
  6412.     AX = E109h
  6413.     BX = size of parameter block in words (0001h)
  6414.     CX:DX -> parameter block (see below)
  6415. Return: AX = FF97h (ERS_NOT_AVAILABLE)
  6416. SeeAlso: AX=E107h,AX=E180h
  6417.  
  6418. Format of parameter block:
  6419. Offset    Size    Description
  6420.  00h    WORD    ???
  6421. --------e-92E10A-----------------------------
  6422. INT 92 - Da Vinci eMail Dispatcher - "NetClose"
  6423.     AX = E10Ah
  6424.     BX = size of parameter block in words (0001h)
  6425.     CX:DX -> parameter block (see below)
  6426. Return: AX = 0001h
  6427. Desc:    this function is used to close a dispatcher handle
  6428. SeeAlso: AX=E105h
  6429.  
  6430. Format of parameter block:
  6431. Offset    Size    Description
  6432.  00h    WORD    handle from NetOpen
  6433. --------e-92E10B-----------------------------
  6434. INT 92 - Da Vinci eMail Dispatcher - "NetCheckQueue"
  6435.     AX = E10Bh
  6436.     BX = size of parameter block in words (0004h)
  6437.     CX:DX -> parameter block (see below)
  6438. Return: AX = 0001h
  6439. SeeAlso: AX=E102h,AX=E10Ch
  6440.  
  6441. Format of parameter block:
  6442. Offset    Size    Description
  6443.  00h    WORD    segment of 24-byte username buffer
  6444.  02h    WORD    offset of 24-byte username buffer
  6445.  04h    WORD    segment of 24-byte protocol buffer
  6446.  06h    WORD    offset of 24-byte protocol buffer
  6447. --------e-92E10C-----------------------------
  6448. INT 92 - Da Vinci eMail Dispatcher - "NetReadQueue"
  6449.     AX = E10Ch
  6450.     BX = size of parameter block in words (0002h)
  6451.     CX:DX -> parameter block (see below)
  6452. Return: AX = 0001h
  6453. SeeAlso: AX=E10Bh
  6454.  
  6455. Format of parameter block:
  6456. Offset    Size    Description
  6457.  00h    WORD    Segment of 128 byte node address buffer
  6458.  02h    WORD    Offset of 128 byte node address buffer
  6459. --------e-92E10D-----------------------------
  6460. INT 92 - Da Vinci eMail Dispatcher - "NetSubmitName"
  6461.     AX = E10Dh
  6462.     BX = size of parameter block in words (0006h)
  6463.     CX:DX -> parameter block (see below)
  6464. Return: AX = status (see AH=E1h)
  6465. Desc:    this function is used to verify username/password
  6466. SeeAlso: AX=E10Eh
  6467.  
  6468. Format of parameter block:
  6469. Offset    Size    Description
  6470.  00h    WORD    segment of uppercase password string
  6471.  02h    WORD    offset of uppercase password string
  6472.  04h    WORD    segment of uppercase username string
  6473.  06h    WORD    offset of uppercase username string
  6474.  08h    WORD    segment of "DVSEMAIL"
  6475.  0Ah    WORD    offset of "DVSEMAIL"
  6476. --------e-92E10E-----------------------------
  6477. INT 92 - Da Vinci eMail Dispatcher - "NetRemoveName"
  6478.     AX = E10Eh
  6479.     BX = size of parameter block in words (0004h)
  6480.     CX:DX -> parameter block (see below)
  6481. Return: AX = 0001h
  6482. Desc:    this function is used to remove a username
  6483. SeeAlso: AX=E10Dh
  6484.  
  6485. Format of parameter block:
  6486. Offset    Type    Description
  6487.  00h    WORD    segment of uppercase username
  6488.  02h    WORD    offset of uppercase username
  6489.  04h    WORD    segment of "DVSEMAIL"
  6490.  06h    WORD    offset of "DVSEMAIL"
  6491. --------e-92E10FBX0000-----------------------
  6492. INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY
  6493.     AX = E10Fh
  6494.     BX = 0000h
  6495.     CX:DX ignored
  6496. Return: AX = 0001h
  6497. SeeAlso: AX=E180h
  6498. --------e-92E110-----------------------------
  6499. INT 92 - Da Vinci eMail Dispatcher - "NetGetAltRoute"
  6500.     AX = E110h
  6501.     BX = size of parameter block in words (0006h)
  6502.     CX:DX -> parameter block (see below)
  6503. Return: AX = 0001h
  6504. SeeAlso: AX=E111h,AX=E113h
  6505.  
  6506. Format of parameter block:
  6507. Offset    Size    Description
  6508.  00h  6 WORDs    ???
  6509. --------e-92E111-----------------------------
  6510. INT 92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes"
  6511.     AX = E111h
  6512.     BX = size of parameter block in words (0004h)
  6513.     CX:DX -> parameter block (see below)
  6514. Return: AX = 0001h
  6515. SeeAlso: AX=E110h,AX=E113h
  6516.  
  6517. Format of parameter block:
  6518. Offset    Size    Description
  6519.  00h  4 WORDs    ???
  6520. --------e-92E112-----------------------------
  6521. INT 92 - Da Vinci eMail Dispatcher - "NetChangePassword"
  6522.     AX = E112h
  6523.     BX = size of parameter block in words (0008h)
  6524.     CX:DX -> parameter block (see below)
  6525. Return: AX = 0001h
  6526. SeeAlso: AX=E180h
  6527.  
  6528. Format of parameter block:
  6529. Offset    Size    Description
  6530.  00h  8 WORDs    ???
  6531. --------e-92E113-----------------------------
  6532. INT 92 - Da Vinci eMail Dispatcher - "NetSetAltRoute"
  6533.     AX = E113h
  6534.     BX = size of parameter block in words (0008h)
  6535.     CX:DX -> parameter block (see below)
  6536. Return: AX = 0001h
  6537. SeeAlso: AX=E110h,AX=E111h
  6538.  
  6539. Format of parameter block:
  6540. Offset    Size    Description
  6541.  00h  8 WORDs    ???
  6542. --------e-92E175-----------------------------
  6543. INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR
  6544.     AX = E175h
  6545. Return: AX = 0012h
  6546.     BX = PSP
  6547. SeeAlso: AX=E180h
  6548. --------e-92E180-----------------------------
  6549. INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK
  6550.     AX = E180h
  6551. Return: AX = 0012h if installed
  6552.     ES:DX -> '$'-terminated driver information string
  6553. SeeAlso: AX=E102h,AX=E105h,AX=E10Fh,AX=E175h
  6554. --------r-93---------------------------------
  6555. INT 93 - IBM ROM BASIC - used while in interpreter
  6556. Notes:    called by ROM BASIC
  6557.     BASIC.COM/BASICA.COM do not restore vector on termination
  6558. --------N-93---------------------------------
  6559. INT 93 - IBM TOKEN RING ADAPTER - ???
  6560. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  6561. --------r-94---------------------------------
  6562. INT 94 - IBM ROM BASIC - used while in interpreter
  6563. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6564.     BASIC.COM/BASICA.COM do not restore vector on termination
  6565. --------s-94----SI0000-----------------------
  6566. INT 94 u - PCM driver - INITIALIZE SOUND
  6567.     SI = 0000h
  6568.     ES:BX -> parameters
  6569. Return: ???
  6570. Program: PCM.COM is a sound driver for Media Vision's Pro Audio Spectrum
  6571.       sound boards
  6572. Note:    the installation check consists of testing for the signature string
  6573.       "PCMDRIVER" immediately preceding the interrupt handler; the word
  6574.       preceding the signature gives the PCM driver's version
  6575. SeeAlso: SI=0001h,SI=0002h,SI=0003h,SI=0004h,SI=0005h,SI=000Ah
  6576. Index:    installation check;PCM driver|PCM.COM;installation check
  6577. Index:    PCM driver;installation check
  6578. --------s-94----SI0001-----------------------
  6579. INT 94 u - PCM driver - INITIALIZE PCM
  6580.     SI = 0001h
  6581.     ES:BX -> parameters
  6582. Return: ???
  6583. SeeAlso: SI=0000h,SI=0002h,SI=0003h,SI=000Ah
  6584. --------s-94----SI0002-----------------------
  6585. INT 94 u - PCM driver - INITIALIZE PCM INFO
  6586.     SI = 0002h
  6587.     ES:BX -> parameters (see below)
  6588. Return: ???
  6589. SeeAlso: SI=0000h,SI=0001h,SI=0003h,SI=000Ah
  6590.  
  6591. Format of parameters:
  6592. Offset    Size    Description
  6593.  00h    DWORD    rate
  6594.  04h    WORD    channel number
  6595.  06h    WORD    "comp"
  6596.  08h    WORD    "dsize"
  6597. --------s-94----SI0003-----------------------
  6598. INT 94 u - PCM driver - INITIALIZE DMA BUFFER
  6599.     SI = 0003h
  6600.     ES:BX -> parameters (see below)
  6601. Return: ???
  6602. SeeAlso: SI=0000h,SI=000Ah,SI=000Bh
  6603.  
  6604. Format of parameters:
  6605. Offset    Size    Description
  6606.  00h    DWORD    -> DMA buffer
  6607.  04h    WORD    size of DMA buffer
  6608.  06h    WORD    number of divisions
  6609. --------s-94----SI0004-----------------------
  6610. INT 94 u - PCM driver - INITIALIZE USER FUNCTION
  6611.     SI = 0004h
  6612.     ES:BX -> parameters (see below)
  6613. Return: ???
  6614. SeeAlso: SI=0000h,SI=0001h
  6615.  
  6616. Format of parameters:
  6617. Offset    Size    Description
  6618.  00h    DWORD    -> user function
  6619. --------s-94----SI0005-----------------------
  6620. INT 94 u - PCM driver - BEGIN AUDIO PLAY
  6621.     SI = 0005h
  6622. Return: ???
  6623. SeeAlso: SI=0000h,SI=0006h,SI=0007h,SI=0009h
  6624. --------s-94----SI0006-----------------------
  6625. INT 94 u - PCM driver - BEGIN AUDIO RECORD
  6626.     SI = 0006h
  6627. Return: ???
  6628. SeeAlso: SI=0005h,SI=0007h,SI=0009h
  6629. --------s-94----SI0007-----------------------
  6630. INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD
  6631.     SI = 0007h
  6632. Return: ???
  6633. SeeAlso: SI=0005h,SI=0006h,SI=0008h
  6634. --------s-94----SI0008-----------------------
  6635. INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD
  6636.     SI = 0008h
  6637. Return: ???
  6638. SeeAlso: SI=0007h
  6639. --------s-94----SI0009-----------------------
  6640. INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD
  6641.     SI = 0009h
  6642. Return: ???
  6643. SeeAlso: SI=0005h,SI=0006h,SI=0007h
  6644. --------s-94----SI000A-----------------------
  6645. INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA
  6646.     SI = 000Ah
  6647. Return: ???
  6648. SeeAlso: SI=0000h,SI=0001h,SI=0003h
  6649. Index:    uninstall;PCM driver
  6650. --------s-94----SI000B-----------------------
  6651. INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK
  6652.     SI = 000Bh
  6653.     ES:BX -> parameters (see below)
  6654. Return: ???
  6655. SeeAlso: SI=0003h
  6656.  
  6657. Format of parameters:
  6658. Offset    Size    Description
  6659.  00h    DWORD    -> memory block to contain DMA buffer
  6660.  04h    WORD    desired size of DMA buffer
  6661. --------s-94----SI000D-----------------------
  6662. INT 94 u - Media Vision PCM.COM - GET STATUS
  6663.     SI = 000Dh
  6664. Return: AX = status (0000h = waiting) (see below)
  6665.  
  6666. Bitfields for status:
  6667.  bit 0    playing
  6668.  bit 1    recording
  6669.  bit 2    SBplaying
  6670.  bit 3    SBrecording
  6671.  bit 14 SBpaused
  6672.  bit 15 paused
  6673. --------s-94----SI8000-----------------------
  6674. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS
  6675.     SI = 8000h
  6676. Return: DX:AX -> DMA buffer
  6677. Program: PCM.COM is a superset of the standard PCM driver which provides
  6678.       additional functions for fine control of the driver
  6679. Note:    the installation check for the Media Vision PCM.COM "shark" functions
  6680.       consists of testing for the signature "PCM-SHARK" at offset 107h in
  6681.       the INT 94 handler's segment
  6682. SeeAlso: SI=8001h,SI=8004h
  6683. Index:    installation check;Media Vision PCM.COM|PCM.COM;installation check
  6684. Index:    Media Vision PCM.COM;"shark" functions
  6685. --------s-94----SI8001-----------------------
  6686. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER SIZE AND DIVISIONS
  6687.     SI = 8001h
  6688. Return: AX = DMA buffer size
  6689.     DX = divisions
  6690. SeeAlso: SI=8000h
  6691. --------s-94----SI8002-----------------------
  6692. INT 94 u - Media Vision PCM.COM - CHECK BOARD ADDRESS
  6693.     SI = 8002h
  6694. Return: AX = status
  6695.         0000h if board not at specified I/O address
  6696.         other if board found
  6697. Note:    the I/O address is specified by ORing the base I/O port shifted left
  6698.       four bits into SI before calling INT 94
  6699. SeeAlso: SI=8000h
  6700. --------s-94----SI8004-----------------------
  6701. INT 94 u - Media Vision PCM.COM - GET INTERNAL NOTE BUFFER
  6702.     SI = 8004h
  6703. Return: AX = offset of note buffer (segment = segment of internal DMA buffer)
  6704.     DX = size of buffer in note structures
  6705. SeeAlso: SI=8000h
  6706. --------s-94----SI8005-----------------------
  6707. INT 94 u - Media Vision PCM.COM - SINGLE-STEP QUEUE
  6708.     SI = 8005h
  6709. Return: ???
  6710. --------s-94----SI8011-----------------------
  6711. INT 94 u - Media Vision PCM.COM - INITIALIZE
  6712.     SI = 8011h
  6713.     ES:BX -> "iobf91" structure
  6714. Return: ???
  6715. --------s-94----SI8012-----------------------
  6716. INT 94 u - Media Vision PCM.COM - LOAD SOUND FOR LATER PLAY THROUGH KEYBOARD
  6717.     SI = 8012h
  6718.     ES:BX -> "i94f92buf" structure
  6719. Return: ???
  6720. SeeAlso: SI=8013h,SI=8014h
  6721. --------s-94----SI8013-----------------------
  6722. INT 94 u - Media Vision PCM.COM - GET INTERNAL SOUND USAGE
  6723.     SI = 8013h
  6724. Return: AX = number of sounds used
  6725.     DX = maximum handles
  6726. --------s-94----SI8014-----------------------
  6727. INT 94 u - Media Vision PCM.COM - GET DATA FOR SPECIFIED SOUND
  6728.     SI = 8014h
  6729.     ES:BX -> "i94f92buf" structure to be filled in
  6730.         sound number field set to desired sound
  6731. Return: AX = status
  6732.         0000h successful
  6733.         FFFFh sound number out of range
  6734. SeeAlso: SI=8012h,SI=8013h
  6735. --------s-94----SI8015-----------------------
  6736. INT 94 u - Media Vision PCM.COM - GET/SET INTERNAL DMA BUFFER
  6737.     SI = 8015h
  6738.     ES:BX -> DMA info structure (see below)
  6739. Return: ???
  6740.  
  6741. Format of DMA info structure:
  6742. Offset    Size    Description
  6743.  00h    DWORD    -> DMA buffer (offset FFFFh = return current buffer info)
  6744.  04h    WORD    DMA buffer size
  6745.  06h    WORD    divisions
  6746. --------s-94----SI8016-----------------------
  6747. INT 94 u - Media Vision PCM.COM - SIMULATE DOUBLE-SHIFT HOTKEY
  6748.     SI = 8016h
  6749.     AX = hotkey number (01h-08h)
  6750. Return: ???
  6751. SeeAlso: AL=02h/SI=8017h
  6752. --------s-94--01SI8017-----------------------
  6753. INT 94 u - Media Vision PCM.COM - CTRL-G INTERCEPT
  6754.     AL = 01h
  6755.     SI = 8017h
  6756.     AH = new state (00h off, 01h on)
  6757. Return: ???
  6758. SeeAlso: AL=02h/SI=8017h
  6759. --------s-94--02SI8017-----------------------
  6760. INT 94 u - Media Vision PCM.COM - DOUBLE-SHIFT-HOTKEY SOUND FEATURE
  6761.     AL = 02h
  6762.     SI = 8017h
  6763.     AH = new state (00h off, 01h on)
  6764. Return: ???
  6765. --------s-94--04SI8017-----------------------
  6766. INT 94 u - Media Vision PCM.COM - RANDOM SOUND FEATURE
  6767.     AL = 04h
  6768.     SI = 8017h
  6769.     AH = new state
  6770.         00h off
  6771.         01h on
  6772.         CX = minimum delay
  6773.         DX = maximum delay
  6774. Return: ???
  6775. --------s-94--08SI8017-----------------------
  6776. INT 94 u - Media Vision PCM.COM - NO ACTIVITY FEATURE
  6777.     AL = 08h
  6778.     SI = 8017h
  6779.     AH = new state
  6780.         00h off
  6781.         01h on
  6782.         DX:CX = delay
  6783. Return: ???
  6784. SeeAlso: AL=10h/SI=8017h
  6785. --------s-94--10SI8017-----------------------
  6786. INT 94 u - Media Vision PCM.COM - TIMER CONTROL
  6787.     AL = 10h
  6788.     SI = 8017h
  6789.     AH bit 7: set timer
  6790.     AH bit 6: timer active (timer turned off if clear)
  6791.     AH bits 5-0: timer number
  6792.     DX:CX = delay if AH bit 7 set (one-shot if DX bit 15 set)
  6793. Return: ???
  6794. SeeAlso: AL=08h/SI=8017h
  6795. --------s-94----SI8018-----------------------
  6796. INT 94 u - Media Vision PCM.COM - GET INFO
  6797.     SI = 8018h
  6798.     AL = what to get
  6799.         00h "F92state"
  6800.         01h "F92bkgd"
  6801.         02h "I10timer"
  6802.         03h "I08state"
  6803. Return: DX:AX -> desired information
  6804. --------r-95---------------------------------
  6805. INT 95 - IBM ROM BASIC - used while in interpreter
  6806. Notes:    called by ROM BASIC
  6807.     BASIC.COM/BASICA.COM do not restore vector on termination
  6808. --------r-95---------------------------------
  6809. INT 95 - APL*PLUS/PC - DETERMINE R= SPACE
  6810. Note:    use only when the R= option is invoked on entering APL
  6811. --------r-96---------------------------------
  6812. INT 96 - IBM ROM BASIC - used while in interpreter
  6813. Notes:    called by ROM BASIC
  6814.     BASIC.COM/BASICA.COM do not restore vector on termination
  6815. --------r-97---------------------------------
  6816. INT 97 - IBM ROM BASIC - used while in interpreter
  6817. Notes:    called by ROM BASIC
  6818.     BASIC.COM/BASICA.COM do not restore vector on termination
  6819. --------r-98---------------------------------
  6820. INT 98 - IBM ROM BASIC - used while in interpreter
  6821. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6822.     BASIC.COM/BASICA.COM do not restore vector on termination
  6823. --------r-99---------------------------------
  6824. INT 99 - IBM ROM BASIC - used while in interpreter
  6825. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6826.     BASIC.COM/BASICA.COM do not restore vector on termination
  6827. --------r-9A---------------------------------
  6828. INT 9A - IBM ROM BASIC - used while in interpreter
  6829. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6830.     BASIC.COM/BASICA.COM do not restore vector on termination
  6831. --------r-9B---------------------------------
  6832. INT 9B - IBM ROM BASIC - used while in interpreter
  6833. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6834.     BASIC.COM/BASICA.COM do not restore vector on termination
  6835. --------r-9C---------------------------------
  6836. INT 9C - IBM ROM BASIC - used while in interpreter
  6837. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6838.     BASIC.COM/BASICA.COM do not restore vector on termination
  6839. --------v-9C---------------------------------
  6840. INT 9C - VIRUS - "INT13" - ORIGINAL INT 13h VECTOR
  6841. SeeAlso: INT 8B"VIRUS",INT 9D"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  6842. --------r-9D---------------------------------
  6843. INT 9D - IBM ROM BASIC - used while in interpreter
  6844. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6845.     BASIC.COM/BASICA.COM do not restore vector on termination
  6846. --------v-9D---------------------------------
  6847. INT 9D - VIRUS - "INT13" - ROM INT 13h ENTRY POINT
  6848. Note:    this vector is used by the virus to store the result of a call to
  6849.       INT 2F/AH=13h
  6850. SeeAlso: INT 2F/AH=13h,INT 9C"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  6851. --------r-9E---------------------------------
  6852. INT 9E - IBM ROM BASIC - used while in interpreter
  6853. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6854.     BASIC.COM/BASICA.COM do not restore vector on termination
  6855. --------v-9E---------------------------------
  6856. INT 9E - VIRUS - "INT13" - ORIGINAL INT 21h VECTOR
  6857. SeeAlso: INT 70"VIRUS",INT 9C"VIRUS",INT 9D"VIRUS",INT E0"VIRUS"
  6858. --------r-9F---------------------------------
  6859. INT 9F - IBM ROM BASIC - used while in interpreter
  6860. Notes:    called by ROM BASIC
  6861.     BASIC.COM/BASICA.COM do not restore vector on termination
  6862. --------v-9F---------------------------------
  6863. INT 9F - VIRUS - "INT13" - STORAGE FOR USER INT 13h VECTOR
  6864. Note:    while it is infecting a file, the INT13 virus grabs INT 13 and uses
  6865.       this interrupt to store the existing INT 13 vector for later
  6866.       restoration
  6867. SeeAlso: INT 9C"VIRUS",INT 9D"VIRUS"
  6868. --------r-A0---------------------------------
  6869. INT A0 - IBM ROM BASIC - used while in interpreter
  6870. Notes:    called by ROM BASIC
  6871.     BASIC.COM/BASICA.COM do not restore vector on termination
  6872. --------r-A0---------------------------------
  6873. INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE
  6874. SeeAlso: INT 59
  6875. --------r-A1---------------------------------
  6876. INT A1 - IBM ROM BASIC - used while in interpreter
  6877. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6878.     BASIC.COM/BASICA.COM do not restore vector on termination
  6879. --------r-A2---------------------------------
  6880. INT A2 - IBM ROM BASIC - used while in interpreter
  6881. Notes:    called by ROM BASIC
  6882.     BASIC.COM/BASICA.COM do not restore vector on termination
  6883. --------r-A3---------------------------------
  6884. INT A3 - IBM ROM BASIC - used while in interpreter
  6885. Notes:    called by ROM BASIC
  6886.     BASIC.COM/BASICA.COM do not restore vector on termination
  6887. --------r-A4---------------------------------
  6888. INT A4 - IBM ROM BASIC - used while in interpreter
  6889. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6890.     BASIC.COM/BASICA.COM do not restore vector on termination
  6891. --------U-A4---------------------------------
  6892. INT A4 U - Right Hand Man - API
  6893.     AH = function number (v3.3 supports functions 00h-52h)
  6894. Return: CF set on error
  6895.     CF clear if successful
  6896. Program: Right Hand Man is a TSR desk-top utility originally by Red E Products
  6897.       which has evolved into Futurus Team
  6898. Note:    this interrupt is only hooked while popped up
  6899. SeeAlso: INT 2F/AX=A4E0h
  6900. --------r-A5---------------------------------
  6901. INT A5 - IBM ROM BASIC - used while in interpreter
  6902. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6903.     BASIC.COM/BASICA.COM do not restore vector on termination
  6904. --------r-A6---------------------------------
  6905. INT A6 - IBM ROM BASIC - used while in interpreter
  6906. Notes:    called by ROM BASIC
  6907.     BASIC.COM/BASICA.COM do not restore vector on termination
  6908. --------r-A7---------------------------------
  6909. INT A7 - IBM ROM BASIC - used while in interpreter
  6910. Notes:    called by ROM BASIC
  6911.     BASIC.COM/BASICA.COM do not restore vector on termination
  6912. --------r-A8---------------------------------
  6913. INT A8 - IBM ROM BASIC - used while in interpreter
  6914. Notes:    called by ROM BASIC
  6915.     BASIC.COM/BASICA.COM do not restore vector on termination
  6916. --------r-A9---------------------------------
  6917. INT A9 - IBM ROM BASIC - used while in interpreter
  6918. Notes:    called by ROM BASIC
  6919.     BASIC.COM/BASICA.COM do not restore vector on termination
  6920. --------r-AA---------------------------------
  6921. INT AA - IBM ROM BASIC - used while in interpreter
  6922. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6923.     BASIC.COM/BASICA.COM do not restore vector on termination
  6924. --------r-AB---------------------------------
  6925. INT AB - IBM ROM BASIC - used while in interpreter
  6926. Notes:    called by ROM BASIC
  6927.     BASIC.COM/BASICA.COM do not restore vector on termination
  6928. --------r-AC---------------------------------
  6929. INT AC - IBM ROM BASIC - used while in interpreter
  6930. Notes:    called by ROM BASIC
  6931.     BASIC.COM/BASICA.COM do not restore vector on termination
  6932. --------r-AD---------------------------------
  6933. INT AD - IBM ROM BASIC - used while in interpreter
  6934. Notes:    called by ROM BASIC
  6935.     BASIC.COM/BASICA.COM do not restore vector on termination
  6936. --------r-AE---------------------------------
  6937. INT AE - IBM ROM BASIC - used while in interpreter
  6938. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6939.     BASIC.COM/BASICA.COM do not restore vector on termination
  6940. --------r-AF---------------------------------
  6941. INT AF - IBM ROM BASIC - used while in interpreter
  6942. Notes:    called by ROM BASIC
  6943.     BASIC.COM/BASICA.COM do not restore vector on termination
  6944. --------r-B0---------------------------------
  6945. INT B0 - IBM ROM BASIC - used while in interpreter
  6946. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6947.     BASIC.COM/BASICA.COM do not restore vector on termination
  6948. --------r-B1---------------------------------
  6949. INT B1 - IBM ROM BASIC - used while in interpreter
  6950. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6951.     BASIC.COM/BASICA.COM do not restore vector on termination
  6952. --------r-B2---------------------------------
  6953. INT B2 - IBM ROM BASIC - used while in interpreter
  6954. Notes:    called by ROM BASIC
  6955.     BASIC.COM/BASICA.COM do not restore vector on termination
  6956. --------r-B3---------------------------------
  6957. INT B3 - IBM ROM BASIC - used while in interpreter
  6958. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6959.     BASIC.COM/BASICA.COM do not restore vector on termination
  6960. --------U-B370-------------------------------
  6961. INT B3 - ZIPKEY - GET VERSION
  6962.     AH = 70h
  6963. Return: AH = major version
  6964.     AL = minor version
  6965.     CL = number of states and territories in current database
  6966.     DH = year of current database - 1900
  6967.     DL = month of current database's file date
  6968. Program: ZIPKEY is a resident ZIPCODE database by Eric Isaacson
  6969. Note:    if installed, the string "ZIPKEY" is present at offset 75h in the
  6970.       interrupt handler's segment, and the byte at 7Bh contains the API
  6971.       version number (00h for v1.x, 01h for v2.0)
  6972. --------U-B371-------------------------------
  6973. INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE
  6974.     AH = 71h
  6975.     BX = abbreviation, in either case (first letter in BL)
  6976. Return: CF set on error
  6977.         AL = FFh
  6978.     CF clear if successful
  6979.         AL = ZIPKEY state code
  6980. SeeAlso: AH=72h
  6981. --------U-B372-------------------------------
  6982. INT B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION
  6983.     AH = 72h
  6984.     BL = ZIPKEY state code
  6985. Return: CF set on error
  6986.         AX destroyed
  6987.     CF clear if successful
  6988.         AX = abbreviation, in upper case
  6989. SeeAlso: AH=71h,AH=73h
  6990. --------U-B373-------------------------------
  6991. INT B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME
  6992.     AH = 73h
  6993.     BL = ZIPKEY state code
  6994.     ES:DI -> buffer for name
  6995. Return: CF set on error
  6996.         AX destroyed
  6997.     CF clear if successful
  6998.         ES:DI points one byte beyond end of name
  6999. SeeAlso: AH=72h
  7000. --------U-B374-------------------------------
  7001. INT B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS
  7002.     AH = 74h
  7003.     DX = zipcode region (0-999)
  7004.     CH = last two digits of zipcode (0-99)
  7005.     ES:DI -> buffer
  7006. Return: CF set on error
  7007.         AX destroyed
  7008.     CF clear if successful
  7009.         ES:DI points one byte beyond end of digit string
  7010. --------U-B375-------------------------------
  7011. INT B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE
  7012.     AH = 75h
  7013.     DX = zipcode region (0-999)
  7014.     CH = last two digits of zipcode (0-99)
  7015. Return: CF set on error (zipcode not found)
  7016.         AL = suggested state code, FFh if none
  7017.     CF clear if successful
  7018.         AL = ZIPKEY state code
  7019.         BX = area code (v2.0+)
  7020. SeeAlso: AH=76h,AH=79h
  7021. --------U-B376-------------------------------
  7022. INT B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE
  7023.     AH = 76h
  7024.     DX = zipcode region (0-999)
  7025.     CH = last two digits of zipcode (0-99)
  7026.     ES:DI -> buffer for name
  7027. Return: CF set on error
  7028.         AL = suggested state code, FFh if none
  7029.         ES:DI buffer filled with suggested city name
  7030.     CF clear if successful
  7031.         AL = ZIPKEY state code
  7032.         BX = area code (v2.0+)
  7033.         ES:DI points one byte beyond end of name
  7034. SeeAlso: AH=75h,AH=78h,AH=7Eh
  7035. --------U-B377-------------------------------
  7036. INT B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE
  7037.     AH = 77h
  7038.     DX = zipcode region (0-999)
  7039.     CH = last two digits of zipcode (0-99)
  7040.     BX = 16-bit BIOS keycode for a defined ZIPKEY alternate exit key
  7041. Return: CF set on error
  7042.         AX destroyed
  7043.     CF clear if successful
  7044.         zipcode specification as defined by the BX keystroke is placed in
  7045.           keyboard buffer, as if the user had popped up ZIPKEY and exited
  7046.           by pressing the key specified by BX
  7047. --------U-B378-------------------------------
  7048. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY
  7049.     AH = 78h
  7050.     BL = ZIPKEY state code
  7051.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  7052. Return: BH = number of matching entries (set to 51 if more than 50)
  7053.     DX = zipcode region of first match (0-999)
  7054.     CL = last two digits of first zipcode in the range (0-99)
  7055.     CH = last two digits of last zipcode in the range (0-99)
  7056.     AX destroyed
  7057. SeeAlso: AH=79h,AH=7Ah
  7058. --------U-B379-------------------------------
  7059. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY
  7060.     AH = 79h
  7061.     BL = ZIPKEY state code of first state to search
  7062.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  7063. Return: AL = ZIPKEY state code of first matching state
  7064.     BH = number of matching entries (set to 51 if more than 50)
  7065.     DX = zipcode region of first match (0-999)
  7066.     CL = last two digits of first zipcode in first range (0-99)
  7067.     CH = last two digits of last zipcode in first range (0-99)
  7068. Note:    to find all matching cities, repeat search with BL set to one more than
  7069.       the returned AL
  7070. SeeAlso: AH=78h,AH=7Ah
  7071. --------U-B37A-------------------------------
  7072. INT B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP
  7073.     AH = 7Ah
  7074.     BL = case number (0 to one less than value returned in BH by lookup)
  7075. Return: AL = ZIPKEY state code
  7076.     DX = zipcode region (0-999)
  7077.     CL = last two digits of first zipcode in the range (0-99)
  7078.     CH = last two digits of last zipcode in the range (0-99)
  7079. SeeAlso: AH=78h,AH=79h
  7080. --------U-B37B-------------------------------
  7081. INT B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT
  7082.     AH = 7Bh
  7083. Return: BL = maximum number of characters for a city name
  7084.     BH = ZIPKEY state code for last city-name search
  7085.         FFh if none
  7086.     CX:DX = internal code identifying last city search
  7087.     AX destroyed
  7088. SeeAlso: AH=7Ch
  7089. --------U-B37C-------------------------------
  7090. INT B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT
  7091.     AH = 7Ch
  7092.     BL = maximum number of characters for a city name
  7093.     BH = ZIPKEY state code for last city-name search
  7094.         FFh if none
  7095.     CX:DX = internal code returned by AH=7Bh
  7096. Return: CF set on error
  7097.     CF clear if successful
  7098.     AX destroyed
  7099. SeeAlso: AH=7Bh
  7100. --------U-B37D-------------------------------
  7101. INT B3 - ZIPKEY - REQUEST POP UP
  7102.     AH = 7Dh
  7103.     BL = index number to simulate pressing a hotkey
  7104.         FFh for immediate popup with no playback on return
  7105. Return: CF set on error
  7106.         AL = FDh already busy with another request
  7107.            = FEh illegal function
  7108.     CF clear if successful
  7109.         AX destroyed
  7110.         window popped up and was closed by the user
  7111. SeeAlso: AH=70h
  7112. --------U-B37E-------------------------------
  7113. INT B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION
  7114.     AH = 7Eh
  7115.     DX = zipcode region (0-999)
  7116.     ES:DI -> buffer for name
  7117. Return: CF set on error
  7118.         AL = FFh region does not exist
  7119.     CF clear if successful
  7120.         AL = ZIPKEY state code
  7121.         ES:DI points one byte beyond end of name
  7122. SeeAlso: AH=76h
  7123. --------U-B37F-------------------------------
  7124. INT B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS
  7125.     AH = 7Fh
  7126.     BL = function
  7127.         00h turn off hotkeys
  7128.         01h turn on hotkeys
  7129.         02h return hotkey status
  7130.         03h toggle hotkey status
  7131. Return: AL = hotkey status
  7132.         00h off
  7133.         01h on
  7134. --------U-B380-------------------------------
  7135. INT B3 - ZIPKEY v2.0+ - DETERMINE STATE FOR AREA CODE
  7136.     AH = 80h
  7137.     BX = telephone area code (decimal)
  7138. Return: CF clear if successful
  7139.         AL = ZIPKEY state code
  7140.         DX = first ZIP region for state (03E8h if Canada)
  7141.         CX = number of ZIP regions in state
  7142.     CF set on error
  7143.         AL = FFh
  7144.         DX = 03E9h
  7145. --------r-B4---------------------------------
  7146. INT B4 - IBM ROM BASIC - used while in interpreter
  7147. Notes:    called by ROM BASIC
  7148.     BASIC.COM/BASICA.COM do not restore vector on termination
  7149. --------r-B4---------------------------------
  7150. INT B4 - StackMan - REQUEST NEW STACK
  7151. Return: SS:SP -> new stack
  7152. Program: StackMan is a freeware stack manager by Franz Veldman of ESaSS B.V.
  7153.       which functions as a replacement for the DOS STACK= command as well
  7154.       as permitting multiple TSRs to share a pool of stack space
  7155. Note:    the installation check consists of testing for the string "STACKXXX" at
  7156.       offset 0Ah from the interrupt handler
  7157. SeeAlso: INT 2F/AX=C9FFh,INT B5"STACKMAN"
  7158. Index:    installation check;STACKMAN
  7159. --------r-B5---------------------------------
  7160. INT B5 - IBM ROM BASIC - used while in interpreter
  7161. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7162.     BASIC.COM/BASICA.COM do not restore vector on termination
  7163. --------r-B5---------------------------------
  7164. INT B5 - StackMan - RESTORE ORIGINAL STACK
  7165.     SS:SP -> stack returned by INT B4
  7166. Return: SS:SP restored to value before INT B4
  7167. SeeAlso: INT 2F/AX=C9FFh,INT B4"StackMan"
  7168. --------m-B5---------------------------------
  7169. INT B5 U - Netroom NETSWAP4 - ???
  7170.     ???
  7171. Return: ???
  7172. SeeAlso: INT 31/AH=57h
  7173. --------r-B6---------------------------------
  7174. INT B6 - IBM ROM BASIC - used while in interpreter
  7175. Notes:    called by ROM BASIC
  7176.     BASIC.COM/BASICA.COM do not restore vector on termination
  7177. --------y-B6---------------------------------
  7178. INT B6 - (NOT A VECTOR!) - USED BY TBFENCE
  7179. Program: TBFence is a security program by ESaSS B.V. which transparently
  7180.       encrypts floppies and optionally allows only encrypted diskettes to
  7181.       be accessed
  7182. Note:    the low word of this vector (0000h:02D8h) contains the segment of the
  7183.       TBFence INT 13h code, which starts with the signature word E487h;
  7184.       this forms the installation check
  7185.     the highest byte of this vector contains the start of a FAR JMP
  7186.       instruction to ???
  7187. SeeAlso: INT B7"TBFENCE"
  7188. Index:    installation check;TBFence
  7189. --------r-B7---------------------------------
  7190. INT B7 - IBM ROM BASIC - used while in interpreter
  7191. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7192.     BASIC.COM/BASICA.COM do not restore vector on termination
  7193. --------y-B7---------------------------------
  7194. INT B7 - TBFENCE - ???
  7195. SeeAlso: INT B6"TBFENCE"
  7196. --------r-B8---------------------------------
  7197. INT B8 - IBM ROM BASIC - used while in interpreter
  7198. Notes:    called by ROM BASIC
  7199.     BASIC.COM/BASICA.COM do not restore vector on termination
  7200. --------r-B9---------------------------------
  7201. INT B9 - IBM ROM BASIC - used while in interpreter
  7202. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7203.     BASIC.COM/BASICA.COM do not restore vector on termination
  7204. --------r-BA---------------------------------
  7205. INT BA - IBM ROM BASIC - used while in interpreter
  7206. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7207.     BASIC.COM/BASICA.COM do not restore vector on termination
  7208. --------r-BB---------------------------------
  7209. INT BB - IBM ROM BASIC - used while in interpreter
  7210. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7211.     BASIC.COM/BASICA.COM do not restore vector on termination
  7212. --------r-BC---------------------------------
  7213. INT BC - IBM ROM BASIC - used while in interpreter
  7214. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7215.     BASIC.COM/BASICA.COM do not restore vector on termination
  7216. --------r-BD---------------------------------
  7217. INT BD - IBM ROM BASIC - used while in interpreter
  7218. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7219.     BASIC.COM/BASICA.COM do not restore vector on termination
  7220. --------r-BE---------------------------------
  7221. INT BE - IBM ROM BASIC - used while in interpreter
  7222. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7223.     BASIC.COM/BASICA.COM do not restore vector on termination
  7224. --------Q-BE---------------------------------
  7225. INT BE - DESQview/X - ???
  7226. Note:    points at an IRET
  7227. SeeAlso: INT 15/AX=BFDEh/BX=0006h,INT 63"DESQview"
  7228. --------r-BF---------------------------------
  7229. INT BF - IBM ROM BASIC - used while in interpreter
  7230. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7231.     BASIC.COM/BASICA.COM do not restore vector on termination
  7232. --------r-C0---------------------------------
  7233. INT C0 - IBM ROM BASIC - used while in interpreter
  7234. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7235.     BASIC.COM/BASICA.COM do not restore vector on termination
  7236. --------r-C1---------------------------------
  7237. INT C1 - IBM ROM BASIC - used while in interpreter
  7238. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7239.     BASIC.COM/BASICA.COM do not restore vector on termination
  7240. --------r-C2---------------------------------
  7241. INT C2 - IBM ROM BASIC - used while in interpreter
  7242. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7243.     BASIC.COM/BASICA.COM do not restore vector on termination
  7244. --------r-C3---------------------------------
  7245. INT C3 - IBM ROM BASIC - used while in interpreter
  7246. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7247.     BASIC.COM/BASICA.COM do not restore vector on termination
  7248. --------r-C4---------------------------------
  7249. INT C4 - IBM ROM BASIC - used while in interpreter
  7250. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7251.     BASIC.COM/BASICA.COM do not restore vector on termination
  7252. --------r-C5---------------------------------
  7253. INT C5 - IBM ROM BASIC - used while in interpreter
  7254. Notes:    called by ROM BASIC
  7255.     BASIC.COM/BASICA.COM do not restore vector on termination
  7256. --------r-C6---------------------------------
  7257. INT C6 - IBM ROM BASIC - used while in interpreter
  7258. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7259.     BASIC.COM/BASICA.COM do not restore vector on termination
  7260. --------r-C6---------------------------------
  7261. INT C6 - APL*PLUS/PC - IDENTICAL TO INT 86
  7262. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7263.       the older interrupts
  7264. SeeAlso: INT 86"APL"
  7265. --------r-C7---------------------------------
  7266. INT C7 - IBM ROM BASIC - used while in interpreter
  7267. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7268.     BASIC.COM/BASICA.COM do not restore vector on termination
  7269. --------r-C7---------------------------------
  7270. INT C7 - APL*PLUS/PC - ???
  7271. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7272.       the older interrupts
  7273. SeeAlso: INT 87"APL"
  7274. --------r-C8---------------------------------
  7275. INT C8 - IBM ROM BASIC - used while in interpreter
  7276. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7277.     BASIC.COM/BASICA.COM do not restore vector on termination
  7278. --------r-C8---------------------------------
  7279. INT C8 - APL*PLUS/PC - IDENTICAL TO INT 88
  7280. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7281.       the older interrupts
  7282. SeeAlso: INT 88"APL"
  7283. --------r-C9---------------------------------
  7284. INT C9 - IBM ROM BASIC - used while in interpreter
  7285. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7286.     BASIC.COM/BASICA.COM do not restore vector on termination
  7287. --------r-C9---------------------------------
  7288. INT C9 - APL*PLUS/PC - ???
  7289. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7290.       the older interrupts
  7291. SeeAlso: INT 89"APL"
  7292. --------r-CA---------------------------------
  7293. INT CA - IBM ROM BASIC - used while in interpreter
  7294. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7295.     BASIC.COM/BASICA.COM do not restore vector on termination
  7296. --------r-CA---------------------------------
  7297. INT CA - APL*PLUS/PC - PRINT SCREEN
  7298. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7299.       the older interrupts
  7300. SeeAlso: INT 8A"APL"
  7301. --------r-CB---------------------------------
  7302. INT CB - IBM ROM BASIC - used while in interpreter
  7303. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7304.     BASIC.COM/BASICA.COM do not restore vector on termination
  7305. --------r-CB---------------------------------
  7306. INT CB - APL*PLUS/PC - BEEP
  7307. Notes:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7308.       the older interrupts
  7309.     same as printing a ^G via INT 21/AH=02h
  7310. SeeAlso: INT 8B"APL"
  7311. --------r-CC---------------------------------
  7312. INT CC - IBM ROM BASIC - used while in interpreter
  7313. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7314.     BASIC.COM/BASICA.COM do not restore vector on termination
  7315. --------r-CC---------------------------------
  7316. INT CC - APL*PLUS/PC - CLEAR SCREEN MEMORY
  7317.     AX = flag
  7318.         0000h do not save display attributes
  7319.         0001h save attributes
  7320. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7321.       the older interrupts
  7322. SeeAlso: INT 8C"APL"
  7323. --------r-CD---------------------------------
  7324. INT CD - IBM ROM BASIC - used while in interpreter
  7325. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7326.     BASIC.COM/BASICA.COM do not restore vector on termination
  7327. --------r-CD---------------------------------
  7328. INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7329. --------r-CE---------------------------------
  7330. INT CE - IBM ROM BASIC - used while in interpreter
  7331. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7332.     BASIC.COM/BASICA.COM do not restore vector on termination
  7333. --------r-CE---------------------------------
  7334. INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7335. --------r-CF---------------------------------
  7336. INT CF - IBM ROM BASIC - used while in interpreter
  7337. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7338.     BASIC.COM/BASICA.COM do not restore vector on termination
  7339. --------r-CF---------------------------------
  7340. INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION
  7341. SeeAlso: INT E0"APL"
  7342. --------r-D0---------------------------------
  7343. INT D0 - IBM ROM BASIC - used while in interpreter
  7344. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7345.     BASIC.COM/BASICA.COM do not restore vector on termination
  7346. --------r-D0---------------------------------
  7347. INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7348. --------U-D0---------------------------------
  7349. INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR
  7350. Program: NJFRERAM is a resident free-memory display utility by Mike "Nifty
  7351.       James" Blaszczak
  7352. Note:    if NJFRERAM is installed, this vector points at the signature "NJ"
  7353. Index:    installation check;NJFRERAM
  7354. --------r-D1---------------------------------
  7355. INT D1 - IBM ROM BASIC - used while in interpreter
  7356. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7357.     BASIC.COM/BASICA.COM do not restore vector on termination
  7358. --------r-D1---------------------------------
  7359. INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7360. --------r-D2---------------------------------
  7361. INT D2 - IBM ROM BASIC - used while in interpreter
  7362. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7363.     BASIC.COM/BASICA.COM do not restore vector on termination
  7364. --------r-D2---------------------------------
  7365. INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7366. --------r-D3---------------------------------
  7367. INT D3 - IBM ROM BASIC - used while in interpreter
  7368. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7369.     BASIC.COM/BASICA.COM do not restore vector on termination
  7370. --------r-D3---------------------------------
  7371. INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7372. --------r-D4---------------------------------
  7373. INT D4 - IBM ROM BASIC - used while in interpreter
  7374. Notes:    called by ROM BASIC
  7375.     BASIC.COM/BASICA.COM do not restore vector on termination
  7376. --------r-D4---------------------------------
  7377. INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7378. --------O-D400-------------------------------
  7379. INT D4 O - PC-MOS/386 v5.01 - OBSOLETE FUNCTIONS
  7380.     AH = 00h and 01h
  7381. Return: nothing
  7382. Desc:    PC-MOS/386 v5.01 reports that these functions are no longer supported
  7383.       and enters an endless loop
  7384. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7385.       system by The Software Link, Inc.
  7386. --------O-D402-------------------------------
  7387. INT D4 - PC-MOS/386 v3.0+ - GET SYSTEM CONTROL BLOCK POINTER
  7388.     AH = 02h
  7389. Return: AX = 0000h
  7390.     ES:BX -> System Control Block in V86 mode (see below)
  7391.     ES:EBX -> System Control Block in native mode (see below)
  7392. Note:    superseded by AH=26h
  7393. SeeAlso: AH=04h,AH=10h,AH=26h,AH=28h,AH=29h,AH=2Ah,INT 21/AX=3000h,INT 38
  7394.  
  7395. Format of System Control Block:
  7396. Offset    Size    Description
  7397.  00h    WORD    pointer to first TCB in chain
  7398.  02h 17 BYTEs    reserved
  7399.  13h    WORD    pointer to current task's TCB
  7400.  15h    WORD    pointer to TCB of visible (console) task
  7401. --------O-D403-------------------------------
  7402. INT D4 - PC-MOS/386 v5.01 - GET/SET EXTENDED DIRECTORY INFORMATION
  7403.     AH = 03h
  7404.     AL = subfunction (00h get, 01h set)
  7405.     DS:(E)DX -> pathname
  7406.     ES:(E)BX -> 10-byte buffer for directory information (see below)
  7407. Return: CF clear if successful
  7408.         AL = permitted access level for file (00h-03h)
  7409.         ES:(E)BX -> modified buffer (AL=01h on entry)
  7410.     CF set on error
  7411.         AX = error code (see INT 21/AH=59h)
  7412. Notes:    BX/DX are used in V86 mode, EBX/EDX in native mode
  7413.     the file class cannot be changed for files because it affects the
  7414.       encryption method, but directories can have their classes changed
  7415.  
  7416. Format of directory information:
  7417. Offset    Size    Description
  7418.  00h    BYTE    reserved (0)
  7419.  01h    BYTE    file class ('A'-'Z' or 00h)
  7420.  02h    DWORD    user ID of file creator
  7421.  06h    WORD    file creation time (see INT 21/AX=5700h)
  7422.  08h    WORD    file creation date (see INT 21/AX=5700h)
  7423. --------O-D404-------------------------------
  7424. INT D4 - PC-MOS/386 v3.0+ - GET TASK CONTROL BLOCK
  7425.     AH = 04h
  7426.     BX = task ID or FFFFh for calling task
  7427. Return: CF clear if successful
  7428.         ES = segment of Task Control Block (TCB) (see below)
  7429.     CF set on error
  7430.         AX = error code (see INT 21/AH=59h)
  7431. Note:    superseded by AH=27h
  7432. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah,INT 38
  7433.  
  7434. Format of Task Control Block:
  7435. Offset    Size    Description
  7436.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7437.  01h    BYTE    header block ID, "T" = TCB
  7438.  02h    WORD    length of block in paragraphs
  7439.  04h    WORD    segment address of next header block (0000h if last)
  7440.  06h    WORD    segment address of previous header block (0000h if first)
  7441.  08h    WORD    pointer to next TCB
  7442.  0Ah    WORD    pointer to previous TCB
  7443.  0Ch    WORD    pointer to associated TCB (if applicable)
  7444.  0Eh    WORD    reserved
  7445. ---TCB---
  7446.  10h    WORD    TCB task ID
  7447.  12h    WORD    native context save area
  7448.  14h    WORD    start address of task
  7449.  16h    WORD    end address of task
  7450.  18h    BYTE    task priority
  7451.  19h    BYTE    task time slice
  7452.  1Ah    BYTE    "TCBWAIT" run status of task
  7453.  1Bh    BYTE    "TCBSTAT" what the task is waiting for
  7454.  1Ch    DWORD    address of polling routine
  7455.  20h    BYTE    error code from last function call
  7456.  21h 11 BYTEs    name of currently executing task
  7457.  2Ch  4 BYTEs    ???
  7458.  30h    BYTE    keyboard disabled if bit 1 set
  7459.  31h    BYTE    current shift state and toggles
  7460.  32h  2 BYTEs    ???
  7461.  34h    BYTE    current video mode
  7462.  35h    BYTE    current video page
  7463.  36h    BYTE    number of text columns per screen
  7464.  37h    BYTE    number of text rows per screen
  7465.  38h    WORD    length of video buffer
  7466.  3Ah    WORD    video page length
  7467.  3Ch    WORD    apge start address in video RAM
  7468.  3Eh  4 WORDs    current cursor positions for four screen pages
  7469.  46h  8 BYTEs    ???
  7470.  4Eh    WORD    current cursor type
  7471.  50h    BYTE    current palette setting
  7472.  51h    BYTE    original video mode
  7473.  52h    BYTE    start CRT row (00h or 01h)
  7474.  53h    BYTE    video RAM in task active
  7475.  54h    WORD    handle of video save area
  7476.  56h    WORD    page count of video save area
  7477.  58h    WORD    segment address of video save area
  7478.  5Ah    WORD    poitner to first Task File Block (see below)
  7479.  5Ch    WORD    pointer to first Current Directory Block (see below)
  7480.  5Eh    WORD    pointer to active Current Directory Block (see below)
  7481.  60h    BYTE    number of drives
  7482.  61h    BYTE    current drive (0=A:, etc.)
  7483.  62h    DWORD    disk transfer address
  7484.  66h  4 BYTEs    ???
  7485.  6Ah    BYTE    verify flag (nonzero = on)
  7486.  6Bh    BYTE    break flag (nonzero = on)
  7487.  6Ch    WORD    share/lock retry count
  7488.  6Eh    WORD    ticks between share/lock retries
  7489.  70h    BYTE    remote printer flags (see below)
  7490.  71h    BYTE    ETX/ACK delay count
  7491.  72h    WORD    spooler segment address
  7492.  74h  2 BYTEs    ???
  7493.  76h  3 BYTEs    remote printer redirection for LPT1 through LPT3 (see below)
  7494.  79h  2 BYTEs    ???
  7495.  7Bh    DWORD    offset of username in TCB
  7496.  7Fh    BYTE    current output class
  7497.  80h  7 BYTEs    protection access rights, 2 bits per class (writeable!)
  7498.  87h 122 BYTEs    ???
  7499. 101h    BYTE    TCB sleep downcounter value
  7500. 102h 20 BYTEs    ???
  7501. 116h    BYTE    last scan code
  7502.     ...
  7503. 5D0h    DWORD    far pointer to Device Driver Terminal's entry point
  7504. 5D4h    WORD    offset of logical screen
  7505. 5D6h    WORD    segment of logical screen
  7506. 5D8h    WORD    cursor offset within page
  7507. 5DAh    BYTE    screen columns
  7508. 5DBh    WORD    async port number (0000h = none)
  7509. 5DDh    DWORD    physical baudrate
  7510. 5E1h 19 BYTEs    reserved for Device Driver Terminal (DDT)
  7511.     ...
  7512. 7A6h    DWORD    far pointer to unregister calling chain
  7513.  
  7514. Bitfield for remote printer flags:
  7515.  bit 0    LPT1 to terminal
  7516.  bit 1    LPT2 to terminal
  7517.  bit 2    LPT3 to terminal
  7518.  bit 3    escape to printer pending
  7519.  bit 4    use XON/XOFF
  7520.  bit 5    use ETX/ACK
  7521.  bit 6    waiting for ACK or XON
  7522.  bit 7    transparent printing on
  7523.  
  7524. Values for remote printer redirection:
  7525.  00h    not redirected
  7526.  01h    redirected to COM1
  7527.  ...
  7528.  18h    redirected to COM24
  7529.  51h    redirected to LPT1
  7530.  52h    redirected to LPT2
  7531.  53h    redirected to LPT3
  7532.  
  7533. Format of Task File Block:
  7534. Offset    Size    Description
  7535.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7536.  01h    BYTE    header block ID, "F" = task file block
  7537.  02h    WORD    length of block in paragraphs
  7538.  04h    WORD    segment address of next header block (0000h if last)
  7539.  06h    WORD    segment address of previous header block (0000h if first)
  7540.  08h    WORD    pointer to next TCB
  7541.  0Ah    WORD    pointer to previous TCB
  7542.  0Ch    WORD    pointer to associated TCB (if applicable)
  7543.  0Eh    WORD    reserved
  7544. ---TFB---
  7545.  10h    WORD    segment address of next TFB
  7546.  12h    WORD    segment address of previous TFB
  7547.  14h    WORD    segment address of TFB's Global File Block (see below)
  7548.  16h    WORD    segment address of owner's PSP
  7549.  18h    WORD    file handle
  7550.  1Ah  3 BYTEs    ???
  7551.  1Dh    DWORD    file position
  7552.  21h  4 BYTEs    ???
  7553.  25h    BYTE    IOCTL flags (see below)
  7554.  26h  2 BYTEs    ???
  7555.  
  7556. Bitfields for IOCTL flags:
  7557.  bit 0    stdin
  7558.  bit 1    stdout
  7559.  bit 2    null device
  7560.  bit 3    clock device
  7561.  bit 4    reserved
  7562.  bit 5    ASCII mode instead of binary
  7563.  bit 6    EOF encountered on input
  7564.  bit 7    device rather than file
  7565.  
  7566. Format of Global File Block:
  7567. Offset    Size    Description
  7568.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7569.  01h    BYTE    header block ID, "G" = global file block
  7570.  02h    WORD    length of block in paragraphs
  7571.  04h    WORD    segment address of next header block (0000h if last)
  7572.  06h    WORD    segment address of previous header block (0000h if first)
  7573.  08h    WORD    pointer to next TCB
  7574.  0Ah    WORD    pointer to previous TCB
  7575.  0Ch    WORD    pointer to associated TCB (if applicable)
  7576.  0Eh    WORD    reserved
  7577. ---GFB---
  7578.  10h 10 BYTEs    ???
  7579.  1Ah    WORD    file attribute
  7580.  1Ch    BYTE    ???
  7581.  1Dh    DWORD    address of device driver
  7582.  21h    WORD    first cluster
  7583.  23h    WORD    time of last modification
  7584.  25h    WORD    date of last modification
  7585.  27h    DWORD    size of file in bytes
  7586.  2Bh 11 BYTEs    ???
  7587.  36h 11 BYTEs    device name or FCB-format filename
  7588.  41h    WORD    segment address of TFB list
  7589.  43h    WORD    segment address of first RLB (see below) (0000h = none)
  7590.  45h    BYTE    flag: nonzero if GFB refers to character device
  7591.  46h    WORD    address of Block Device Block (see below)
  7592.  48h    WORD    sector of file's directory entry
  7593.  4Ah    WORD    high word of file's directory entry
  7594.  4Ch    WORD    ofsset of directory entry within sector
  7595.  
  7596. Format of Current Directory Block:
  7597. Offset    Size    Description
  7598.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7599.  01h    BYTE    header block ID, "C" = current directory block
  7600.  02h    WORD    length of block in paragraphs
  7601.  04h    WORD    segment address of next header block (0000h if last)
  7602.  06h    WORD    segment address of previous header block (0000h if first)
  7603.  08h    WORD    pointer to next TCB
  7604.  0Ah    WORD    pointer to previous TCB
  7605.  0Ch    WORD    pointer to associated TCB (if applicable)
  7606.  0Eh    WORD    reserved
  7607. ---CDB---
  7608.  10h    BYTE    drive number
  7609.  11h    BYTE    ???
  7610.  12h 64 BYTEs    directory name
  7611.  52h    WORD    first directory cluster (0000h = root)
  7612.  
  7613. Format of Block Device Block:
  7614. Offset    Size    Description
  7615.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7616.  01h    BYTE    header block ID, "B" = block device block
  7617.  02h    WORD    length of block in paragraphs
  7618.  04h    WORD    segment address of next header block (0000h if last)
  7619.  06h    WORD    segment address of previous header block (0000h if first)
  7620.  08h    WORD    pointer to next TCB
  7621.  0Ah    WORD    pointer to previous TCB
  7622.  0Ch    WORD    pointer to associated TCB (if applicable)
  7623.  0Eh    WORD    reserved
  7624. ---BDB---
  7625.  10h    BYTE    logical drive
  7626.  11h    BYTE    unit passed to driver
  7627.  12h    WORD    sector size
  7628.  14h    BYTE    cluster mask
  7629.  15h    BYTE    cluster shift count
  7630.  16h    WORD    starting sector of first FAT
  7631.  18h    BYTE    number of FATs
  7632.  19h    WORD    number of root directories
  7633.  1Bh    WORD    sector number of first data sector (cluster 0002h)
  7634.  1Dh    WORD    number of clusters + 1 (number of highest data cluster)
  7635.  1Fh    BYTE    number of sectors in FAT
  7636.  20h    WORD    beginning root directory sector number
  7637.  22h    DWORD    device driver address
  7638.  26h    BYTE    media descriptor byte
  7639.  27h  5 BYTEs    ???
  7640.  2Ch    BYTE    flag: volume > 32MB
  7641.  2Dh    BYTE    ???
  7642.  2Eh    BYTE    number of sectors per cluster
  7643.  2Fh    WORD    number of clusters on device
  7644.  31h    WORD    number of free clusters (FFFFh = unknown)
  7645.  33h    WORD    root directory cluster number
  7646.  35h    WORD    pointer to alias/subst string
  7647.  37h    WORD    TCB segment address of owner (0000h = none)
  7648.  
  7649.  
  7650. Format of Record Lock Block:
  7651. Offset    Size    Description
  7652.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7653.  01h    BYTE    header block ID, "R" = record lock block
  7654.  02h    WORD    length of block in paragraphs
  7655.  04h    WORD    segment address of next header block (0000h if last)
  7656.  06h    WORD    segment address of previous header block (0000h if first)
  7657.  08h    WORD    pointer to next TCB
  7658.  0Ah    WORD    pointer to previous TCB
  7659.  0Ch    WORD    pointer to associated TCB (if applicable)
  7660.  0Eh    WORD    reserved
  7661. ---RLB---
  7662.  10h    WORD    segment address of owner's PSP
  7663.  12h    WORD    segment address of Global File Block (see above)
  7664.  14h    WORD    segment address of owner's Task File Block (see above)
  7665.  16h    DWORD    file offset of locked region start
  7666.  1Ah    DWORD    length of locked region
  7667.  1Eh    WORD    owner's handle for file
  7668. --------O-D407-------------------------------
  7669. INT D4 - PC-MOS/386 v3.0+ - WAIT FOR EVENT
  7670.     AH = 07h
  7671.     AL = events to monitor (see below)
  7672.     BX = number of timer ticks until timeout if AL bit 1 set
  7673.     CX = bitmap of IRQs to monitor if AL bit 2 set
  7674.         (bit 0 = IRQ0 .. bit 15 = IRQ15)
  7675.     DX = port to monitor if AL bit 3 set
  7676. Return: CF clear if successful
  7677.         AL = type of event which woke up task (see above)
  7678.         CX = IRQ (if any) which awakened task
  7679.         DX = port (if any) which awakened task
  7680.     CF set on error
  7681.         AX = error code (see INT 21/AH=59h)
  7682. Note:    a device driver may make this call with AL=00h, which indicates that
  7683.       the driver is responsible for setting and clearing the TCBWAIT field
  7684.       in the TCB.  To put task to sleep, set TCBWAIT bits 2-0 to 001; to
  7685.       reawaken it, set bit 1 (leaving other bits unchanged)
  7686. SeeAlso: AH=04h,INT 16/AH=00h,INT 38
  7687.  
  7688. Bitfields for events to monitor:
  7689.  bit 0    keystroke
  7690.  bit 1    timeout
  7691.  bit 2    IRQ
  7692.  bit 3    port access
  7693.  bit 7    return status of user poll routine (other bits ignored if set)
  7694. --------O-D410-------------------------------
  7695. INT D4 - PC-MOS/386 v3.0+ - ENTER/LEAVE NATIVE 386 EXECUTION MODE
  7696.     AH = 10h
  7697.     AL = direction (00h return to V86 mode, 01h enter native mode)
  7698.     CX = length in bytes of Native Context Area ( >=1024 )
  7699.     DX = segment of Native Context Area
  7700. Return: CF clear if successful
  7701.         running in desired mode at instruction following INT D4 call
  7702.         all segment registers converted to appropriate selectors/segments
  7703.     CF set on error
  7704.         AX = error code (see INT 21/AH=59h)
  7705. Note:    MS-DOS calls are available in protected mode
  7706. SeeAlso: AH=11h,AH=12h,AH=13h,INT 2F/AX=1687h,INT 67/AX=DE0Ch,INT 38
  7707. --------O-D411-------------------------------
  7708. INT D4 - PC-MOS/386 v3.0+ - ALLOCATE NATIVE MODE MEMORY BLOCK
  7709.     AH = 11h
  7710.     EBX = block length in bytes
  7711. Return: CF clear if successful
  7712.         EBX = number of bytes actually allocated
  7713.         ES = selector for allocated block
  7714.     CF set on error
  7715.         AX = error code (see INT 21/AH=59h)
  7716. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7717.       system by The Software Link, Inc.
  7718. Note:    memory must be released before program terminates
  7719. SeeAlso: AH=10h,AH=12h,INT 38
  7720. --------O-D412-------------------------------
  7721. INT D4 - PC-MOS/386 v3.0+ - FREE NATIVE MODE MEMORY BLOCK
  7722.     AH = 12h
  7723.     ES = selector for block to free
  7724. Return: CF clear if successful
  7725.     CF set on error
  7726.         AX = error code (see INT 21/AH=59h)
  7727. SeeAlso: AH=10h,AH=11h,AH=13h,INT 38
  7728. --------O-D413-------------------------------
  7729. INT D4 - PC-MOS/386 v5.01 - GET ALIAS FOR SELECTOR (NATIVE MODE ONLY)
  7730.     AH = 13h
  7731.     AL = type of alias selector (00h data, 01h stack, 02h code)
  7732.     BX = selector
  7733. Return: CF clear if successful
  7734.         AX = new selector or 0000h if BX selector not found
  7735.     CF set on error
  7736.         AX = error code (see INT 21/AH=59h)
  7737. SeeAlso: AH=11h,AH=12h
  7738. --------O-D416-------------------------------
  7739. INT D4 - PC-MOS/386 v5.01 - SET/CLEAR IRQ RESERVATION
  7740.     AH = 16h
  7741.     AL = function (00h clear, 01h set reservation)
  7742.     CX = IRQ number
  7743. Return: AX = status
  7744.         (0000h successful, 0001h currently reserved by another task)
  7745. SeeAlso: AH=07h,INT 14/AH=11h"PC-MOS"
  7746. --------O-D419-------------------------------
  7747. INT D4 - PC-MOS/386 v5.01 - GET TASK ID
  7748.     AH = 19h
  7749. Return: BX = caller's task ID
  7750. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7751.       system by The Software Link, Inc.
  7752. SeeAlso: AH=1Dh,AH=1Eh
  7753. --------O-D41A-------------------------------
  7754. INT D4 - PC-MOS/386 v5.01 - GET/SET TASK PRIORITY
  7755.     AH = 1Ah
  7756.     AL = subfunction (00h read, 01h set, 02h get and set)
  7757.     BX = task ID (FFFFh for current task)
  7758.     CL = new priority value
  7759. Return: CF clear if successful
  7760.         CL = current priority value
  7761.     CF set on error
  7762.         AX = error code (see INT 21/AH=59h)
  7763. SeeAlso: AH=1Bh,AH=1Ch
  7764. --------O-D41B-------------------------------
  7765. INT D4 - PC-MOS/386 v5.01 - GET/SET TIME SLICE
  7766.     AH = 1Bh
  7767.     AL = subfunction (00h read, 01h set, 02h get and set)
  7768.     BX = task ID (FFFFh for current task) (see AH=19h)
  7769.     CL = new time slice value
  7770. Return: CF clear if successful
  7771.         CL = current time slice value
  7772.     CF set on error
  7773.         AX = error code (see INT 21/AH=59h)
  7774. SeeAlso: AH=1Ah,AH=1Ch
  7775. --------O-D41C-------------------------------
  7776. INT D4 - PC-MOS/386 v5.01 - GET/SET KEYBOARD MODE
  7777.     AH = 1Ch
  7778.     AL = subfunction (00h enable, 01h disable, 02h get mode)
  7779.     BX = task ID (FFFFh for current task)
  7780. Return: CF clear if successful
  7781.         CL = current keyboard state
  7782.     CF set on error
  7783.         AX = error code (INT 21/AH=59h)
  7784. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7785.       system by The Software Link, Inc.
  7786. SeeAlso: AH=1Ah,AH=1Bh
  7787. --------O-D41D-------------------------------
  7788. INT D4 - PC-MOS/386 v5.01 - GET CURRENT PROGRAM NAME
  7789.     AH = 1Dh
  7790.     BX = task ID (FFFFh for current task) (see AH=19h)
  7791.     ES:DI -> buffer for program name (see below)
  7792. Return: CF clear if successful
  7793.         ES:DI buffer filled
  7794.     CF set on error
  7795.         AX = error code (see INT 21/AH=59h)
  7796. SeeAlso: AH=19h,AH=1Eh
  7797.  
  7798. Format of buffer:
  7799. Offset    Size    Description
  7800.  00h  8 BYTEs    filename
  7801.  08h  3 BYTEs    extension
  7802. --------O-D41E-------------------------------
  7803. INT D4 - PC-MOS/386 v5.01 - GET CURRENT USERNAME AND SECURITY CLASS
  7804.     AH = 1Eh
  7805.     BX = task ID (FFFFh for current task)
  7806.     ES:DI -> 4-byte buffer for username
  7807. Return: CF clear if successful
  7808.         CL = security class
  7809.         20h (' ') none
  7810.         41h-5Ah ('A'-'Z') security level
  7811.         ES:DI buffer filled
  7812.     CF set on error
  7813.         AX = error code (see INT 21/AH=59h)
  7814. SeeAlso: AH=19h,AH=1Dh
  7815. --------O-D41F-------------------------------
  7816. INT D4 - PC-MOS/386 v5.01 - GET TASK PARTITION INFORMATION
  7817.     AH = 1Fh
  7818.     BX = task ID (FFFFh for current task) (see AH=19h)
  7819. Return: CF clear if successful
  7820.         CX = start segment of task
  7821.         DX = ending segment of task
  7822.     CF set on error
  7823.         AX = error code (see INT 21/AH=59h)
  7824. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7825.       system by The Software Link, Inc.
  7826. SeeAlso: AH=2Dh
  7827. --------O-D420-------------------------------
  7828. INT D4 - PC-MOS/386 v5.01 - GET PORT AND BAUDRATE INFORMATION
  7829.     AH = 20h
  7830.     BX = task ID (FFFFh for current task) (see AH=19h)
  7831. Return: CF clear if successful
  7832.         CX = port number (0000h if none)
  7833.         DI:SI = baudrate (if CX nonzero)
  7834.     CF set on error
  7835.         AX = error code (see INT 21/AH=59h)
  7836. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7837.       system by The Software Link, Inc.
  7838. SeeAlso: INT 14/AH=0Ch"FOSSIL"
  7839. --------O-D421-------------------------------
  7840. INT D4 - PC-MOS/386 v5.01 - REMOVE A TASK
  7841.     AH = 21h
  7842.     BX = task ID (FFFFh for current task) (see AH=19h)
  7843. Return: CF clear if successful
  7844.         AX = ASCII percentage of System Memory Pool used
  7845.         (AH = tens digit, AL = ones digit)
  7846.         DS,SI destroyed
  7847.     CF set on error
  7848.         AX = error code (see INT 21/AH=59h)
  7849. SeeAlso: AH=22h
  7850. --------O-D422-------------------------------
  7851. INT D4 - PC-MOS/386 v5.01 - ADD A TASK TO THE SYSTEM
  7852.     AH = 22h
  7853.     DS:SI -> addtask data structure (see below)
  7854. Return: CF clear if successful
  7855.         ES = segment address of the new task's TCB data structure
  7856.     CF set on error
  7857.         AX = error code (see below)
  7858. SeeAlso: AH=21h
  7859.  
  7860. Values for error code:
  7861.  08h    insufficient memory
  7862.  0Bh    invalid addtask structure format
  7863.  12h    insufficient available space in system memory pool
  7864.  1Fh    general failure
  7865.  55h    already allocated
  7866.  57h    if task already in use or invalid parameter
  7867.  
  7868. Format of addtask data structure:
  7869. Offset    Size    Description
  7870.  00h    WORD    task size in KB (min 16KB)
  7871.  02h    WORD    task ID (0000h for automatic selection)
  7872.  04h    BYTE    task class (' ' or 'A'-'Z')
  7873.  05h    DWORD    -> ASCIZ name of task startup batchfile
  7874.  09h    DWORD    -> task's terminal driver (0000000h = background task)
  7875.  0Dh    WORD    task port
  7876.  0Fh    DWORD    task baud rate
  7877.  13h    DWORD    (return) total extended memory
  7878.  17h    DWORD    (return) number of 4K extended memory pages allocated
  7879.  1Bh    WORD    (return) paragraphs of system memory pool allocated
  7880.  1Dh    WORD    (return) system memory pool size in paragraphs
  7881.  1Fh    WORD    (return) ASCII task percentage of system memory pool
  7882.  21h  3 BYTEs    reserved
  7883. --------O-D423-------------------------------
  7884. INT D4 - PC-MOS/386 v5.01 - CHANGE TERMINAL DRIVER
  7885.     AH = 23h
  7886.     BX = task ID (FFFFh for current task)
  7887.     DS:SI -> entry point of the new Device Driver Terminal
  7888. Return: CF clear if successful
  7889.     CF set on error
  7890.         AX = error code (see INT 21/AH=59h)
  7891. --------O-D424-------------------------------
  7892. INT D4 U - PC-MOS/386 v5.01 - GET OPERATING SYSTEM SERIAL NUMBER
  7893.     AH = 24h
  7894. Return: DS:DX -> '$'-terminated string containing the serial number
  7895. --------O-D425-------------------------------
  7896. INT D4 - PC-MOS/386 v5.01 - IDENTIFY LOAD ADDRESS OF DEVICE DRIVER LOCATION
  7897.     AH = 25h
  7898.     DX = driver's CS value
  7899. Return: AX = segment address of driver in system memory pool
  7900.         (0000h if the driver is not within the system memory pool)
  7901. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7902.       system by The Software Link, Inc.
  7903. --------O-D426-------------------------------
  7904. INT D4 - PC-MOS/386 v5.01 - GET SYSTEM CONTROL BLOCK SEGMENT/SELECTOR
  7905.     AH = 26h
  7906. Return: DX = segment/selector of the System Control Block (see AH=02h)
  7907. Note:    this function supersedes AH=02h
  7908. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah
  7909. --------O-D427-------------------------------
  7910. INT D4 - PC-MOS/386 v5.01 - GET TASK CONTROL BLOCK SEGMENT/SELECTOR
  7911.     AH = 27h
  7912.     BX = task ID (FFFFh if current task) (see AH=19h)
  7913. Return: CF clear if successful
  7914.         DX = segment/selector for the Task Control Block (see AH=04h)
  7915.     CF set on error
  7916.         AX = error code (INT 21/AH=59h)
  7917. Note:    this function supersedes AH=04h
  7918. SeeAlso: AH=26h,AH=28h,AH=29h,AH=2Ah
  7919. --------O-D428-------------------------------
  7920. INT D4 - PC-MOS/386 v5.01 - GET CONTROL BLOCK DATA FROM SCB OR TCB
  7921.     AH = 28h
  7922.     BX = offset into control block at which to start reading
  7923.     CX = number of bytes to read
  7924.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  7925.     ES:DI -> buffer for data
  7926. Return: CF clear if successful
  7927.     CF set on error
  7928.         AX = error code (see also INT 21/AH=59h)
  7929.         05h access denied due to an invalid segment/selector
  7930. SeeAlso: AH=26h,AH=27h,AH=29h,AH=2Ah
  7931. --------O-D429-------------------------------
  7932. INT D4 - PC-MOS/386 v5.01 - WRITE CONTROL BLOCK DATA INTO SCB OR TCB
  7933.     AH = 29h
  7934.     BX = offset into control block at which to start writing
  7935.     CX = number of bytes to write
  7936.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  7937.     DS:SI -> buffer containing data to be written
  7938. Return: CF clear if successful
  7939.     CF set on errro
  7940.         AX = error code (see also INT 21/AH=59h)
  7941.         05h access denied due to an invalid segment/selector
  7942. Note:     this function performs no bounds checking
  7943. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7944.       system by The Software Link, Inc.
  7945. SeeAlso: AH=26h,AH=27h,AH=28h,AH=2Ah
  7946. --------O-D42A-------------------------------
  7947. INT D4 - PC-MOS/386 v5.01 - SWAP CONTROL BLOCK DATA OF SCB OR TCB
  7948.     AH = 2Ah
  7949.     BX = offset into control block at which to start swap
  7950.     CX = number of bytes to swap
  7951.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  7952.     DS:SI -> buffer containing new data and to receive current data
  7953. Return: CF clear if successful
  7954.     CF set on error
  7955.         AX = error code (see also INT 21/AH=59h)
  7956.         05h access denied due to an invalid segment/selector
  7957. Note:    the interrupts are disabled during the swap to prevent corruption
  7958. SeeAlso: AH=26h,AH=27h,AH=28h,AH=29h
  7959. --------O-D42C-------------------------------
  7960. INT D4 - PC-MOS/386 v5.01 - GET/SET SPOOLER PARAMETERS
  7961.     AH = 2Ch
  7962.     AL = function
  7963.         00h set spooler timeout
  7964.         CX = timout value in seconds
  7965.         01h get spooler timeout
  7966.         Return: CX = current timeout in seconds
  7967.         02h get spooler parameters
  7968.         Return: CH = priority (00h-09h)
  7969.             CL = disposition (d, h, i, n, s)
  7970.             SI = class (a - z)
  7971.         03h set spooler parameters
  7972.         CH = priority (00h-09h)
  7973.         CL = disposition (d, h, i, n, s)
  7974.         SI = class (a - z)
  7975.         BX = task ID (FFFFh for current task)
  7976.         DX = LPT number
  7977. Return: CF clear if successful
  7978.     CF set on error
  7979.         AX = error code (see INT 21/AH=59h)
  7980. SeeAlso: AH=00h,AH=02h,AH=03h
  7981. --------O-D42D-------------------------------
  7982. INT D4 - PC-MOS/386 v5.01 - GET MAXIMUM TASK SIZE
  7983.     AH = 2Dh
  7984. Return: DX = maximum task size in paragraphs
  7985.     BX = start address of task space
  7986. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7987.       system by The Software Link, Inc.
  7988. SeeAlso: AH=1Fh,AH=22h
  7989. --------r-D5---------------------------------
  7990. INT D5 - IBM ROM BASIC - used while in interpreter
  7991. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7992.     BASIC.COM/BASICA.COM do not restore vector on termination
  7993. --------r-D5---------------------------------
  7994. INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7995. --------r-D6---------------------------------
  7996. INT D6 - IBM ROM BASIC - used while in interpreter
  7997. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7998.     BASIC.COM/BASICA.COM do not restore vector on termination
  7999. --------r-D6---------------------------------
  8000. INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8001. --------r-D7---------------------------------
  8002. INT D7 - IBM ROM BASIC - used while in interpreter
  8003. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8004.     BASIC.COM/BASICA.COM do not restore vector on termination
  8005. --------r-D7---------------------------------
  8006. INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8007. --------r-D8---------------------------------
  8008. INT D8 - IBM ROM BASIC - used while in interpreter
  8009. Notes:    called by ROM BASIC
  8010.     BASIC.COM/BASICA.COM do not restore vector on termination
  8011. --------r-D8---------------------------------
  8012. INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8013. --------H-D8---------------------------------
  8014. INT D8 - Screen Thief v1.00 - RELOCATED IRQ0
  8015. Note:    Screen Thief relocates IRQs 0 through 7 to INT D8 to INT DF by default,
  8016.       but may be directed via a commandline switch to use any range
  8017.       starting at a multiple of 8 between 78h and E0h
  8018. SeeAlso: INT 08"IRQ0",INT 2D/AL=10h"Screen Thief",INT 50"DESQview"
  8019. SeeAlso: INT D9"Screen Thief"
  8020. --------r-D9---------------------------------
  8021. INT D9 - IBM ROM BASIC - used while in interpreter
  8022. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8023.     BASIC.COM/BASICA.COM do not restore vector on termination
  8024. --------r-D9---------------------------------
  8025. INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8026. --------H-D9---------------------------------
  8027. INT D9 - Screen Thief v1.00 - RELOCATED IRQ1
  8028. Note:    (see INT D8"Screen Thief")
  8029. SeeAlso: INT 09"IRQ1",INT D8"Screen Thief",INT DA"Screen Thief"
  8030. --------r-DA---------------------------------
  8031. INT DA - IBM ROM BASIC - used while in interpreter
  8032. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8033.     BASIC.COM/BASICA.COM do not restore vector on termination
  8034. --------r-DA---------------------------------
  8035. INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8036. --------H-DA---------------------------------
  8037. INT DA - Screen Thief v1.00 - RELOCATED IRQ2
  8038. Note:    (see INT D8"Screen Thief")
  8039. SeeAlso: INT 0A"IRQ2",INT D9"Screen Thief",INT DB"Screen Thief"
  8040. --------r-DB---------------------------------
  8041. INT DB - IBM ROM BASIC - used while in interpreter
  8042. Notes:    called by ROM BASIC
  8043.     BASIC.COM/BASICA.COM do not restore vector on termination
  8044. --------r-DB---------------------------------
  8045. INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8046. --------H-DB---------------------------------
  8047. INT DB - Screen Thief v1.00 - RELOCATED IRQ3
  8048. Note:    (see INT D8"Screen Thief")
  8049. SeeAlso: INT 0B"IRQ3",INT DA"Screen Thief",INT DC"Screen Thief"
  8050. --------u-DC---------------------------------
  8051. INT DC - PC/370 v4.1- - API
  8052. SeeAlso: INT 60"PC/370"
  8053. --------r-DC---------------------------------
  8054. INT DC - IBM ROM BASIC - used while in interpreter
  8055. Notes:    called by ROM BASIC
  8056.     BASIC.COM/BASICA.COM do not restore vector on termination
  8057. --------r-DC---------------------------------
  8058. INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8059. --------H-DC---------------------------------
  8060. INT DC - Screen Thief v1.00 - RELOCATED IRQ4
  8061. Note:    (see INT D8"Screen Thief")
  8062. SeeAlso: INT 0C"IRQ4",INT DB"Screen Thief",INT DD"Screen Thief"
  8063. --------r-DD---------------------------------
  8064. INT DD - IBM ROM BASIC - used while in interpreter
  8065. Notes:    called by ROM BASIC
  8066.     BASIC.COM/BASICA.COM do not restore vector on termination
  8067. --------r-DD---------------------------------
  8068. INT DD - STSC APL*PLUS/PC v9.0 - PLACE KEYSTROKE EVENTS IN INPUT BUFFER
  8069.     BX = where to place keystrokes
  8070.         FFFFh insert before current buffer contents
  8071.         0000h replace current contents
  8072.         0001h insert after current contents
  8073.     CX = number of keystroke events to insert
  8074.     ES:SI -> data to be placed into buffer (list of WORD key codes)
  8075.         4000h + N = normal ASCII keystroke N (N = 00h to FFh)
  8076.         4100h + N = extended ASCII keystroke N (N = 03h to 84h)
  8077. SeeAlso: INT 16/AH=05h
  8078. --------H-DD---------------------------------
  8079. INT DD - Screen Thief v1.00 - RELOCATED IRQ5
  8080. Note:    (see INT D8"Screen Thief")
  8081. SeeAlso: INT 0D"IRQ5",INT DC"Screen Thief",INT DE"Screen Thief"
  8082. --------r-DE---------------------------------
  8083. INT DE - IBM ROM BASIC - used while in interpreter
  8084. Notes:    called by ROM BASIC
  8085.     BASIC.COM/BASICA.COM do not restore vector on termination
  8086. --------r-DE---------------------------------
  8087. INT DE - APL*PLUS/PC - ???
  8088. Note:    appears to be the same as INT 16
  8089. --------H-DE---------------------------------
  8090. INT DE - Screen Thief v1.00 - RELOCATED IRQ6
  8091. Note:    (see INT D8"Screen Thief")
  8092. SeeAlso: INT 0E"IRQ6",INT DD"Screen Thief",INT DF"Screen Thief"
  8093. --------b-DF---------------------------------
  8094. INT DF - Victor 9000 - SuperBIOS
  8095. --------r-DF---------------------------------
  8096. INT DF - IBM ROM BASIC - used while in interpreter
  8097. Notes:    called by ROM BASIC
  8098.     BASIC.COM/BASICA.COM do not restore vector on termination
  8099. --------r-DF---------------------------------
  8100. INT DF - APL*PLUS/PC - SAME AS INT 10
  8101. SeeAlso: INT 10
  8102. --------H-DF---------------------------------
  8103. INT DF - Screen Thief v1.00 - RELOCATED IRQ7
  8104. Note:    (see INT D8"Screen Thief")
  8105. SeeAlso: INT 0F"IRQ7",INT DE"Screen Thief"
  8106. --------r-E0---------------------------------
  8107. INT E0 - IBM ROM BASIC - used while in interpreter
  8108. Notes:    called by ROM BASIC
  8109.     BASIC.COM/BASICA.COM do not restore vector on termination
  8110. --------r-E0---------------------------------
  8111. INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION
  8112. SeeAlso: INT CF"APL"
  8113. --------v-E0---------------------------------
  8114. INT E0 - VIRUS - "Micro-128" - ???
  8115. Note:    Micro-128 also overwrites the upper half of the interrupt table
  8116. SeeAlso: INT 9E"VIRUS",INT F1"VIRUS"
  8117. --------O-E0---------------------------------
  8118. INT E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS
  8119.     CL = function number
  8120.     DS,DX = parameters
  8121. Return: as appropriate for function
  8122. Notes:    several functions are covered in more detail in following entries
  8123.     most of these calls are also supported by Digital Research's DOS Plus
  8124.       v2.1; the unsupported functions are 26h,29h-2Bh,3Ah,3Dh-62h,71h-8Ch,
  8125.       90h-92h,94h-97h,9Bh-ABh, and AEh-FFh
  8126. SeeAlso: INT 21/AX=4459h,INT 21/AH=E0h"DOS Plus"
  8127.  
  8128. Values for function number:
  8129.  00h    terminate calling process (see also INT 21/AH=00h)
  8130.  01h    read a character
  8131.  02h    write character to default console (see also INT 21/AH=02h)
  8132.  03h    read character from default AUX (see also INT 21/AH=03h)
  8133.  04h    write character to default AUX (see also INT 21/AH=04h)
  8134.  05h    write character to default list device (see also INT 21/AH=05h)
  8135.  06h    perform raw I/O on default console (see also INT 21/AH=06h)
  8136.  07h    return default AUX input status
  8137.  08h    return default AUX output status
  8138.  09h    write string to default console (see also INT 21/AH=09h)
  8139.  0Ah    read string from default console (see also INT 21/AH=0Ah)
  8140.  0Bh    return default console input status (see also INT 21/AH=0Bh)
  8141.  0Ch    get BDOS release ID
  8142.  0Dh    reset all disk drives (see also INT 21/AH=0Dh)
  8143.  0Eh    set default drive (see also INT 21/AH=0Eh)
  8144.  0Fh    open file via FCB (see also INT 21/AH=0Fh)
  8145.  10h    close file via FCB (see also INT 21/AH=10h)
  8146.  11h    search for first matching file with FCB (see also INT 21/AH=11h)
  8147.  12h    search for next matching file with FCB (see also INT 21/AH=12h)
  8148.  13h    delete file via FCB (see also INT 21/AH=13h)
  8149.  14h    sequential read via FCB (see also INT 21/AH=14h)
  8150.  15h    sequential write via FCB (see also INT 21/AH=15h)
  8151.  16h    create file via FCB (see also INT 21/AH=16h)
  8152.  17h    rename file via FCB (see also INT 21/AH=17h)
  8153.  18h    get bit map of logged drives
  8154.  19h    get default drive (see also INT 21/AH=19h)
  8155.  1Ah    set DMA address offset
  8156.  1Bh    get default disk allocation vector (see also INT 21/AH=1Bh)
  8157.  1Ch    set default drive to read-only
  8158.  1Dh    get bit map of read-only drives
  8159.  1Eh    set file attributes via FCB (see also INT 21/AX=4301h)
  8160.  1Fh    get address of disk parameter block (see also INT 21/AH=1Fh)
  8161.  20h    get/set default user number
  8162.  21h    read random record via FCB (see also INT 21/AH=21h)
  8163.  22h    write random record via FCB (see also INT 21/AH=22h)
  8164.  23h    compute file size with FCB (see also INT 21/AH=23h)
  8165.  24h    get FCB random record number (see also INT 21/AH=24h)
  8166.  25h    reset specified drives
  8167.  26h    access specified drives (not in DR DOS Plus v2.1)
  8168.  27h    free specified drives
  8169.  28h    write random with FCB, zero fill (see also also INT 21/AH=28h)
  8170.  2Ah    lock records in FCB file (see also INT 21/AH=5Ch)
  8171.  2Bh    unlock records in FCB file (see also INT 21/AH=5Ch)
  8172.  2Ch    set BDOS multisector count
  8173.  2Dh    set BDOS error mode
  8174.  2Eh    get free space on disk
  8175.  2Fh    load, initialize, and jump to process (see also INT 21/AH=4Bh)
  8176.  30h    flush write-deferred buffers
  8177.  31h    get/set system variable (DOS Plus v2.1)
  8178.  32h    call BIOS (XIOS) character routine (see below)
  8179.  33h    set DMA address segment
  8180.  34h    get DMA buffer address
  8181.  35h    CP/M-86 allocate maximum memory
  8182.  36h    allocate maximum memory at specified segment
  8183.  37h    CP/M-86 allocate memory segment (see also INT 21/AH=48h)
  8184.  38h    allocate memory at specified segment
  8185.  39h    CP/M-86 free specified memory segment (see also INT 21/AH=49h)
  8186.  3Ah    CP/M-86 free all memory (not in DOS Plus v2.1)
  8187.  3Bh    load .CMD file into memory
  8188.  3Ch    (DOS Plus v2.1) call RSX program
  8189.  40h    (DR-NET) log on a server
  8190.  41h    (DR-NET) log off a server
  8191.  42h    (DR-NET) send a message
  8192.  43h    (DR-NET) receive a message
  8193.  44h    (DR-NET) get network status
  8194.  45h    (DR-NET) get requestor configuration table
  8195.  46h    (DR-NET) set compatibility attributes
  8196.  47h    (DR-NET) get server configuration table
  8197.  48h    (DR-NET) set network error mode
  8198.  49h    (DR-NET) attach network
  8199.  4Ah    (DR-NET) detach network
  8200.  4Bh    (DR-NET) set default password
  8201.  4Ch    (DR-NET) get-set long timeout
  8202.  4Dh    (DR-NET) get parameter table
  8203.  50h    (DR-NET) get network information
  8204.  53h    get current time (see also INT 21/AH=2Ch)
  8205.  54h    set current time (see also INT 21/AH=2Dh)
  8206.  55h    get binary system date (see also INT 21/AH=2Ah)
  8207.  56h    set system date (see also INT 21/AH=2Bh)
  8208.  57h    allocate system flag
  8209.  58h    deallocate system flag
  8210.  59h    reserve memory in global area
  8211.  5Ah    lock physical drive
  8212.  5Bh    unlock physical drive
  8213.  5Ch    search path for executable file
  8214.  5Dh    load and execute command (see also INT 21/AH=4Bh)
  8215.  5Eh    get/set process exit code
  8216.  5Fh    set country information
  8217.  60h    get country information
  8218.  63h    truncate FCB file (see also INT 21/AH=28h)
  8219.  64h    create/update directory label
  8220.  65h    get directory label
  8221.  66h    get FCB date stamp and password mode
  8222.  67h    write extended FCB
  8223.  68h    set system date and time
  8224.  69h    get system date and time in binary
  8225.  6Ah    establish password for file access
  8226.  6Bh    get OS serial number
  8227.  6Ch    (DOS Plus v2.1) get/set program return code
  8228.  6Dh    get/set console mode
  8229.  6Eh    get/set string delimiter
  8230.  6Fh    write block to default console
  8231.  70h    write block to default list device
  8232.  71h    execute DOS-compatible function
  8233.  74h    set FCB time and date stamps
  8234.  80h    allocate memory
  8235.  82h    deallocate memory
  8236.  83h    poll I/O device
  8237.  84h    wait on system flag
  8238.  85h    set system flag
  8239.  86h    create message queue
  8240.  87h    open message queue
  8241.  88h    delete message queue
  8242.  89h    read from message queue
  8243.  8Ah    conditionally read from message queue
  8244.  8Bh    write to message queue
  8245.  8Ch    conditionally write to message queue
  8246.  8Dh    delay calling process
  8247.  8Eh    call process dispatcher (yield CPU)
  8248.  8Fh    terminate calling process (same as function 00h)
  8249.  90h    create a process
  8250.  91h    set calling process' priority
  8251.  92h    attach to default console
  8252.  93h    detach from default console
  8253.  95h    assign default console to process
  8254.  96h    interpret and execute commandline
  8255.  97h    resident procedure library
  8256.  98h    parse ASCII string into FCB (see also INT 21/AH=29h)
  8257.  99h    return default console
  8258.  9Ah    get address of system data (SYSDAT)
  8259.  9Bh    get system time and date
  8260.  9Ch    return calling process' descriptor
  8261.  9Dh    terminate process by name or PD address
  8262.  9Eh    attach to default list device
  8263.  9Fh    detach from default list device
  8264.  A0h    select default list device
  8265.  A1h    conditionally attach to default list device
  8266.  A2h    conditionally attach to default console
  8267.  A3h    get OS version number
  8268.  A4h    get default list device
  8269.  A5h    attach to default AUX
  8270.  A6h    detach from default AUX
  8271.  A7h    conditionally attach to default AUX
  8272.  A8h    set default AUX
  8273.  A9h    return default AUX
  8274.  ACh    read block from default AUX
  8275.  ADh    (DOS Plus v2.1) write block to default AUX
  8276.  B0h    configure default AUX
  8277.  B1h    get/set device control parameters
  8278.  B2h    send Break through default AUX
  8279.  B3h    allocate physical memory
  8280.  B4h    free physical memory
  8281.  B5h    map physical memory
  8282.  B6h    nondestructive message queue read
  8283.  B7h    timed wait on system flag
  8284.  B8h    get/set I/O port mapping
  8285.  B9h    set list device timeout
  8286.  BAh    set AUX timeout value
  8287.  BBh    execute XIOS service
  8288.  BDh    (DR Multiuser DOS) delay
  8289.  FFh    return 80386 to native mode
  8290.  
  8291. Values for DOS Plus v2.1 XIOS functions:
  8292.  00h    terminate program
  8293.  01h    ???
  8294.  02h    check for console input status
  8295.  03h    read character from console
  8296.  04h    write character to console
  8297.  05h    write character to list device
  8298.  06h    write character to auxiliary device
  8299.  07h    read cahracter from auxiliary device
  8300.  0Fh    get list device status
  8301.  10h-14h reserved
  8302.  15h    device initialization
  8303.  16h    check console output status
  8304.  17h-7Fh reserved
  8305. ---BBC Acorn---
  8306.  80h    get XIOS version
  8307.  81h    get Tube semaphore
  8308.  82h    release Tube semaphore
  8309.  83h    select text/graphics
  8310.  84h    update B&W graphics rectangle
  8311.  85h    update color graphics rectangle
  8312.  86h    get/release/update mouse
  8313.  87h    get system error info
  8314.  88h    entry in CLOCK called by WatchDog RSP
  8315.  89h    BBC OSBYTE function
  8316.  8Ah    BBC OSWORD function
  8317.  
  8318. DR Multiuser DOS Error Return Codes:
  8319.  00h no error
  8320.  01h system call not implemented
  8321.  02h illegal system call number
  8322.  03h cannot find memory
  8323.  04h illegal flag number
  8324.  05h flag overrun
  8325.  06h flag underrun
  8326.  07h no unused Queue Descriptors
  8327.  08h no free queue buffer
  8328.  09h cannot find queue
  8329.  0Ah queue in use
  8330.  0Ch no free Process Descriptors
  8331.  0Dh no queue access
  8332.  0Eh empty queue
  8333.  0Fh full queue
  8334.  10h CLI queue missing
  8335.  11h no 8087 in system
  8336.  12h no unused Memory Descriptors
  8337.  13h illegal console number
  8338.  14h no Process Descriptor match
  8339.  15h no console match
  8340.  16h no CLI process
  8341.  17h illegal disk number
  8342.  18h illegal filename
  8343.  19h illegal filetype
  8344.  1Ah character not ready
  8345.  1Bh illegal Memory Descriptor
  8346.  1Ch bad return from BDOS load
  8347.  1Dh bad return from BDOS read
  8348.  1Eh bad return from BDOS open
  8349.  1Fh null command
  8350.  20h not owner of resource
  8351.  21h no CSEG in load file
  8352.  22h process Descriptor exists on Thread Root
  8353.  23h could not terminate process
  8354.  24h cannot attach to process
  8355.  25h illegal list device number
  8356.  26h illegal password
  8357.  28h external termination occurred
  8358.  29h fixup error upon load
  8359.  2Ah flag set ignored
  8360.  2Bh illegal auxilliary device number
  8361. --------O-E0----CL03-------------------------
  8362. INT E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM AUX DEVICE
  8363.     CL = 03h
  8364. Return: AL = ASCII character
  8365. Notes:    A_READ reads the next 8-bit character from the logical auxilliary
  8366.       input device (AUXn:); control is not returned to the calling
  8367.       process until a character has been read.
  8368.     if another process owns AUX, this call blocks until the device becomes
  8369.       available
  8370. SeeAlso: INT 21/AH=03h,INT E0/CL=04h,INT E0/CL=07h,INT E0/CL=A5h,INT E0/CL=ACh
  8371. --------O-E0----CL04-------------------------
  8372. INT E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO AUX DEVICE
  8373.     CL = 04h
  8374.     DL = ASCII character
  8375. Return: nothing
  8376. Note:    if another process owns AUX, this call blocks until the device becomes
  8377.       available
  8378. SeeAlso: INT 21/AH=04h,INT E0/CL=03h,INT E0/CL=08h,INT E0/CL=A5h,INT E0/CL=ADh
  8379. --------O-E0----CL07-------------------------
  8380. INT E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE
  8381.     CL = 07h
  8382. Return: AL = status
  8383.         00h not ready
  8384.         FFh character available
  8385. Desc:    determine whether the current AUX device has input available
  8386. SeeAlso: INT E0/CL=03h,INT E0/CL=08h
  8387. --------O-E0----CL08-------------------------
  8388. INT E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE
  8389.     CL = 08h
  8390. Return: AL = status
  8391.         00h not ready
  8392.         FFh ready for output
  8393. Desc:    determine whether the current AUX device is able to accept more output
  8394. SeeAlso: INT E0/CL=04h,INT E0/CL=07h
  8395. --------O-E0----CL59-------------------------
  8396. INT E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA
  8397.     CL = 59h
  8398.     DX = size in bytes
  8399. Return: AX = FFFFh if failed
  8400.     AX = other if successful
  8401.         ES:BX -> reserved memory
  8402. --------O-E0----CL86-------------------------
  8403. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE
  8404.     CL = 86h
  8405.     DS:DX -> queue descriptor (see below)
  8406. Return: AX = status
  8407.         0000h success
  8408.         FFFFh failure
  8409.     CX = error code
  8410. SeeAlso: INT E0/CL=87h
  8411.  
  8412. Format of queue descriptor:
  8413. Offset    Size    Description
  8414.  00h  2 WORDs    internal use, initialize to zeros
  8415.  04h    WORD    flags
  8416.  06h  8 BYTEs    queue name
  8417.  0Eh    WORD    length of message
  8418.  10h    WORD    number of messages
  8419.  12h  4 WORDs    internal use, initialize to zeros
  8420.  1Ah    WORD    offset in system area of buffer for messages
  8421. --------O-E0----CL87-------------------------
  8422. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE
  8423.     CL = 87h
  8424.     DS:DX -> queue parameter block (see below)
  8425. Return: AX = status
  8426.         0000h success
  8427.         FFFFh failure
  8428.     CX = error code
  8429. SeeAlso: INT E0/CL=86h,INT E0/CL=89h
  8430.  
  8431. Format of queue parameter block:
  8432. Offset    Size    Description
  8433.  00h    WORD    internal use, initialize to zero
  8434.  02h    WORD    queue ID (set by INT E0/CL=87h)
  8435.  04h    WORD    internal use, initialize to zero
  8436.  06h    WORD    offset of queue message buffer
  8437.  08h  8 BYTEs    queue name
  8438. --------O-E0----CL89-------------------------
  8439. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE
  8440.     CL = 89h
  8441.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  8442. Return: AX = status
  8443.         0000h success
  8444.         FFFFh failure
  8445.     CX = error code
  8446. SeeAlso: INT E0/CL=87h,INT E0/CL=8Ah,INT E0/CL=8Bh
  8447. --------O-E0----CL8A-------------------------
  8448. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE
  8449.     CL = 8Ah
  8450.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  8451. Return: AX = status
  8452.         0000h success
  8453.         FFFFh failure
  8454.     CX = error code
  8455. SeeAlso: INT E0/CL=87h,INT E0/CL=89h,INT E0/CL=8Ch
  8456. --------O-E0----CL8B-------------------------
  8457. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE
  8458.     CL = 8Bh
  8459.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  8460. Return: AX = status
  8461.         0000h success
  8462.         FFFFh failure
  8463.     CX = error code
  8464. SeeAlso: INT E0/CL=89h,INT E0/CL=8Ch
  8465. --------O-E0----CL8C-------------------------
  8466. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CWRITE" - CONDITIONALLY WRITE MSG QUEUE
  8467.     CL = 8Ch
  8468.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  8469. Return: AX = status
  8470.         0000h success
  8471.         FFFFh failure
  8472.     CX = error code
  8473. SeeAlso: INT E0/CL=8Ah,INT E0/CL=8Bh
  8474. --------O-E0----CL8E-------------------------
  8475. INT E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER
  8476.     CL = 8Eh
  8477.     DX = FFFFh (optional) to force dispatch
  8478. Return: nothing
  8479. Desc:    allow other processes of the same or higher priority to run if they
  8480.       are ready
  8481. Note:    if DX=FFFFh, a dispatch is forced even if no other process is ready
  8482. SeeAlso: INT E0/CL=91h
  8483. --------O-E0----CL91-------------------------
  8484. INT E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY
  8485.     CL = 91h
  8486.     DL = new priority (00h highest to FFh lowest)
  8487. Note:    sets priority of calling process; transient processes are initialized
  8488.       to priority C8h
  8489. SeeAlso: INT E0/CL=8Eh
  8490. --------O-E0----CL93-------------------------
  8491. INT E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE
  8492.     CL = 93h
  8493. Return: AX = status
  8494.         0000h successfully detached
  8495.         FFFFh detach failed
  8496. --------O-E0----CLA5-------------------------
  8497. INT E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE
  8498.     CL = A5h
  8499. Desc:    attaches the default auxiliary device to the calling process unless
  8500.       it is already attached to another process, in which case the call
  8501.       blocks until the device becomes available
  8502. Note:    this call should be used before attempting to read or write from
  8503.       the AUX device; however, the I/O calls internally call this function
  8504.       to ensure device ownership
  8505. SeeAlso: INT E0/CL=03h,INT E0/CL=04h,INT E0/CL=A6h,INT E0/CL=A7h,INT E0/CL=A8h
  8506. SeeAlso: INT E0/CL=ACh,INT E0/CL=ADh,INT E0/CL=B0h
  8507. --------O-E0----CLA6-------------------------
  8508. INT E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE
  8509.     CL = A6h
  8510. Return: AX = status
  8511.         0000h successfully detached
  8512.         FFFFh detach failed
  8513.     CX = error code
  8514. SeeAlso: INT E0/CL=A5h,INT E0/CL=A7h
  8515. --------O-E0----CLA7-------------------------
  8516. INT E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE
  8517.     CL = A7h
  8518. Return: AX = status
  8519.         0000h attached
  8520.         FFFFh unable to attach
  8521. Desc:    attaches the default auxiliary device to the calling process if it is
  8522.       available
  8523. Note:    does not block if the device is already in use
  8524. SeeAlso: INT E0/CL=A5h,INT E0/CL=A6h,INT E0/CL=A8h,INT E0/CL=B0h
  8525. --------O-E0----CLA8-------------------------
  8526. INT E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER
  8527.     CL = A8h
  8528.     DL = auxiliary device number
  8529. Return: AX = status
  8530.         0000h successful
  8531.         FFFFh failed
  8532.     CX = error code
  8533. Desc:    specify which physical device will become AUX
  8534. SeeAlso: INT E0/CL=A5h,INT E0/CL=A9h
  8535. --------O-E0----CLA9-------------------------
  8536. INT E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER
  8537.     CL = A9h
  8538. Return: AL = current default auxiliary device number
  8539. Desc:    determine which physical device is currently AUX
  8540. SeeAlso: INT E0/CL=A8h
  8541. --------O-E0----CLAC-------------------------
  8542. INT E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE
  8543.     CL = ACh
  8544.     DS:DX -> character control block (CHCB) (see below)
  8545. Return: AX = number of characters read
  8546. Desc:    read characters from the default auxiliary (AUXn:) device into a buffer
  8547.       until the buffer is full or the device is no longer ready
  8548. Notes:    if the device is initially not ready, blocks until at least one
  8549.       character has been read
  8550.     if another process owns AUX, this call blocks until the device becomes
  8551.       available
  8552. SeeAlso: INT E0/CL=03h,INT E0/CL=A5h,INT E0/CL=ADh
  8553.  
  8554. Format of character control block (CHCB):
  8555. Offset    Size    Description
  8556.  00h    DWORD    pointer to character buffer
  8557.  04h    WORD    length of character buffer
  8558. --------O-E0----CLAD-------------------------
  8559. INT E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE
  8560.     CL = ADh
  8561.     DS:DX -> character control block (see INT E0/CL=ACh)
  8562. Return: AX = number of characters written
  8563. Note:    does not return until at least one character has been written
  8564. SeeAlso: INT E0/CL=04h,INT E0/CL=A5h,INT E0/CL=ACh
  8565. --------O-E0----CLB0-------------------------
  8566. INT E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS
  8567.     CL = B0h
  8568.     DX:DX -> AUX device parameter block (see below)
  8569. Return: AX = status
  8570.         0000h successful
  8571.         parameter block updated
  8572.         FFFFh failed
  8573.         CX = error code
  8574. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  8575.  
  8576. Format of AUX device parameter block:
  8577. Offset    Size    Description
  8578.  00h    BYTE    function (00h get, 01h set)
  8579.  01h    BYTE    baud rate (see below) FFh = don't change/unknown
  8580.  02h    BYTE    parity (see below)
  8581.  03h    BYTE    stop bits (00h one, 01h 1.5, 02h two, FFh unknown/don't change)
  8582.  04h    BYTE    data bits (05h-08h or FFh unknown/don't change)
  8583.  05h    BYTE    handshake (00h none, 01h DTS/DSR, 02h RTS/CTS, 04h XON/XOFF,
  8584.         FFh unknown/don't change)
  8585.  06h    BYTE    XON character, FFh unknown/don't change
  8586.  07h    BYTE    XOFF character, FFh unknown/don't change
  8587.  
  8588. Values for parity:
  8589.  00h    none
  8590.  01h    odd
  8591.  02h    none
  8592.  03h    even
  8593.  04h    stick parity bit
  8594.  FFh    don't change/unknown
  8595.  
  8596. Values for baud rate:
  8597.  00h    50 baud
  8598.  01h    62.5 baud
  8599.  02h    75 baud
  8600.  03h    110 baud
  8601.  04h    134.5 baud
  8602.  05h    150 baud
  8603.  06h    200 baud
  8604.  07h    300 baud
  8605.  08h    600 baud
  8606.  09h    1200 baud
  8607.  0Ah    1800 baud
  8608.  0Bh    2000 baud
  8609.  0Ch    2400 baud
  8610.  0Dh    3600 baud
  8611.  0Eh    4800 baud
  8612.  0Fh    7200 baud
  8613.  10h    9600 baud
  8614.  11h    19200 baud
  8615.  12h    38400 baud
  8616.  13h    56000 baud
  8617.  14h    76800 baud
  8618.  15h    115200 baud
  8619. --------O-E0----CLB1-------------------------
  8620. INT E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS
  8621.     CL = B1h
  8622.     DS:DX -> AUX device control block (see below)
  8623. Return: AX = status
  8624.         0000h successful
  8625.         control block updated
  8626.         FFFFh failed
  8627.         CX = error code
  8628. SeeAlso: INT E0/CL=B0h,INT E0/CL=B2h
  8629.  
  8630. Format of AUX device control block:
  8631. Offset    Size    Description
  8632.  00h    BYTE    function (00h get, 01h set)
  8633.  01h    BYTE    DTR state (00h low, 01h high, FFh unknown/don't change)
  8634.  02h    BYTE    RTS state (00h low, 01h high, FFh unknown/don't change)
  8635.  03h    BYTE    DSR state (00h low, 01h high, FFh unknown/don't change)
  8636.  04h    BYTE    CTS state (00h low, 01h high, FFh unknown/don't change)
  8637.  05h    BYTE    DCD state (00h low, 01h high, FFh unknown/don't change)
  8638.  06h    BYTE    RI state (00h inactive, 01h active, FFh unknown/don't change)
  8639. --------O-E0----CLB2-------------------------
  8640. INT E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE
  8641.     CL = B2h
  8642.     DX = duration of break in system ticks (0001h-FFFFh)
  8643. Return: AX = status
  8644.         0000h successful
  8645.         break signal completed
  8646.         FFFFh failed
  8647.         CX = error code
  8648. Note:    if the AUX device is currently owned by another process, this call will
  8649.       block until the device becomes available
  8650. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  8651. --------O-E0----CLBD-------------------------
  8652. INT E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION
  8653.     CL = BDh
  8654.     DX = delay in system ticks
  8655. Return: after the delay elapses
  8656. Notes:    the length of a system tick is installation-dependent (typically
  8657.       1/50 or 1/60 second); the length may be determined by reading the
  8658.       TICKSPERSEC value from the system data segment
  8659.     the actual delay before the process is rescheduled to run may be up to
  8660.       one tick longer than requested; the delay between rescheduling and
  8661.       actual execution cannot be predicted if higher-priority processes
  8662.       are awaiting a turn at the CPU
  8663. SeeAlso: INT 15/AH=86h,INT 1A/AX=FF01h,INT 2F/AX=1224h,INT 62/AX=0096h
  8664. --------r-E1---------------------------------
  8665. INT E1 - IBM ROM BASIC - used while in interpreter
  8666. Notes:    called by ROM BASIC
  8667.     BASIC.COM/BASICA.COM do not restore vector on termination
  8668. --------N-E1---------------------------------
  8669. INT E1 - PC Cluster Disk Server Information
  8670. SeeAlso: INT E2
  8671. --------r-E2---------------------------------
  8672. INT E2 - IBM ROM BASIC - used while in interpreter
  8673. Notes:    called by ROM BASIC
  8674.     BASIC.COM/BASICA.COM do not restore vector on termination
  8675. --------N-E2---------------------------------
  8676. INT E2 - PC Cluster Program
  8677. --------r-E3---------------------------------
  8678. INT E3 - IBM ROM BASIC - used while in interpreter
  8679. Notes:    called by ROM BASIC
  8680.     BASIC.COM/BASICA.COM do not restore vector on termination
  8681. --------r-E40005-----------------------------
  8682. INT E4 - Logitech Modula v2.0 - MonitorEntry
  8683.     AX = 0005h
  8684.     BX = priority
  8685. SeeAlso: AX=0006h
  8686. --------r-E40006-----------------------------
  8687. INT E4 - Logitech Modula v2.0 - MonitorExit
  8688.     AX = 0006h
  8689. SeeAlso: AX=0005h
  8690. --------r-E4---------------------------------
  8691. INT E4 - IBM ROM BASIC - used while in interpreter
  8692. Notes:    called by ROM BASIC
  8693.     BASIC.COM/BASICA.COM do not restore vector on termination
  8694. --------r-E5---------------------------------
  8695. INT E5 - IBM ROM BASIC - used while in interpreter
  8696. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8697.     BASIC.COM/BASICA.COM do not restore vector on termination
  8698. --------r-E6---------------------------------
  8699. INT E6 - IBM ROM BASIC - used while in interpreter
  8700. Notes:    called by ROM BASIC
  8701.     BASIC.COM/BASICA.COM do not restore vector on termination
  8702. --------r-E7---------------------------------
  8703. INT E7 - IBM ROM BASIC - used while in interpreter
  8704. Notes:    called by ROM BASIC
  8705.     BASIC.COM/BASICA.COM do not restore vector on termination
  8706. --------r-E8---------------------------------
  8707. INT E8 - IBM ROM BASIC - used while in interpreter
  8708. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8709.     BASIC.COM/BASICA.COM do not restore vector on termination
  8710. --------r-E9---------------------------------
  8711. INT E9 - IBM ROM BASIC - used while in interpreter
  8712. Notes:    called by ROM BASIC
  8713.     BASIC.COM/BASICA.COM do not restore vector on termination
  8714. --------r-EA---------------------------------
  8715. INT EA - IBM ROM BASIC - used while in interpreter
  8716. Notes:    called by ROM BASIC
  8717.     BASIC.COM/BASICA.COM do not restore vector on termination
  8718. --------r-EB---------------------------------
  8719. INT EB - IBM ROM BASIC - used while in interpreter
  8720. Notes:    called by ROM BASIC
  8721.     BASIC.COM/BASICA.COM do not restore vector on termination
  8722. --------r-EC---------------------------------
  8723. INT EC - IBM ROM BASIC - used while in interpreter
  8724. Notes:    called by ROM BASIC
  8725.     BASIC.COM/BASICA.COM do not restore vector on termination
  8726. --------N-EC---------------------------------
  8727. INT EC - used by Alloy NTNX
  8728. --------r-EC---------------------------------
  8729. INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR
  8730.     AX = function number (0000h to 0140h)
  8731.     STACK:    DWORD address to return to
  8732.         any arguments required by function
  8733. Return: STACK:    return address popped, but otherwise unchanged
  8734. Desc:    this is the interface from applications to the runtime system by Exact
  8735.       Automatisering B.V. of the Netherlands.  By using this interrupt,
  8736.       it can provide DLL-style capabilities under MS-DOS.
  8737. Note:    the interrupt handler removes the return address and flags placed on
  8738.       the stack by the INT EC, then jumps to the appropriate function
  8739. --------r-ED---------------------------------
  8740. INT ED - IBM ROM BASIC - used while in interpreter
  8741. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8742.     BASIC.COM/BASICA.COM do not restore vector on termination
  8743.     INT 80 through INT ED are modified but not restored by Direct Access
  8744.       v4.0, and may be left dangling by other programs written with the
  8745.       same version of compiled BASIC
  8746. SeeAlso: INT EC"BASIC",INT EE"BASIC"
  8747. --------r-EE---------------------------------
  8748. INT EE - IBM ROM BASIC - used while in interpreter
  8749. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8750.     BASIC.COM/BASICA.COM do not restore vector on termination
  8751. SeeAlso: INT ED"BASIC",INT EE"BASIC"
  8752. --------r-EF---------------------------------
  8753. INT EF - BASIC - ORIGINAL INT 09 VECTOR
  8754. Note:    BASIC.COM/BASICA.COM do not restore vector on termination
  8755. SeeAlso: INT EE"BASIC",INT F0"BASIC"
  8756. --------O-EF----CX0473-----------------------
  8757. INT EF - GEM - INTERFACE
  8758.     CX = 0473h
  8759.     DS:DX -> GEM parameter block
  8760. --------r-F0---------------------------------
  8761. INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR
  8762. Note:    BASICA.COM does not restore vector on termination
  8763. SeeAlso: INT EF"BASIC"
  8764. --------*-F1---------------------------------
  8765. INT F1 - reserved for user interrupt
  8766. --------s-F1---------------------------------
  8767. INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
  8768.     DS:BX -> '$'-terminated text string
  8769. Program: SPEECH.COM is a resident text-to-speech converter by Douglas Sisco
  8770. --------s-F1---------------------------------
  8771. INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM
  8772. SeeAlso: INT F2"SPEECH"
  8773. --------U-F1---------------------------------
  8774. INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS
  8775. Return: AX:BX -> data area
  8776. Program: AQUEDUCT and PIPELINE are TSRs by James W. Birdsall to connect COM1
  8777.       and COM2 in software
  8778. Note:    The installation check consists of testing for the following signature
  8779.       immediately preceding the interrupt handler: "JWBtvv" where 't' is
  8780.       either "A" for AQUEDUCT or "P" for PIPELINE and "vv" is a two-digit
  8781.       version number
  8782. Index:    installation check;AQUEDUCT|installation check;PIPELINE
  8783. --------v-F1---------------------------------
  8784. INT F1 - VIRUS - "Violetta" - ???
  8785. Note:    used but not chained by virus
  8786. SeeAlso: INT E0"VIRUS",INT FF"VIRUS"
  8787. --------*-F2---------------------------------
  8788. INT F2 - reserved for user interrupt
  8789. --------s-F2---------------------------------
  8790. INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM
  8791. SeeAlso: INT F1"SPEECH"
  8792. ----------F2---------------------------------
  8793. INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API
  8794.     AH = function
  8795.         01h power up
  8796.         02h power down
  8797.         03h set controls
  8798.         04h capture image
  8799.         05h display image
  8800.         06h read file
  8801.         07h write file
  8802.         08h write array
  8803.         09h read pixel
  8804.         0Ah write pixel
  8805.         0Bh check if VGA present
  8806.         0Ch set video mode
  8807.         0Dh check for keystroke
  8808.         0Eh delay
  8809.     ???
  8810. Return: ???
  8811. Program: ImageCapture is a product of International Computers
  8812. SeeAlso: INT F3"ICCTSR"
  8813. --------*-F3---------------------------------
  8814. INT F3 - reserved for user interrupt
  8815. --------s-F3---------------------------------
  8816. INT F3 - SoundBlaster - POINTER TO ECHO VALUE
  8817. Note:    this is not a vector, but a pointer to a DWORD containing the echo
  8818.       value selected with SET-ECHO.EXE
  8819. SeeAlso: INT 2F/AX=FBFBh
  8820. ----------F3---------------------------------
  8821. INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR
  8822. Program: ImageCapture is a product of International Computers
  8823. SeeAlso: INT F2"ICCTSR"
  8824. --------*-F4---------------------------------
  8825. INT F4 - reserved for user interrupt
  8826. --------T-F4---------------------------------
  8827. INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK
  8828. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT FE"DoubleDOS"
  8829. --------*-F5---------------------------------
  8830. INT F5 - reserved for user interrupt
  8831. --------T-F5---------------------------------
  8832. INT F5 - DoubleDOS - ???
  8833. --------*-F6---------------------------------
  8834. INT F6 - reserved for user interrupt
  8835. --------T-F6---------------------------------
  8836. INT F6 - DoubleDOS - ???
  8837. --------*-F7---------------------------------
  8838. INT F7 - reserved for user interrupt
  8839. --------T-F7---------------------------------
  8840. INT F7 - DoubleDOS - ???
  8841. ----------F700-------------------------------
  8842. INT F7 - FSBBS 2.0 - CONFIGURATION RECORD
  8843.     AH = 00h
  8844.     AL = function
  8845.         00h get configuration record
  8846.         Return: DS:DX -> configuration record
  8847.         01h set configuration record
  8848.         02h get path for option
  8849.         DS:DX -> option name
  8850.         Return: DS:DX -> path
  8851.         03h determine whether configuration record set
  8852.         Return: AX = status
  8853.                 0000h set
  8854.                 0001h not yet set
  8855.         04h get link state
  8856.         Return: AX = state
  8857.                 0000h unlinked
  8858.                 0001h linked
  8859. Notes:    this information is preliminary and still subject to change
  8860.     all of the INT F7 calls for FSBBS are used for interprogram
  8861.       communication between the BBS kernel and the programs it spawns
  8862. SeeAlso: AH=01h
  8863. ----------F701-------------------------------
  8864. INT F7 - FSBBS 2.0 - USER RECORD
  8865.     AH = 01h
  8866.     AL = function
  8867.         00h get user record for user currently online
  8868.         Return: DS:DX -> user record
  8869.         01h set user record
  8870.         DS:DX -> user record
  8871. SeeAlso: AH=00h,AH=02h
  8872. ----------F702-------------------------------
  8873. INT F7 - FSBBS 2.0 - GET ACCOUNT NAME
  8874.     AH = 02h
  8875. Return: DS:DX -> 8-character blank-padded account name
  8876. SeeAlso: AH=01h
  8877. ----------F703-------------------------------
  8878. INT F7 - FSBBS 2.0 - TERMINAL NUMBER
  8879.     AH = 03h
  8880.     AL = function
  8881.         00h get terminal index number
  8882.         Return: DX = index number
  8883.         01h set terminal index number
  8884.         DX = terminal index
  8885. ----------F704-------------------------------
  8886. INT F7 - FSBBS 2.0 - PASSDATA BUFFER
  8887.     AH = 04h
  8888.     AL = function
  8889.         00h get PassData buffer contents
  8890.         DS:DX -> buffer for PassData contents
  8891.         01h set PassData contents
  8892.         DS:DX -> buffer containing new PassData
  8893.         CH = length of data in buffer
  8894. ----------F705-------------------------------
  8895. INT F7 - FSBBS 2.0 - TIMER FUNCTIONS
  8896.     AH = 05h
  8897.     AL = function
  8898.         00h get time remaining
  8899.         Return: DX = number of minutes remaining
  8900.         01h get current time
  8901.         Return: DS:DX -> 8-character time string
  8902.         02h increment time
  8903.         DX = number of additional minutes
  8904.         03h decrement time
  8905.         DX = number of minutes
  8906. SeeAlso: AH=06h
  8907. ----------F706-------------------------------
  8908. INT F7 - FSBBS 2.0 - FUNCTION AVAILABILITY
  8909.     AH = 06h
  8910.     AL = function
  8911.         00h determine whether function is available
  8912.         DX = index of function
  8913.         01h set function availability
  8914.         DX = index of function
  8915.         ???
  8916. SeeAlso: AH=05h,AH=07h
  8917. ----------F707-------------------------------
  8918. INT F7 - FSBBS 2.0 - DUMP FUNCTIONS
  8919.     AH = 07h
  8920.     AL = function
  8921.         00h get current dump mode
  8922.         Return: DL = mode
  8923.         01h set dump mode
  8924.         DL = mode
  8925. SeeAlso: AH=06h
  8926. --------*-F8---------------------------------
  8927. INT F8 - reserved for user interrupt
  8928. --------h-F8---------------------------------
  8929. INT F8 - TANDY??? - 100 HZ INTERRUPT
  8930. SeeAlso: INT FA"USART"
  8931. --------T-F8---------------------------------
  8932. INT F8 - DoubleDOS - ???
  8933. --------*-F9---------------------------------
  8934. INT F9 - reserved for user interrupt
  8935. --------T-F9---------------------------------
  8936. INT F9 - DoubleDOS - ???
  8937. --------*-FA---------------------------------
  8938. INT FA - reserved for user interrupt
  8939. --------h-FA---------------------------------
  8940. INT FA - TANDY??? - SERIAL PORT USART INTERRUPT
  8941. SeeAlso: INT F8"100 HZ",INT FB"USART"
  8942. --------T-FA---------------------------------
  8943. INT FA - DoubleDOS - TURN OFF TIMESHARING
  8944. SeeAlso: INT 21/AH=EAh"DoubleDOS",INT FB"DoubleDOS"
  8945. --------*-FB---------------------------------
  8946. INT FB - reserved for user interrupt
  8947. --------h-FB---------------------------------
  8948. INT FB - TANDY??? - KEYBOARD USART RECEIVE INTERRUPT
  8949. SeeAlso: INT FA"USART"
  8950. --------T-FB---------------------------------
  8951. INT FB - DoubleDOS - TURN ON TIMESHARING
  8952. SeeAlso: INT 21/AH=EBh"DoubleDOS",INT FA"DoubleDOS"
  8953. --------*-FC---------------------------------
  8954. INT FC - reserved for user interrupt
  8955. --------T-FC---------------------------------
  8956. INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS
  8957. Return: ES = segment of display buffer
  8958. Desc:    determine the address of the virtual screen to which the program
  8959.       should write instead of the actual video memory, so that the
  8960.       multitasked programs do not interfere with each other's output
  8961. Note:    the display buffer may be moved if multitasking is enabled
  8962. SeeAlso: INT 21/AH=ECh"DoubleDOS",INT FB"DoubleDOS"
  8963. --------*-FD---------------------------------
  8964. INT FD - reserved for user interrupt
  8965. --------T-FD---------------------------------
  8966. INT FD - DoubleDOS - ???
  8967. --------S-FD---------------------------------
  8968. INT FD - TFPCX - INSTALLATION CHECK
  8969.     AH = function (see separate entries below)
  8970. Program: TFPCX is an interface between modem and terminal program for packet-
  8971.       radio communications
  8972. Notes:    the installation check consists of testing for the string "N5NX" three
  8973.       bytes beyond the interrupt handler; INT FD is the default, but may
  8974.       be changed, so the full installation check consists of scanning
  8975.       for the signature
  8976.     TFPCX returns AX=FFFFh on any unsupported function call
  8977. SeeAlso: AH=01h,AH=03h,AH=FEh
  8978. --------S-FD01-------------------------------
  8979. INT FD - TFPCX - TEST FOR CHARACTER WAITING
  8980.     AH = 01h
  8981. Return: AX = status
  8982.         0000h no characters waiting
  8983.         0001h character available for input
  8984. Program: TFPCX is an interface between modem and terminal program for packet-
  8985.       radio communications
  8986. SeeAlso: AH=02h
  8987. --------S-FD02-------------------------------
  8988. INT FD - TFPCX - GET CHARACTER
  8989.     AH = 02h
  8990. Return: AL = character
  8991. Notes:    this call is only allowed if AH=01h indicated that a character is
  8992.       available
  8993.     all available characters should be read before sending any additional
  8994.       characters
  8995. SeeAlso: AH=01h,AH=03h
  8996. --------S-FD03-------------------------------
  8997. INT FD - TFPCX - OUTPUT CHARACTER
  8998.     AH = 03h
  8999.     AL = character to send
  9000. SeeAlso: AH=02h
  9001. --------S-FDFE-------------------------------
  9002. INT FD - TFPCX - GET VERSION
  9003.     AH = FEh
  9004. Return: AH = major version
  9005.     AL = minor version
  9006. Program: TFPCX is an interface between modem and terminal program for packet-
  9007.       radio communications
  9008. SeeAlso: AH=01h,AH=03h
  9009. --------B-FE---------------------------------
  9010. INT FE - AT/XT286/PS50+ - destroyed by return from protected mode
  9011. Note:    the ROM BIOS uses 0030h:0100h as the initial stack on startup, which
  9012.       is the last fourth of the interrupt vector table.  If the processor
  9013.       is returned to real mode via a hardware reset (the only possibility
  9014.       on an 80286, though there are a number of ways of generating one),
  9015.       then the BIOS startup code stacks three words on its scratch stack
  9016.       before determining that a return to real mode has been requested.
  9017.       As a result, INT FE and INT FF are corrupted.
  9018. SeeAlso: INT FF"XT286"
  9019. --------T-FE---------------------------------
  9020. INT FE - DoubleDOS - GIVE UP TIME
  9021.     AL = number of 55ms time slices to give away
  9022. Return: after other program (if active) has run
  9023. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F4"DoubleDOS"
  9024. --------G-FE---------------------------------
  9025. INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER
  9026. SeeAlso: INT 3F
  9027. --------B-FF---------------------------------
  9028. INT FF - AT/XT286/PS50+ - destroyed by return from protected mode
  9029. Note:    (see INT FE"XT286")
  9030. SeeAlso: INT FE"XT286"
  9031. --------b-FF---------------------------------
  9032. INT FF - Z100 - WARM BOOT
  9033. SeeAlso: INT 40"Z100"
  9034. --------Q-FF---------------------------------
  9035. INT FF U - QEMM-386.SYS v6.0+ - internal
  9036. Notes:    requires that a byte in the conventional-memory stub be set to the
  9037.       desired function number (00h through 0Ch)
  9038. --------v-FF---------------------------------
  9039. INT FF - VIRUS - "Violetta" - ???
  9040. Note:    used but not chained by virus
  9041. SeeAlso: INT E0"VIRUS",INT F1"VIRUS"
  9042. --------!---FILELIST-------------------------
  9043. Please redistribute the following files unmodified as a group, in a trio of
  9044. archives named INTER38A through INTER38C (preferably the original authenticated
  9045. PKZIP archives):
  9046.     INTERRUP.1ST    the read-me file, containing credits, availability info
  9047.     INTERRUP.A    INT 00 through INT 14/7F
  9048.     INTERRUP.B    INT 14/80 through INT 15
  9049.     INTERRUP.C    INT 16 through INT 21/41
  9050.     INTERRUP.D    INT 21/42 through INT 21/7F
  9051.     INTERRUP.E    INT 21/80 through INT 21/FF
  9052.     INTERRUP.F    INT 22 through INT 2F/7F
  9053.     INTERRUP.G    INT 2F/80 through INT 2F/FF
  9054.     INTERRUP.H    INT 30 through INT 60
  9055.     INTERRUP.I    INT 61 through INT 68
  9056.     INTERRUP.J    INT 69 through INT FF
  9057.     INTERRUP.PRI    a brief introduction to interrupts
  9058.     INTPRINT.COM    a simple formatter that also generates a list summary
  9059.     INTPRINT.DOC    instructions for INTPRINT
  9060.     86BUGS.LST    a listing of CPU bugs and undocumented features
  9061.     CMOS.LST    a description of the CMOS RAM data bytes
  9062.     GLOSSARY.LST    a glossary of terms, abbreviations, and acronyms
  9063.     MEMORY.LST    format of the BIOS data area
  9064.     PORTS.LST    a listing of I/O ports
  9065.     COMBINE.BAT    combine the pieces of the list into a single file
  9066. The following files should be distributed in an archive called INTER37D:
  9067.     INT.COM        invoke interrupts from commandline
  9068.     INT2HLP.BAT    Perl script to convert list into QuickHelp database
  9069.     INT2GUID.*    convert list into TurboPower GUIDE or POPHELP database
  9070.     INT2QH.*    program to convert list into QuickHelp database
  9071.     INTERVUE.EXE    indexed interrupt list browser
  9072.     INTHELP.*    convert list into TurboPower GUIDE database
  9073.     INTLIST.E    Epsilon extension for handling list
  9074.     INTLIST.ICO    Windows icon for INTERVUE
  9075.     INTPRINT.C    source code for INTPRINT
  9076.     RB2NG.*        convert list into Norton Guides database
  9077. This compilation is Copyright (c) 1989,1990,1991,1992,1993 Ralf Brown
  9078. --------!---CONTACT_INFO---------------------
  9079. Internet: ralf@telerama.lm.com    !!NOTE NEW DOMAIN NAME!!
  9080. UUCP: {uunet,harvard}!telerama.lm.com!ralf
  9081. FIDO: Ralf Brown 1:129/26.1
  9082.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  9083.     unless you address it to me)
  9084. CIS:  >INTERNET:ralf@telerama.lm.com
  9085.