home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / FAQSYS18.ZIP / FAQS.DAT / INTERRUP.K < prev    next >
Text File  |  1996-01-04  |  27KB  |  621 lines

  1. --------N-7A---------------------------------
  2. INT 7A - Novell NetWare - LOW-LEVEL API - Notes
  3. Note:   this interrupt is used for IPX/SPX access in NetWare versions through
  4.           2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  5.           entry point even though INT 7A still exists.  For both INT 7A and
  6.           the FAR entry point, BX contains the function number; IPX is
  7.           sometimes called internally with BX bit 15 set, which causes the
  8.           handler to bypass some initial checks and an optional call to the
  9.           IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h
  10.           (see #1514)
  11. SeeAlso: INT 2F/AX=7A00h,INT 64"Novell",INT 7A/BX=0000h
  12. --------N-7A----BX0000-----------------------
  13. INT 7A - Novell NetWare - IPX Driver - OPEN SOCKET
  14.         BX = 0000h
  15.         AL = socket longevity
  16.             00h open until close or terminate
  17.             FFh open until close
  18.         DX = socket number (high byte in DL)
  19.             0000h dynamic allocation
  20.             else  socket to open (see #2212)
  21. Return: AL = return code
  22.             00h success
  23.                 DX = socket number
  24.             FEh socket table full
  25.             FFh socket already open
  26. Notes:  TSRs which need to use sockets should set AL to FFh, non-resident
  27.           programs should normally use AL=00h
  28.         IPX can be configured to support up to 150 open sockets on a
  29.           workstation, and defaults to 20
  30.         this function is supported by Advanced NetWare 1.02+
  31. SeeAlso: INT 7A/BX=0001h,INT 7A/BX=0004h,INT 7A/BX=0023h
  32.  
  33. (Table 2212)
  34. Values for IPX socket number:
  35.  0451h  File Service (NetWare Core Protocol)
  36.  0452h  Service Advertising Protocol
  37.  0453h  Routing Information Packet
  38.  0455h  NetBIOS Packet
  39.  0456h  diagnostics
  40.  0457h  server serial numbers (labeled "Copy Protection" by Lanalyzer)
  41.  4000h-7FFFh used for dynamic allocation
  42.  4444h  Brightwork Development's SiteLock server
  43.  5555h  Brightwork Development's SiteLock client (workstation)
  44.  8000h-FFFFh assigned by Novell
  45. Note:   SiteLock is an application metering product using IPX to communicate
  46.           between the application and the license server
  47. --------N-7A----BX0001-----------------------
  48. INT 7A - Novell NetWare - IPX Driver - CLOSE SOCKET
  49.         BX = 0001h
  50.         DX = socket number (high byte in DL)
  51. Notes:  also cancels events set by any Event Control Blocks for the socket
  52.         the program must close all open sockets before terminating
  53.         this function is supported by Advanced NetWare 1.02+
  54. SeeAlso: BX=0000h
  55. --------N-7A----BX0002-----------------------
  56. INT 7A - Novell NetWare - IPX Driver - GET LOCAL TARGET
  57.         BX = 0002h
  58.         ES:SI -> target internetwork address (see INT 7A/BX=000Bh)
  59.         ES:DI -> 6-byte buffer for local target
  60. Return: AL = return code
  61.             00h success
  62.                CX = expected one-way transfer time (clock ticks) for a 576-byte
  63.                       packet
  64.                ES:DI -> local target
  65.             FAh unsuccessful (no path to destination)
  66. Notes:  the internetwork address consists of a 4-byte network address followed
  67.           by a 6-byte node address.  The local target is only a 6-byte node
  68.           address.  If the target is in the same network, the local target is
  69.           just the node address of target; otherwise, the local target is the
  70.           node address of the bridge that leads to the target.
  71.         this function may be called from inside IPX and AES Event Service
  72.           Routines, but not from other interrupt handlers
  73.         this function is supported by Advanced NetWare 1.02+
  74. SeeAlso: BX=0009h
  75. --------N-7A----BX0003-----------------------
  76. INT 7A - Novell NetWare - IPX Driver - SEND PACKET
  77.         BX = 0003h
  78.         ES:SI -> Event Control Block (see #2213,#2214)
  79. Notes:  returns immediately; IPX attempts to send the packet in the background
  80.         this function is supported by Advanced NetWare 1.02+
  81.         this function is nearly identical to BX=000Fh, except that it always
  82.           copies the source address into the IPX header assumed to be at the
  83.           beginning of the first fragment
  84. SeeAlso: BX=0004h,BX=000Fh,INT 21/AH=EEh"Novell"
  85.  
  86. Format of IPX Event Control Block:
  87. Offset  Size    Description     (Table 2213)
  88.  00h    DWORD   Link
  89.  04h    DWORD   -> Event Service Routine (00000000h if none)
  90.  08h    BYTE    in use flag (see #2215)
  91.  09h    BYTE    completion code (see #2216)
  92.  0Ah    WORD    (big-endian) socket number (see INT 7A/BX=0000h)
  93.  0Ch  4 BYTEs   IPX workspace
  94.  10h 12 BYTEs   driver workspace
  95.  1Ch  6 BYTEs   immediate local node address
  96.  22h    WORD    fragment count
  97.  24h    var     fragment descriptors
  98.                 Offset  Size    Description
  99.                  00h    DWORD   -> fragment data
  100.                  04h    WORD    size of fragment in bytes.
  101. Notes:  ESR is a far procedure that is called when the ECB has been handled.
  102.           On call, the in use flag is zero if the ECB has been handled,
  103.           non-zero otherwise. If the flag is zero, the completion code holds
  104.           the result of the event.
  105.         the first fragment should start with an IPX header
  106.         all fragments are concatenated and sent in one piece
  107.         node address FFh FFh FFh FFh FFh FFh broadcasts to all nodes
  108.  
  109. Format of AES-ECB:
  110. Offset  Size    Description     (Table 2214)
  111.  00h    DWORD   Link
  112.  04h    DWORD   ESR address
  113.  08h    BYTE    in use flag (see #2215)
  114.  09h  5 BYTEs   AES workspace
  115.  
  116. (Table 2215)
  117. Values for ECB in use flag:
  118.  00h    available
  119.  E0h    AES temporary
  120.  F6h    \ special IPX/SPX processing for v3.02+
  121.  F7h    /
  122.  F8h    IPX in critical section
  123.  F9h    SPX listening
  124.  FAh    processing
  125.  FBh    holding
  126.  FCh    AES waiting
  127.  FDh    AES couting down delay time
  128.  FEh    awaiting packet reception
  129.  FFh    sending packet
  130.  
  131. (Table 2216)
  132. Values for ECB completion code:
  133.  00h    success
  134.  ECh    remote terminated connection without acknowledging packet
  135.  EDh    abnormal connection termination
  136.  EEh    invalid connection ID
  137.  EFh    SPX connection table full
  138.  F9h    event should not be cancelled
  139.  FAh    cannot establish connection with specified destination
  140.  FCh    cancelled
  141.  FDh    malformed packet
  142.  FEh    packet undeliverable
  143.  FFh    physical error
  144.  
  145. (Table 2217)
  146. Values event Service Routine is called with:
  147.         AL = caller's identity (00h = AES, FFh = IPX)
  148.         ES:SI -> event control block
  149.         interrupts disabled
  150.  
  151. Format of IPX header:
  152. Offset  Size    Description     (Table 2218)
  153.  00h    WORD    (big-endian) checksum
  154.  02h    WORD    (big-endian) length in bytes of total packet
  155.  04h    BYTE    transport control
  156.  05h    BYTE    packet type (see #2219)
  157.  06h 10 BYTEs   destination internetwork address
  158.  10h    WORD    (big-endian) destination socket
  159.  12h 10 BYTEs   source internetwork address
  160.  1Ch    WORD    (big-endian) source socket
  161.  
  162. (Table 2219)
  163. Values for IPX packet type:
  164.  00h    unknown packet type
  165.  01h    routing information packet
  166.  02h    echo packet
  167.  03h    error packet
  168.  04h    packet exchange packet (always use this one)
  169.  05h    SPX packet
  170.  11h    NetWare Core Protocol
  171.  14h    Propagated Packet (for NetWare), NetBIOS name packet
  172.  15h-1Eh experimental protocols
  173. Note:   undocumented packet type 14h will cross up to 16 networks deep in
  174.           all directions; as Aaron Martin of Origin Systems discovered, the
  175.           first 64 bytes of the IPX data in such packets should be considered
  176.           reserved, as IPX places the traversed server nodes there.
  177.  
  178. Format of Service Advertising Protocol Service Query Packet:
  179. Offset  Size    Description     (Table 2220)
  180.  00h 30 BYTEs   IPX header
  181.  1Eh    WORD    (big-endian) query type
  182.                 0001h general find service
  183.                 0003h find nearest server
  184.  20h    WORD    (big-endian) server type (see INT 21/AH=E3h"NetWare")
  185.  
  186. Format of Service Advertising Protocol Server Identification Packet:
  187. Offset  Size    Description     (Table 2221)
  188.  00h 30 BYTEs   IPX header
  189.  1Eh    WORD    (big-endian) response type
  190.                 0002h general service
  191.                 0004h nearest service
  192.  20h 64N BYTEs  server entries (1-7) (see #2222)
  193.  
  194. Format of SAP server entry:
  195. Offset  Size    Description     (Table 2222)
  196.  00h    WORD    (big-endian) server type (see INT 21/AH=E3h"NetWare")
  197.  02h 48 BYTEs   ASCIZ server name
  198.  32h  2 WORDs   (big-endian) network number
  199.  34h  3 WORDs   (big-endian) node number
  200.  3Ch    WORD    (big-endian) socket number
  201.  3Eh    WORD    (big-endian) number of hops between caller and server
  202.  
  203. Format of IPX Routing Information packet:
  204. Offset  Size    Description     (Table 2223)
  205.  00h 30 BYTEs   IPX header
  206.  1Eh    WORD    operation (0001h request, 0002h response)
  207.  20h 8N BYTEs   network entries (1-50) (see #2224)
  208.  
  209. Format of RIP network entry:
  210. Offset  Size    Description     (Table 2224)
  211.  00h    DWORD   network number (FFFFFFFFh = general request)
  212.  04h    WORD    (response) number of hops
  213.  06h    WORD    (response) number of clock ticks to reach destination
  214. --------N-7A----BX0004-----------------------
  215. INT 7A - Novell NetWare - IPX Driver - LISTEN FOR PACKET
  216.         BX = 0004h
  217.         ES:SI -> Event Control Block (see BX=0003h)
  218. Return: AL = status
  219.             00h successful
  220.             FFh no listening socket for packet
  221. Desc:   this function provides IPX with an ECB for receiving an IPX packet, but
  222.           does not wait for a packet to arrive
  223. Notes:  the application must open a socket and initialize the ECB's ESR
  224.           address, socket number, fragment count, and fragment descriptor
  225.           fields before invoking this function
  226.         there is no limit on the number of ECBs which may simultaneously be
  227.           listening on a socket
  228.         this function is supported by Advanced NetWare 1.02+
  229. SeeAlso: BX=0000h,BX=0003h
  230. --------N-7A----BX0005-----------------------
  231. INT 7A - Novell NetWare - IPX Driver - SCHEDULE IPX EVENT
  232.         BX = 0005h
  233.         AX = delay time in clock ticks
  234.         ES:SI -> Event Control Block (see BX=0003h)
  235. Note:   this function is supported by Advanced NetWare 1.02+
  236. SeeAlso: BX=0006h,BX=0007h,BX=0008h
  237. --------N-7A----BX0006-----------------------
  238. INT 7A - Novell NetWare - IPX Driver - CANCEL EVENT
  239.         BX = 0006h
  240.         ES:SI -> Event Control Block (see BX=0003h)
  241. Return: AL = return code (see #2225)
  242. Notes:  cannot cancel packets which the node's driver has already sent
  243.         this function is supported by Advanced NetWare 1.02+
  244. SeeAlso: BX=0005h
  245.  
  246. (Table 2225)
  247. Values for IPX return code:
  248.  00h    success
  249.  F9h    event in use
  250.  FCh    event cancelled
  251.  FFh    unsuccessful, event not in use, or unrecognized ECB flag
  252. --------N-7A----BX0007-----------------------
  253. INT 7A - Novell NetWare - IPX Driver - SCHEDULE SPECIAL EVENT
  254.         BX = 0007h
  255.         AX = delay time
  256.         ES:SI -> Event Control Block (see BX=0003h)
  257. Note:   this function is supported by Advanced NetWare 1.02+
  258. SeeAlso: BX=0006h
  259. --------N-7A----BX0008-----------------------
  260. INT 7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER
  261.         BX = 0008h
  262. Return: AX = interval marker in clock ticks
  263. Notes:  may be used to measure the time elapsed between two events, up to one
  264.           hour
  265.         this function is supported by Advanced NetWare 1.02+
  266. SeeAlso: BX=0005h
  267. --------N-7A----BX0009-----------------------
  268. INT 7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS
  269.         BX = 0009h
  270.         ES:SI -> buffer for own internetwork address (see #2226)
  271. Return: ES:SI buffer filled
  272.         SI destroyed
  273. Note:   this function is supported by Advanced NetWare 1.02+
  274. SeeAlso: BX=0002h,BX=000Bh
  275.  
  276. Format of IPX internetwork address:
  277. Offset  Size    Description     (Table 2226)
  278.  00h  4 BYTEs   (big-endian) network number
  279.  04h  6 BYTEs   (big-endian) node number within network
  280. --------N-7A----BX000A-----------------------
  281. INT 7A - Novell NetWare - IPX Driver - RELINQUISH CONTROL
  282.         BX = 000Ah
  283. Desc:   this call indicates that the application is idle and permits the IPX
  284.           driver to do some work
  285. Note:   this function is supported by Advanced NetWare 1.02+
  286. SeeAlso: INT 15/AX=1000h,INT 21/AH=89h,INT 2F/AX=1680h
  287. --------N-7A----BX000B-----------------------
  288. INT 7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET
  289.         BX = 000Bh
  290.         ES:SI -> internetwork address (see #2227)
  291. Notes:  this function permits the network software on the remote machine to
  292.           remove any virtual connection with the calling machine
  293.         only use in point-to-point networks
  294.         should never be called from within an Event Service Routine
  295.         this function is supported by Advanced NetWare 1.02+
  296. SeeAlso: BX=0002h,BX=0009h
  297.  
  298. Format of IPX internetwork address:
  299. Offset  Size    Description     (Table 2227)
  300.  00h  4 BYTEs   (big-endian) destination network
  301.  04h  6 BYTEs   (big-endian) destination node
  302.  0Ah  2 BYTEs   (big-endian) destination socket
  303. --------N-7A----BX000C-----------------------
  304. INT 7A U - Novell NetWare - IPX Driver - internal - INITIALIZE NETWORK ADDRESS
  305.         BX = 000Ch
  306.         CX:DX = global network address (see INT 7A/BX=0002h)
  307.         ES:DI -> "OSINCRITICALSECTION" flag
  308.         DS:SI -> current mode for socket
  309. Note:   the address cannot be changed once it has been initialized
  310. SeeAlso: INT 7A/BX=0024h
  311. --------N-7A----BX000D-----------------------
  312. INT 7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE
  313.         BX = 000Dh
  314. Return: AX = maximum packet size
  315.         CX = retry count
  316. SeeAlso: BX=001Ah
  317. --------N-7A----BX000E-----------------------
  318. INT 7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS
  319.         BX = 000Eh
  320. Return: nothing
  321. Notes:  this function terminates all sockets opened with the current mode; this
  322.           may be intended for future enhancements as the socket mode never
  323.           changes in v2.15
  324.         called by the NetWare shell if a program terminates
  325. --------N-7A----BX000F-----------------------
  326. INT 7A - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET
  327.         BX = 000Fh
  328.         ES:SI -> Event Control Block (see BX=0003h)
  329. Note:   nearly identical to function 0003h, but does not copy address into
  330.           the first fragment, and bypasses normal error checking
  331. SeeAlso: BX=0003h
  332. --------N-7A----BX0010-----------------------
  333. INT 7A - Novell NetWare - SPX Driver - INSTALLATION CHECK
  334.         BX = 0010h
  335.         AL = 00h
  336. Return: AL = FFh if SPX loaded
  337.             BH = SPX major version
  338.             BL = SPX minor version
  339.             CX = maximum SPX connections
  340.             DX = SPX connections available
  341. Notes:  this function is supported by Advanced NetWare 2.1+
  342.         this interrupt is used for IPX/SPX access in NetWare versions through
  343.           2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  344.           entry point even though INT 7A still exists.  For both INT 7A and
  345.           the FAR entry point, BX contains the function number
  346.         IPX is sometimes called internally with BX bit 15 set, which causes the
  347.           entry point handler to bypass some checks and an optional call to
  348.           the IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h
  349.           (see #1514)
  350. SeeAlso: BX=0015h
  351. --------N-7A----BX0011-----------------------
  352. INT 7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION
  353.         BX = 0011h
  354.         AL = retry count
  355.         AH = watchdog flag
  356.         ES:SI -> Event Control Block (see BX=0003h)
  357. Return: AL = status (see #2228)
  358.         DX = assigned connection ID number
  359. Desc:   attempt to establish a connection with a listening socket
  360. Notes:  there should always be at least two SPX ECB's listening to a socket, so
  361.           that NetWare can perform its internal packet exchanges
  362.         the first fragment should start with a SPX header.  Fill in all
  363.           destination addresses.
  364.         this function is supported by Advanced NetWare 2.1+
  365. SeeAlso: BX=0000h,BX=0012h,BX=0013h,BX=0014h,BX=0015h
  366.  
  367. (Table 2228)
  368. Values for SPX function status:
  369.  00h    attempting to contact destination socket
  370.  EFh    local connection table full
  371.  FDh    buffer size not 42 or fragment count not 1
  372.  FFh    sending socket not open
  373.  
  374. Format of SPX header:
  375. Offset  Size    Description     (Table 2229)
  376.  00h    WORD    (big-endian) checksum
  377.  02h    WORD    (big-endian) length in bytes of total packet
  378.  04h    BYTE    transport control
  379.  05h    BYTE    packet type (see INT 7A/BX=0003h)
  380.  06h 10 BYTEs   destination internet address
  381.  10h    WORD    (big-endian) destination socket
  382.  12h 10 BYTEs   source internet address
  383.  1Ch    WORD    (big-endian) source socket
  384.  1Eh    BYTE    connection control (see #2230)
  385.  1Fh    BYTE    datastream type
  386.                 FEh terminate connection request packet
  387.                 FFh terminate connection acknowledgement packet
  388.                 other user-defined, ignored by SPX
  389.  20h    WORD    (big-endian) source connection ID
  390.  22h    WORD    (big-endian) destination connection ID
  391.  24h    WORD    (big-endian) sequence number
  392.  26h    WORD    (big-endian) acknowledge number
  393.  28h    WORD    (big-endian) allocation number
  394.  
  395. Bitfields for SPX connection control:
  396. Bit(s)  Description     (Table 2230)
  397.  3-0    unused???
  398.  4      end of message
  399.  5      reserved
  400.  6      acknowledgement required
  401.  7      system packet
  402. --------N-7A----BX0012-----------------------
  403. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX CONNECTION
  404.         BX = 0012h
  405.         AH = watchdog flag (00h disabled, 01h enabled)
  406.         AL = retry count (00h = default)
  407.         ES:SI -> Event Control Block (see BX=0003h)
  408. Notes:  there should always be at least two SPX ECB's listening to a socket, so
  409.           that NetWare can perform its internal packet exchanges
  410.         this function is supported by Advanced NetWare 2.1+
  411. SeeAlso: BX=0011h,BX=0013h,BX=0014h
  412. --------N-7A----BX0013-----------------------
  413. INT 7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION
  414.         BX = 0013h
  415.         DX = connection ID to terminate
  416.         ES:SI -> Event Control Block (see BX=0003h)
  417. Note:   this function is supported by Advanced NetWare 2.1+
  418. SeeAlso: BX=0011h,BX=0012h,BX=0014h
  419. --------N-7A----BX0014-----------------------
  420. INT 7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION
  421.         BX = 0014h
  422.         DX = connection ID to terminate
  423. Notes:  this function is supported by Advanced NetWare 2.1+
  424.         this function does not tell the other side that the connection has been
  425.           terminated
  426.         also aborts any outstanding Establish Connection, Terminate Connection,
  427.           and Send Sequenced Packet commands
  428. SeeAlso: BX=0011h,BX=0013h
  429. --------N-7A----BX0015-----------------------
  430. INT 7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS
  431.         BX = 0015h
  432.         DX = connection ID
  433.         ES:SI -> status buffer (see #2231)
  434. Return: AL = return code
  435.             00h connection still valid
  436.                 ES:SI -> status buffer filled
  437.             EEh no such connection
  438. Note:   this function is supported by Advanced NetWare 2.1+
  439. SeeAlso: BX=0010h,BX=0011h
  440.  
  441. Format of SPX status buffer:
  442. Offset  Size    Description     (Table 2231)
  443.  00h    BYTE    connection state
  444.                 01h waiting to establish connection
  445.                 02h starting (attempting to create connection)
  446.                 03h connection established
  447.                 04h terminating
  448.  01h    BYTE    watchdog flag
  449.                 bit 0: used internally by SPX
  450.                 bit 1: SPX watchdog is monitoring connection
  451.                 bits 2-7 used internally by SPX
  452.  02h    WORD    (big-endian) source connection ID
  453.  04h    WORD    (big-endian) destination connection ID
  454.  06h    WORD    (big-endian) sequence number of next packet sent
  455.  08h    WORD    (big-endian) acknowledge number, expected sequence number of
  456.                   next received packet
  457.  0Ah    WORD    (big-endian) maximum sequence number remote SPX may send
  458.                   without ACK from local SPX
  459.  0Ch    WORD    (big-endian) remote acknowledge number, next sequence number
  460.                   remote SPX expects to receive
  461.  0Eh    WORD    (big-endian) remote allocation number, maximum sequence number
  462.                   local SPX may send
  463.  10h    WORD    (big-endian) connection socket
  464.  12h  6 BYTEs   immediate node address--bridge on local network to destination
  465.  18h 10 BYTEs   destination internetwork address (see INT 7A/BX=000Bh)
  466.  22h    WORD    (big-endian) retransmit count
  467.  24h    WORD    (big-endian) estimated roundtrip delay
  468.  26h    WORD    (big-endian) retransmitted packets
  469.  28h    WORD    (big-endian) suppressed packets
  470.  2Ah 12 BYTEs   ??? (v2.15)
  471. --------N-7A----BX0016-----------------------
  472. INT 7A - Novell NetWare - SPX Driver - SEND SPX PACKET
  473.         BX = 0016h
  474.         DX = connection ID
  475.         ES:SI -> Event Control Block (see BX=0003h)
  476. Notes:  this function is supported by Advanced NetWare 2.1+
  477.         CX may need to be 0001h ???
  478. SeeAlso: BX=0011h,BX=0017h
  479. --------N-7A----BX0017-----------------------
  480. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX PACKET
  481.         BX = 0017h
  482.         DX = connection ID (unused in v2.15)
  483.         ES:SI -> Event Control Block (see BX=0003h)
  484. Notes:  this function is supported by Advanced NetWare 2.1+
  485.         CX may need to be 0001h ???
  486. SeeAlso: BX=0011h,BX=0016h
  487. --------N-7A----BX0018-----------------------
  488. INT 7A U - Novell NetWare - IPX Driver - internal - ADD DIAGNOSTIC ELEMENT
  489.         BX = 0018h
  490.         ES:SI -> diagnostic element (see #2232) to be added to Diagnostic Queue
  491. Note:   this function is supported on file servers only under v2.15; v3.02 also
  492.           supports it on workstations
  493. SeeAlso: BX=0019h
  494.  
  495. Format of IPX diagnostic element:
  496. Offset  Size    Description     (Table 2232)
  497.  00h    DWORD   pointer to next diagnostic element
  498.  04h    DWORD   pointer to function for ???
  499.  08h    DWORD   pointer to function for ???
  500. --------N-7A----BX0019-----------------------
  501. INT 7A U - Novell NetWare - IPX Driver - internal - CANCEL DIAGNOSTIC ELEMENT
  502.         BX = 0019h
  503.         ES:SI -> diagnostic element (see BX=0018h) to be removed
  504. Note:   this function is supported on file servers only under v2.15; v3.02 also
  505.           supports it on workstations
  506. SeeAlso: BX=0018h
  507. --------N-7A----BX001A-----------------------
  508. INT 7A - Novell NetWare - IPX Driver - internal - GET DRIVER PACKT SIZE LIMIT
  509.         BX = 001Ah
  510. Return: AX = packet size with preamble
  511.         CX = IPX retry count
  512. Note:   this function is has existed since November 1989; it is documented in
  513.           Novell document FYI.A.3709, 03May91
  514. SeeAlso: BX=000Dh
  515. --------N-7A----BX001B-----------------------
  516. INT 7A U - Novell NetWare - IPX Driver - INTERNAL
  517.         BX = 001Bh
  518.         ???
  519. Return: ???
  520. Notes:  this function is supported on file servers only under v2.15; v3.02 also
  521.           supports it on workstations
  522.         used by NetWare Access Server
  523. --------N-7A----BX001C-----------------------
  524. INT 7A U - Novell NetWare - NetWare Access Server - ???
  525.         BX = 001Ch to 001Eh
  526.         ???
  527. Return: ???
  528.         BX corrupted
  529. Notes:  these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  530. SeeAlso: INT 2F/AX=7AF1h
  531. --------N-7A----BX001F-----------------------
  532. INT 7A - Novell NetWare - IPXODI v2.12+ - GET IPX FLAGS
  533.         BX = 001Fh
  534.         DX = 0000h
  535. Return: AX = ???
  536.         BX:CX -> ??? entry point (see #2233)
  537.         DX = flags
  538.             bit 0: IPXODI rather than dedicated IPX
  539.             bit 1: checksumming functions 0020h-0022h supported
  540.         ES:SI -> array of words containing used socket number (undocumented);
  541.                 0000h ends array
  542. Note:   IPXODI v2.12 is distributed as part of the Personal NetWare system
  543.           bundled with Novell DOS 7
  544. SeeAlso: BX=0020h,INT 2F/AX=7A2Fh
  545.  
  546. (Table 2233)
  547. Call IPXODI entry point with:
  548.         ES:SI -> ??? data (offset 24h is far pointer to ??? data)
  549. --------N-7A----BX0020-----------------------
  550. INT 7A - Novell NetWare - IPXODI v2.12+ - SEND WITH CHECKSUM
  551.         BX = 0020h
  552.         ES:SI -> ECB data (see #2234)
  553. Return: DS preserved
  554.         BX,BP corrupted
  555. SeeAlso: BX=001Fh,BX=0021h,BX=0022h,INT 2F/AX=7A2Fh
  556.  
  557. Format of ECB data:
  558. Offset  Size    Description     (Table 2234)
  559.  00h  8 BYTEs   ???
  560.  08h    BYTE    (return) ???
  561.  09h    BYTE    (return) ???
  562.  0Ah    WORD    ???
  563.  0Ch 16 BYTEs   ???
  564.  1Ch  3 WORDs   ???
  565.  22h    WORD    number of records at offset 28h
  566.  24h    DWORD   -> ???
  567.  28h 6N BYTEs   ??? records
  568. --------N-7A----BX0021-----------------------
  569. INT 7A - Novell NetWare - IPXODI v2.12+ - IPX GENERATE CHECKSUM
  570.         BX = 0021h
  571.         ES:SI -> ECB data (see #2234)
  572. Return: ES,DS,SI preserved
  573.         BX,BP corrupted
  574. Notes:  the checksum and TransportControl fields of the IPX packet are updated
  575.         this function enables interrupts and is fully reentrant
  576. SeeAlso: BX=001Fh,BX=0020h,BX=0022h,INT 2F/AX=7A2Fh
  577. --------N-7A----BX0022-----------------------
  578. INT 7A - Novell NetWare - IPXODI v2.12+ - IPX VERIFY CHECKSUM
  579.         BX = 0022h
  580.         ES:SI -> ECB data (see #2234)
  581. Return: AX = status (0000h checksum matches)
  582.         DS,ES,SI preserved
  583.         BX,BP corrupted
  584. Note:   this function enables interrupts and is fully reentrant
  585. SeeAlso: BX=001Fh,BX=0020h,BX=0021h,INT 2F/AX=7A2Fh
  586. --------N-7A----BX0023-----------------------
  587. INT 7A - Novell NetWare - IPXODI v2.12+ - OPEN LOOK-AHEAD SOCKET
  588.         BX = 0023h
  589.         AL = ???
  590.         DX = socket number
  591.         ES:SI -> Look Ahead handler (see #2235)
  592. Return: AL = 00h if successful
  593.         BX corrupted
  594. Notes:  the socket will always be long-lived, and must thus be explicitly
  595.           closed with INT 7A/BX=0001h before the Look Ahead handler code is
  596.           removed from memory (i.e. the program terminates)
  597.         this function is only supported if INT 2F/AX=7A00h returns ES:BX
  598.           pointing at an IPX version greater than 3.30
  599. SeeAlso: INT 7A/BX=0000h,INT 7A/BX=0001h
  600.  
  601. (Table 2235)
  602. Call IPX Look-Ahead handler with:
  603.         AX = socket
  604.         DS:SI -> look-ahead structure (see #1583 at INT 2F/AX=C000h"LSL")
  605.         DF clear
  606.         interrupt disabled (must remain disabled)
  607. Return: AX = packet use
  608.             0000h application want packet
  609.                 ES:SI -> ODI ECB (see #1584 at INT 2F/AX=C000h"LSL")
  610.             8001h application does not want packet
  611.         ZF set if AX=0000h
  612.         DS,DI,BP,SS,SP preserved
  613. --------N-7A----BX0024-----------------------
  614. INT 7A U - Novell NetWare - IPXODI v2.20+ - SET INTERNETWORK ADDRESS
  615.         BX = 0024h
  616.         ES:SI -> buffer containing internetwork address (see #2227)
  617. Return: BX,CX,SI,DI,ES destroyed
  618. Note:   this function differs from INT 7A/BX=000Ch in that it unconditionally
  619.           sets the address
  620. SeeAlso: INT 7A/BX=000Ch
  621.