home *** CD-ROM | disk | FTP | other *** search
/ Troubleshooting Netware Systems / CSTRIAL0196.BIN / attach / pcc / v08n03 / netwrk.exe / LANTTECH.ZIP / TECH.DOC
Text File  |  1989-12-13  |  43KB  |  1,165 lines

  1.  
  2.  
  3.                 LANtastic (tm) Network Operating System
  4.                       Technical Reference Manual
  5.  
  6.         =================================================
  7.  
  8. Introduction
  9. ************
  10.  
  11. This manual is intended for programer who wishs to make use of the
  12. network services of the LANtastic Network Operating System (LANOS).
  13. LANOS services described in this manual are for version 2.53 or above.
  14. LANOS services fall into two categories: Standard MS-DOS compatible
  15. network functions and Extended network functions.  Since LANOS runs on
  16. any NETBIOS compatible LAN, NETBIOS functions are also available
  17. although they are intrinsic to the underlying NETBIOS implementation.
  18.  
  19. This manual assumes that the reader is familiar with 8088/8xx6 assembly
  20. language and DOS system functions.  Since the standard MS-DOS compatible
  21. network functions are described in the DOS technical reference manual,
  22. we will not go into great detail in this manual.
  23.  
  24. Throughout this manual references will be made to network paths.  LANOS
  25. network paths are fully compatibly with MS-DOS network paths.  Network
  26. paths are similar to file paths except that they reference files through
  27. the network.  The general syntax for network path is
  28.  
  29.         \\server-name\path-name
  30.  
  31. where
  32.         server-name     is 1 to 15 character name of a network file server
  33.         path-name       is a DOS path on the server
  34.  
  35. For example,
  36.  
  37.         \\MAIN-MACHINE\PROGS\DATA\FROG.TXT
  38.  
  39. refers to a file located on server MAIN-MACHINE.  The path required to
  40. access the file is PROGS\DATA\FROG.TXT.  The directory PROGS is a shared
  41. network directory and may not actually exist on the server.  It may in
  42. fact be an entire disk.
  43.  
  44. MS-NET compatible networks (e.g. IBM-PC LAN) do not fully support
  45. full paths for all systems calls (in particular Find First).  LANOS,
  46. however, supports full paths for all system calls that can take a
  47. path argument.  This means that many public domain directory
  48. utilities will operate with a network path.
  49.  
  50.  
  51. Error Codes
  52. ***********
  53.  
  54. All MS-DOS compatible system calls and all LANOS specific system calls
  55. return error codes.  The error code number is always returned in AX.
  56. When an error occurs the carry flag (CY) is set.  LANOS provides a
  57. mechanism for expanding the error code number into a text string.  The
  58. following is a list of error codes which may be returned by LANOS:
  59.  
  60. Error
  61. Number  Meaning
  62. -------------
  63. 01H     Invalid function number
  64. 02H     File not found
  65. 03H     Path not found
  66. 04H     File open limit has been exceeded or no handles left
  67. 05H     Access denied
  68. 06H     Invalid handle
  69. 07H     Memory control blocks destroyed
  70. 08H     The memory limit has been exceeded
  71. 09H     Invalid memory block address
  72. 0AH     Invalid environment
  73. 0BH     Invalid format
  74. 0CH     Invalid access code
  75. 0DH     Invalid data
  76. 0EH     RESERVED
  77. 0FH     Invalid drive was specified
  78. 10H     Attempt to remove current directory
  79. 11H     Not same device
  80. 12H     No more files
  81. 13H     Attempt to write on write protected disk
  82. 14H     Unknown unit
  83. 15H     Drive not ready
  84. 16H     Unknown command
  85. 17H     Data CRC error
  86. 18H     Bad req stuc length
  87. 19H     Seek error
  88. 1AH     Unknown media
  89. 1BH     Sector not found
  90. 1CH     No paper
  91. 1DH     Write fault
  92. 1EH     Read fault
  93. 1FH     General failure
  94. 20H     Sharing violation
  95. 21H     Lock violation
  96. 22H     Invalid disk change
  97. 23H     FCB unavailable
  98. 24H     Sharing buffer overflow
  99. 25H     RESERVED
  100. 26H     Cannot complete file operation
  101. 27H-31H RESERVED
  102. 32H     Network request not supported
  103. 33H     Network node ??????????????? is not listening
  104. 34H     The name already exists on the network
  105. 35H     Cannot locate network name
  106. 36H     The network is busy
  107. 37H     Server connection to network node ??????????????? broken
  108. 38H     The NETBIOS command limit has been exceeded
  109. 39H     The network adapter has malfunctioned
  110. 3AH     Incorrect response received from network node ???????????????
  111. 3BH     Unexpected network error from network node ???????????????
  112. 3CH     Incompatible network node ???????????????
  113. 3DH     Print queue full on network node ???????????????
  114. 3EH     No room for print file on network node ???????????????
  115. 3FH     The print file has been deleted on network node ???????????????
  116. 40H     The network name has been deleted
  117. 41H     You have been denied access on network node ???????????????
  118. 42H     Invalid network device
  119. 43H     The network name was not found
  120. 44H     The network name limit has been exceeded
  121. 45H     The session limit has been exceeded
  122. 46H     Network node ? has been temporarily paused
  123. 47H     The network request to network node ? was denied
  124. 48H     Print or disk redirection is paused on network node ???????????????
  125. 49H     Invalid network version
  126. 4AH     Account has expired
  127. 4BH     Password has expired
  128. 4CH     Login attempt invalid at this time
  129. 4DH-4FH RESERVED
  130. 50H     The file already exists
  131. 51H     RESERVED
  132. 52H     Cannot make directory entry
  133. 53H     Failure on critical error
  134. 54H     Too many redirections or logins to network node ???????????????
  135. 55H     Duplicate redirection or login to network node ???????????????
  136. 56H     Invalid username or password
  137. 57H     Invalid parameter
  138. 58H     Network data fault
  139. 59H     Function not supported on network
  140. 5AH     Required system component not installed
  141.  
  142. When you expand the error code into a text string the above question
  143. marks are expanded to the name of the node you were referring to.  To
  144. expand an error code into a text string you will need to issue a
  145. multiplex interrupt (2FH).  The calling sequence is
  146.  
  147. INPUT   AH      5
  148.         AL      0       For installation check
  149.                 #       for error code (in pre DOS 4.00)
  150.                 1 or 2  for error code in DOS 4.00
  151.         BX      in      Error code
  152. OUTPUT  FLAGS   NC if error code converted to text
  153.                 CY is error code can't be converted
  154.         ES:DI   Pointer to ASCIZ text buffer containing error text.
  155.                 This is a read only text buffer and you must not alter
  156.                 the text in this buffer.
  157.  
  158. If the error code is RESERVED it is expanded to "General failure".  The
  159. maximum width for the question mark fields is 15 characters.  The error
  160. text is automatically adjusted so that extra spaces are not in the text
  161. buffer.  For example the error text
  162.  
  163.         Network node ??????????????? is not listening
  164.  
  165. would be
  166.  
  167.         Network node HOST is not listening
  168.  
  169. for node HOST.
  170.  
  171. When coding for LANOS the following code sequence will work for both
  172. DOS 4.x and DOS 3.x:
  173.  
  174.         mov     ax, error_number                ; Get error number
  175.         mov     bx, ax                          ; Place in BX also
  176.         mov     ah, 5
  177.         int     2fh
  178.         ; ES:DI now points to error string.
  179.  
  180. LANOS does not check AL when running under DOS 4.00 and thus the
  181. values in AL are not important.  The value in AL is important if you
  182. are running on another network operating system such as IBM PC LAN.
  183.  
  184.  
  185. Testing for the Existence of the NETBIOS
  186. ****************************************
  187.  
  188. Before NETBIOS calls may be performed the NETBIOS must be installed.
  189. The following code fragment illustrates how you should test for the
  190. existence of the NETBIOS.
  191.  
  192.  
  193.         ; An illegal NCB used to determine if the NETBIOS is present
  194.         ;
  195.         illegal_NCB     db 7fh                  ; Illegal command
  196.                         db 63 dup (0)           ; Rest of NCB is 0
  197.  
  198.  
  199.         ; NETBIOS_PRESENT - Determine if we have a NETBIOS present
  200.         ;
  201.         ; DS    in      Current Data segment
  202.         ; ES    in      Current Data segment
  203.         ; AX    out     Destroyed
  204.         ; BX    out     Destroyed
  205.         ; FLAGS out     NO CARRY if present
  206.         ;               CARRY if not present
  207.         ;
  208.         NETBIOS_present proc
  209.                 push    es
  210.                 mov     ax, 355cH       ; Get 5C vector
  211.                 int     21H
  212.                 mov     ax, es
  213.                 pop     es
  214.                 cmp     ax, 0F000h      ; Pointing into BIOS?
  215.                 je      no_vector       ; Yes - Then no real 5C
  216.                 or      ax, bx          ; Test for 0
  217.                 jnz     have_vector     ; Non-zero - Have 5C int
  218.         no_vector:
  219.                 stc                     ; Show not present
  220.                 ret
  221.  
  222.         ; We have a legal 5C vector.  Now perform an illegal NCB
  223.         ; request to make sure that it is a legal NETBIOS.
  224.         ;
  225.         have_vector:
  226.                 mov     al, 0
  227.                 mov     bx, offset illegal_NCB
  228.                 int     5cH
  229.                 test    al, al          ; Will get changed on illegal cmd
  230.                 jz      no_vector
  231.                 clc
  232.                 ret
  233.         NETBIOS_present endp
  234.  
  235.  
  236.  
  237. Testing for the Existence of the Redirector and Server
  238. ******************************************************
  239.  
  240. You can issue a multiplex interrupt (2FH) to determine if the
  241. redirector or server software is installed.
  242.  
  243. INPUT   AX      B800H
  244. OUTPUT  AL      0       If neither redirector or server installed
  245.                 NZ      Redirector or server installed
  246.         BL      Contains bits indicating which software is installed
  247.                 (both bits will be set when both software is running)
  248.                 01000000b       Server is installed
  249.                 00001000b       Redirector is installed
  250.  
  251.  
  252. Determining Network Software Version
  253. ************************************
  254.  
  255. You can issue a multiplex interrupt to determine which version of the
  256. network software is running.
  257.  
  258. INPUT   AX      B809H
  259. OUTPUT  AH      Major version number.
  260.         AL      Minor version number.
  261.  
  262. NOTE:   The version numbers are returned as decimal numbers.  For
  263.         example, version 2.53 would be
  264.  
  265.                 AH      2
  266.                 AL      53 decimal or 35 hex
  267.  
  268.  
  269. The Alternate NETBIOS Interface
  270. *******************************
  271.  
  272. The normal interface to the NETBIOS is via interrupt 5CH; the
  273. alternate interrupt to the NETBIOS is via interrupt 2AH.  The 2A
  274. interface is provided by the LANtastic redirector. Some NETBIOS
  275. programs do not use the standard 5C interface but rather the
  276. alternate 2A interface.
  277.  
  278. The alternate interface (2A) was originally designed as a "higher"
  279. level interface to network communications rather than the "low" level
  280. interface (5C) provided by the NETBIOS.  The 2A interface, however,
  281. does not support any higher level functions than does the 5C
  282. interface and therefore has not become a defacto standard as has the
  283. 5C interface.
  284.  
  285. The REDIR intercepts 2A interrupts and reformats them to 5C
  286. interrupts, thereby providing a 2A interface to the NETBIOS.  A list
  287. of the 2A interface functions that are supported are described below.
  288.  
  289. 2A interrupt functions are invoked by loading the AH or AX register
  290. with a function code and then issuing a software interrupt 2A.  For
  291. example,
  292.  
  293.         mov     ah, 0           ; Installation check
  294.         int     2AH             ; Call alternate NETBIOS interface
  295.  
  296. ---------
  297. FUNCTION:       Installation check
  298.  
  299. DESCRIPTION:    Checks to see if a 2A interface is installed.
  300.  
  301. INPUTS:         AH       in     0
  302.  
  303. OUTPUTS:        AH       out    0 if not installed
  304.                 AH              NZ if installed
  305.  
  306. ---------
  307. FUNCTION:       Execute NETBIOS with no error retry
  308.  
  309. DESCRIPTION:    Executes a NETBIOS command (similar to 5C interface).
  310.                 The NETBIOS command may be optionally retried on certain
  311.                 error conditions.
  312.  
  313. INPUTS:         AX      01xxH or 0401H to execute NETBIOS with
  314.                         no error retry
  315.                         0400H to execute NETBIOS with error retry.
  316.                         Error codes that are automatically retried are
  317.                           No sessions resources (09H)
  318.                           No listen (12H)
  319.                           Interface busy (21H)
  320.                 ES:BX   Pointer to NCB
  321.  
  322. OUTPUTS:        AL      NETBIOS error code
  323.                 AH      0 if no error
  324.                         1 if error
  325.  
  326. ---------
  327. FUNCTION:       Get resource information
  328.  
  329. DESCRIPTION:    Return NETBIOS resources which are available for use.
  330.  
  331. INPUTS:         AH      5
  332.  
  333. OUTPUTS:        BX      Available names (16 - names in use)
  334.                 CX      Available NCBs (free NCBs)
  335.                 DX      Available sessions (max sessions -
  336.                         pending sessions)
  337.  
  338.  
  339. Controlling redirected printer streams
  340. **************************************
  341.  
  342. You can control how output is sent to redirected printers in three ways:
  343.  
  344.         1. You can set a "combine" mode which does not separate multiple
  345.            print jobs when programs terminate or when the printer is
  346.            opened or closed.
  347.         2. You can set a "separate" mode which separates print jobs when
  348.            a program terminates or when the printer is opened and closed.
  349.         3. You can "flush" redirected output, thereby forcing the printer
  350.            to begin printing.
  351.  
  352. The above three functions may be performed using the NET LPT COMBINE
  353. NET LPT SEPARATE and  NET LPT FLUSH commands.  Often these commands
  354. need to be performed within programs.  Two software interfaces are
  355. provided to allow you to control these functions.  These interfaces
  356. consist of 2AH interrupt interface and a standard 21H system call
  357. interrupt interface.
  358.  
  359. NOTE: The DOS COMMAND.COM program always sets redirected printer
  360.       separate mode when it prompts for command input and therefore
  361.       these interrupts are ineffective across multiple program
  362.       invocations performed through COMMAND.COM.  The only exception
  363.       to this is inside batch files, since COMMAND.COM does not prompt
  364.       for command input.
  365.  
  366. 2AH interrupt interface
  367. -----------------------
  368.  
  369. FUNCTION:       Set spooled output to combine mode
  370.  
  371. DESCRIPTION:    All printer output is combined into 1 print job regardless
  372.                 of the printer being opened or closed or programs
  373.                 terminating.
  374.  
  375. INPUTS:         AX      0601H
  376.  
  377. OUTPUTS:        none
  378.  
  379. ---------
  380. FUNCTION:       Set spooled output in separate mode
  381.  
  382. DESCRIPTION:    Printer output is not combined when multiple programs are
  383.                 run or when the printer is opened or closed.  This command
  384.                 implicitly starts a new print job.
  385.  
  386. INPUTS:         AX      0602H
  387.  
  388. OUTPUTS:        none
  389.  
  390. ---------
  391. FUNCTION:       Flush printer output
  392.  
  393. DESCRIPTION:    Printer output is flushed and a new print job is started.
  394.                 If no output exists to be flush then this function has no
  395.                 effect.
  396.  
  397. INPUTS:         AX      0603H
  398.  
  399. OUTPUTS:        none
  400.  
  401.  
  402. 21H Interrupt interface
  403. -----------------------
  404.  
  405. FUNCTION:       Return redirected printer mode
  406.  
  407. DESCRIPTION:    The current printer mode (either printer output
  408.                 combined or printer output separated) is returned.
  409.  
  410. INPUTS:         AX      5D07H
  411.  
  412. OUTPUTS:        DL      0 Redirected output is being combined
  413.                         1 Redirected output is being separated
  414.  
  415. ---------
  416. FUNCTION:       Set redirected printer mode (either printer output
  417.  
  418. DESCRIPTION:    The current printer mode (either printer output
  419.                 combined or printer output separated) can be set.
  420.  
  421. INPUTS:         AX      5D08H
  422.                 DL      0 Set redirected output to be combined
  423.                         1 Set redirected output to be separated.  This
  424.                         command implicitly starts a new print job.
  425. OUTPUTS:        none
  426.  
  427. ---------
  428. FUNCTION:       Flush printer output
  429.  
  430. DESCRIPTION:    Printer output is flushed and a new print job is started.
  431.                 If no output exists to be flush then this function has no
  432.                 effect.
  433.  
  434. INPUTS:         AX      5D09H
  435.  
  436. OUTPUTS:        none
  437.  
  438.  
  439. MS-DOS Compatible Network Functions
  440. ***********************************
  441.  
  442. All MS-DOS network system call functions with the exception of GET and
  443. SET printer setup string (5E02 and 5E03) are fully supported.  The
  444. reason that these functions are not fully supported is that printer
  445. setup strings are set by the system administrator and are stored on
  446. the server.  The printer setup strings are only changeable using the
  447. NET_MGR program.
  448.  
  449. A quick reference list of the MS-DOS compatible network functions is
  450. provided at the end this manual.  The following network functions are in
  451. numerical order.
  452.  
  453. 5E00H   Get Machine Name
  454. ------------------------
  455.  
  456. INPUT   AX      5E00H
  457.         DS:DX   Pointer to 16 byte buffer where ASCIZ machine name is
  458.                 returned
  459.  
  460. OUTPUT  FLAGS   NC If no error
  461.                 CY If error occurred
  462.         AX      Error code if error
  463.         CL      NETBIOS name number of machine name.
  464.         CH      0 If machine name is not set
  465.                 Not zero if machine name has been set
  466.         DS:DX   ASCIZ machine name
  467.  
  468. Get Machine Name returns the name which your computer is known by on
  469. the network.  This name is specified when you run the redirector. You
  470. may use the name and NETBIOS name number returned by this function to
  471. perform NETBIOS commands.  You must not use any other names added by
  472. LANOS.
  473.  
  474.  
  475. 5E02H   Set Printer Setup
  476. -------------------------
  477.  
  478. INPUT   AX      5E02H
  479.         BX      Redirection list index.
  480.         CX      Setup string size
  481.         DS:SI   Pointer to printer setup string
  482.  
  483. OUTPUT  FLAGS   NC If no error
  484.                 CY If error occurred
  485.         AX      Error code if error
  486.  
  487. Set printer setup sets a setup string to be sent to the network printer
  488. whenever a file is queued to the printer.
  489.  
  490. NOTE: LANOS does not process this request since printer setup strings
  491.       are controlled by the system administer using the NET_MGR program.
  492.       The system call DOES NOT return an error, however.
  493.  
  494.  
  495. 5E03H   Get Printer Setup
  496. -------------------------
  497.  
  498. INPUT   AX      5E03H
  499.         BX      Redirection entry index.
  500.         ES:DI   Pointer to area to contain setup string
  501.  
  502. OUTPUT  FLAGS   NC If no error
  503.                 CY If error occurred
  504.         AX      Error code if error
  505.         CX      Length of setup string.
  506.  
  507. Get setup string will return the setup string set with 5E02H (Set
  508. Printer Setup) above.
  509.  
  510. NOTE: LANOS does not process this request since printer setup strings
  511.       are controlled by the system administer using the NET_MGR program.
  512.       The system call DOES NOT return an error, however, and the length
  513.       of the setup string (CX) is 0.
  514.  
  515.  
  516. 5F02H   Get Redirected Device Entry
  517. -----------------------------------
  518.  
  519. INPUT   AX      5F02H
  520.         BX      Redirection entry index.  Index 0 specifies the first entry.
  521.         DS:SI   Pointer to 16 byte area which will receive the ASCIZ device
  522.                 name which the redirection index corresponds with.
  523.         ES:DI   Pointer to 128 byte area which will receive the ASCIZ
  524.                 network path that the redirected device refers to.
  525.  
  526. OUTPUT  FLAGS   NC If no error
  527.                 CY If error occurred
  528.         AX      Error code if error
  529.         BL      Type of device
  530.                 3 Printer device
  531.                 4 Disk device
  532.         BH      Device status
  533.                 Bit  0=0 If device is valid
  534.                      0=1 If device is not valid
  535.                 Bits 1-7 reserved
  536.         CX      Value stored by 5F03 call.  Should be 0 for compatibility with
  537.                 LANOS.
  538.         DX      May be destroyed
  539.         BP      May be destroyed
  540.         DS:SI   Filled ASCIZ device name
  541.         ES:DI   Filled ASCIZ network path
  542.  
  543. Get Redirected Device Entry returns information about a single
  544. redirected device (see 5F03 Redirect Device).  This function may be
  545. used to scan the list of redirected devices.
  546.  
  547.  
  548. 5F03H   Redirect device
  549. -----------------------
  550.  
  551. INPUT   AX      5F03H
  552.         AX      Error code if error
  553.         BL      Type of device
  554.                 3 Printer device
  555.                 4 Disk device
  556.         CX      Value to store with redirected device.  Set this to 0
  557.                 for compatibility with LANOS.
  558.         DS:SI   Pointer to ASCIZ device name to redirect. For printer
  559.                 device specify: PRN, LPT1, LPT2, LPT3
  560.                 For disk devices specify A:, B:, C:, etc.
  561.         ES:DI   Pointer to network path to redirect the device to.
  562.  
  563. OUTPUT  FLAGS   NC If no error
  564.                 CY If error occurred
  565.         AX      Error code if error
  566.  
  567. Redirect device allows you to connect local devices to network paths.
  568. For example you can connect your LPT1 to a printer on another node.
  569. References to LPT1 are routed to the network.
  570.  
  571.  
  572. 5F04H   Cancel Device Redirection
  573. ---------------------------------
  574.  
  575. INPUT   AX      5F04
  576.         DS:SI   Pointer to device name to cancel redirection for.
  577.  
  578. OUTPUT  FLAGS   NC If no error
  579.                 CY If error occurred
  580.         AX      Error code if error
  581.  
  582. Cancel device redirection allows you to remove a device redirection so
  583. that the device is restored to its former state.
  584.  
  585.  
  586. LANOS Extended Network Functions
  587. ********************************
  588.  
  589. LANOS provides an extended set of network system calls which allow
  590. further network control which is not provided by the standard MS-DOS
  591. compatible network requests.
  592.  
  593. 5F80H   Get Login Entry
  594. -----------------------
  595.  
  596. INPUT   AX      5F80H
  597.         BX      Login entry index (0 based).
  598.         ES:DI   Pointer to 16 byte buffer which will receive computer name that
  599.                 you are logged into.
  600.  
  601. OUTPUT  FLAGS   NC If no error
  602.                 CY If error occurred
  603.         AX      Error code if error
  604.         ES:DI   Pointer to filled ASCIZ buffer.  The logged in machine name
  605.                 DOES NOT include the \\ prefix.
  606.  
  607. 5F81H   Login to a Server
  608. -------------------------
  609.  
  610. INPUT   AX      5F81H
  611.         ES:DI   Pointer to login path and password in the following form
  612.                 \\computer-name\username<0>password<0>
  613.                 Passwords may be omitted blank but binary 0's (<0>) are
  614.                 still needed
  615.         BL      Adapter number to login into through
  616.                 0ffh    To try all valid adapters
  617.                 0-3     To try adapter 0-3 explicitly
  618. OUTPUT  FLAGS   NC If no error
  619.                 CY If error occurred
  620.         AX      Error code if error
  621.  
  622. 5F82H   Logout of a Server
  623. --------------------------
  624.  
  625. INPUT   ES:DI   Pointer to server name to log out of in the form
  626.                 \\computer-name<0>
  627.  
  628. OUTPUT  FLAGS   NC If no error
  629.                 CY If error occurred
  630.         AX      Error code if error
  631.  
  632.  
  633. 5F83H   Get username entry
  634. --------------------------
  635.  
  636. INPUT   AX      5F83H
  637.         BX      Login entry index (0 based).
  638.         ES:DI   Pointer to 16 byte buffer which will receive user name that
  639.                 you are logged into.
  640.  
  641. OUTPUT  FLAGS   NC If no error
  642.                 CY If error occurred
  643.         AX      Error code if error
  644.         ES:DI   Pointer to filled ASCIZ buffer.
  645.  
  646.  
  647. 5F84H   Get inactive server entry
  648. ---------------------------------
  649.  
  650. INPUT   AX      5F84H
  651.         BX      Non-logged in server index.
  652.         ES:DI   Pointer to 16 byte buffer which will receive a server name
  653.                 that you are NOT logged into but is available to for logging
  654.                 in.
  655.  
  656. OUTPUT  FLAGS   NC If no error
  657.                 CY If error occurred
  658.         AX      Error code if error
  659.         DL      Adapter number the non-logged in server is on.  This number
  660.                 may be used as input "Login to Server" (5F81) system call.
  661.         ES:DI   Pointer to filled ASCIZ buffer.  The non-logged in server
  662.                 name DOES NOT include the \\ prefix.
  663.  
  664.  
  665. 5F85H   Change password
  666. -----------------------
  667.  
  668. INPUT   AX      5F85H
  669.         ES:DI   Pointer to \\computer-name\old-password<0>new_password<0>
  670.                 You must be logged into computer-name
  671.  
  672. OUTPUT  FLAGS   NC If no error
  673.                 CY If error occurred
  674.         AX      Error code if error
  675.  
  676. CHANGE PASSWORD changes a password given an old (current) and new
  677. password.
  678.  
  679.  
  680.  
  681. 5F86H   Disable account
  682. -----------------------
  683.  
  684. INPUT   AX      5F86H
  685.         ES:DI   Pointer to machine name in the form \\machine-name<0>
  686.                 You must be logged into the machine before this system
  687.                 call will work.
  688.  
  689. OUTPUT  FLAGS   NC If no error
  690.                 CY If error occurred
  691.         AX      Error code if error
  692.  
  693. DISABLE ACCOUNT disables a user's currently logged in account.
  694. Applies only when concurrent login entries are set at 1 (by
  695. NET_MGR).  Requires system manager to re-enable account.
  696.  
  697.  
  698. 5F97H   Copy file
  699. -----------------
  700.  
  701. INPUT   AX      5F97H
  702.         CX:DX   Amount to copy
  703.         SI      Source handle
  704.         DI      Destination handle
  705.  
  706. OUTPUT  FLAGS   NC If no error
  707.                 CY If error occurred
  708.         AX      Error code if error
  709.         AX:DX   Amount copied
  710.  
  711. COPY FILE copies the source file (designated by the input handle) to the
  712. destination file (designated by the output handle).
  713.  
  714. 5F98H   Send unsolicited message
  715. --------------------------------
  716.  
  717. INPUT   AX      5F98H
  718.         DS:SI   Pointer to message buffer.  Format of buffer is
  719.                 described below
  720.  
  721. OUTPUT  FLAGS   NC If no error
  722.                 CY If error occurred
  723.         AX      Error code if error
  724.                 NOTE: currently no errors are returned
  725.  
  726.   ; Format of DG_message command.  The 16 byte name fields are null
  727.   ; terminated and contain the first n characters to be matched. For
  728.   ; example AB<0> will match ABxxxxxx...
  729.   ;
  730.   message_buffer        struc
  731.    MB_reserved   db ?           ; Reserved field used by system call
  732.    MB_type       db ?           ; User defined message type
  733.    MB_machine    db 16 dup (?)  ; Machine name that message is destined for
  734.    MB_server     db 16 dup (?)  ; User must be logged into this server
  735.    MB_user       db 16 dup (?)  ; User must be using this username
  736.    MB_originator db 16 dup (?)  ; Originator's machine name. Filled in
  737.                                 ; when message is received
  738.    MB_text       db 80 dup (?)  ; Message text
  739.   message_buffer        ends
  740.  
  741.   ; Message buffer type.  The values 0-7fh are reserved for LANOS use.  Other
  742.   ; message types are user defined.  You may, however, use message
  743.   ; MBT_general since this is the message type that NET and LANPUP use
  744.   ; to the send rude messages.
  745.   ;
  746.   MBT_general   equ 0           ; General message used by NET, LANPUP
  747.                                 ; and others
  748.   MBT_warning   equ 1           ; Server warning message.
  749.  
  750.  
  751. 5F99H   Get last received unsolicited message
  752. ---------------------------------------------
  753.  
  754. INPUT   AX      5F99H
  755.         ES:DI   Pointer to message buffer.  Format of buffer is
  756.                 described above for 5F98H system call.
  757.  
  758. OUTPUT  FLAGS   NC If no error
  759.                 CY If error occurred
  760.         AX      Error code if error (or no message pending)
  761.  
  762.  
  763. 5F9AH   Get message processing flag
  764. -----------------------------------
  765.  
  766. INPUT   AX      5F9AH
  767.  
  768. OUTPUT  DL      Bits which describe what processing should be done when
  769.                 an unsolicited message is received.
  770.         FLAGS   NC If no error
  771.                 CY If error occurred
  772.         AX      Error code if error
  773.  
  774.  
  775.   ; Message processing bits
  776.   ;
  777.   MPB_beep      equ 00000001b           ; Beep before message delivered
  778.   MPB_deliverequ 00000010b              ; Deliver message to message service
  779.  
  780.  
  781. 5F9BH   Set message processing flag
  782. -----------------------------------
  783.  
  784. INPUT   AX      5F9AH
  785.         DL      Bits which describe what processing should be done when
  786.                 an unsolicited message is received.  See 5F9AH system
  787.                 call for list of bits.
  788.  
  789.  
  790. OUTPUT  FLAGS   NC If no error
  791.                 CY If error occurred
  792.         AX      Error code if error
  793.  
  794.  
  795. 5FA0H   Get queue entry
  796. -----------------------
  797.  
  798. INPUT   AX      5FA0H
  799.         BX      Queue entry index (0 for first entry)
  800.         DS:SI   Pointer to memory block to transfer queue entry into.
  801.         ES:DI   Pointer to ASCIZ server name in the form \\name<0>
  802.  
  803. OUTPUT  FLAGS   NC If no error
  804.                 CY If error occurred
  805.         AX      Error code if error
  806.         BX      Next queue entry index to use to find next entry.
  807.         DS:SI   Filled memory block with queue entry info.
  808.  
  809. ; Definition of a queue entry.
  810. ;
  811. queue_entry     struc
  812.  QE_status              db ?            ; Status of queue entry
  813.  QE_size                dd ?            ; Size of spooled file
  814.  QE_type                db ?            ; Type of queue entry
  815.  QE_output_control      db ?            ; Control of despooled file
  816.  QE_copies              dw 1            ; Copies
  817.  QE_sequence            dd ?            ; Sequence number of queue entry
  818.  QE_spooled_file        db 48 dup (?)   ; Pathname of spooled file
  819.  QE_user                db 16 dup (?)   ; Username who spooled file
  820.  QE_machine             db 16 dup (?)   ; Machine name user was on
  821.  QE_date                dw ?            ; Date file spooled (MS-DOS format)
  822.  QE_time                dw ?            ; Time file spooled (MS-DOS format)
  823.  QE_destination         db 17 dup (?)   ; ASCIZ Device name or username destined for
  824.  QE_comment             db 48 dup (?)   ; Comment field
  825. queue_entry     ends
  826.  
  827. ; Different queue entry statuses
  828. ;
  829. QE_status_free          equ 0           ; The queue entry is empty
  830. QE_status_update        equ 1           ; The queue entry is being updated
  831. QE_status_hold          equ 2           ; The queue entry is held
  832. QE_status_wait          equ 3           ; The queue entry is waiting for despool
  833. QE_status_active        equ 4           ; The queue entry is being despooled
  834. QE_status_cancel        equ 5           ; The queue has been canceled
  835. QE_status_file_error    equ 6           ; The spooled file could not be accessed
  836. QE_status_spool_error   equ 7           ; The destination could not be accessed
  837. QE_status_rush          equ 8           ; Rush this job
  838.  
  839. ; Different types of queue entries
  840. ;
  841. QE_type_print           equ 0           ; Spooled printer queue file
  842. QE_type_message         equ 1           ; Spooled message
  843. QE_type_local_file      equ 2           ; Spooled local file
  844. QE_type_remote_file     equ 3           ; Spooled remote file
  845. QE_type_modem           equ 4           ; Spooled to remote modem
  846. QE_type_batch           equ 5           ; Spooled batch processor file
  847.  
  848. ; Bit definitions for output control
  849. ;
  850. QE_OC_keep      equ     1000000b        ; Keep after despooling (don't delete)
  851.                                         ; For mail - allow delete only by owner
  852.  
  853. 5FA1H   Set queue entry
  854. -----------------------
  855.  
  856. INPUT   AX      5FA1H
  857.         BX      Handle of opened queue entry
  858.         DS:SI   Pointer to queue information buffer.  The buffer must be
  859.                 formatted as above.
  860.  
  861. OUTPUT  FLAGS   NC If no error
  862.                 CY If error occurred
  863.         AX      Error code if error
  864.  
  865. Set queue entry allows you to change certain fields in a queue entry.
  866. The queue entry must be currently open and you must have a handle to it.
  867. The only fields that are looked at and altered are:
  868.  
  869.         QE_output_control
  870.         QE_copies
  871.         QE_destination                  (only for MAIL queue entries)
  872.         QE_comment
  873.  
  874.  
  875. 5FA2H   Control queue
  876. ---------------------
  877.  
  878. INPUT   AX      5FA2
  879.         BL      Queue control command
  880.         CX:DX   Sequence number to control.  For despooler control the
  881.                 sequence number is ignored.
  882.         ES:DI   ASCIZ computer name
  883.  
  884. OUTPUT  FLAGS   NC If no error
  885.                 CY If error occurred
  886.         AX      Error code if error
  887.  
  888. Control queue allows you to manipulate the despooling if you have
  889. privileges and to alter print jobs.
  890.  
  891. ; Control queue commands.  Stared (*) entries are privileged commands which
  892. ; require Q privilege.
  893. ;
  894. CQ_start        equ     0       ;* Start despooling
  895. CQ_halt         equ     1       ;* Halt despooling
  896. CQ_halt_EOJ     equ     2       ;* Halt despooling at end of job
  897. CQ_pause        equ     3       ;* Pause the despooler at end of job
  898. CQ_single       equ     4       ;* Print single job
  899. CQ_restart      equ     5       ;* Restart the current print job
  900. CQ_cancel       equ     6       ; Cancel the currently printing job
  901. CQ_hold         equ     7       ; Hold the queue entry
  902. CQ_release      equ     8       ; Release a held queue entry
  903. CQ_rush         equ     9       ;* Make the queue entry a rushed job
  904.  
  905. 5FA7H   Create User Audit Entry
  906. -------------------------------
  907.  
  908. INPUT   AX      5FA7H
  909.         DS:DX   ASCIZ Reason code (up to 8 characters)
  910.         DS:SI   ASCIZ Variable reason code (up to 128 characters)
  911.         ES:DI   Pointer to ASCIZ machine name in the form \\server<0>
  912.  
  913. OUTPUT  FLAGS   NC If no error
  914.                 CY If error occurred
  915.         AX      Error code if error
  916.  
  917.  
  918. 5FB0H   Get Active User information
  919. -----------------------------------
  920.  
  921. INPUT   AX      5FB0H
  922.         BX      Server login entry index to return information about
  923.         DS:SI   Pointer to user buffer for a single server login entry
  924.         ES:DI   Pointer to ASCIZ machine name in the form \\server<0>
  925.  
  926. OUTPUT  FLAGS   NC If no error
  927.                 CY If error occurred
  928.         AX      Error code if error
  929.         DS:SI   Filled buffer with login entry information.
  930.  
  931. Get active user information returns a server's information about a
  932. currently active user.
  933.  
  934. ; Definition of active user entry
  935. ;
  936. active_user_entry       struc
  937.  AUE_VCID       dw 0            ; Virtual circuit number
  938.  AUE_state      db ?            ; Login state defined below
  939.  AUE_command    db ?            ; Last command issued  (see below)
  940.  AUE_IO         db 5 dup (?)    ; Number of I/O bytes 
  941.                                 ;   (40 bit unsigned binary number)
  942.  AUE_requests   db 3 dup (?)    ; Number of server requests 24 bit u/bin. num
  943.  AUE_name       db 16 dup (?)   ; Name of user who is logged in
  944.  AUE_machine    db 16 dup (?)   ; Name of remote logged in machine
  945. active_user_entry       ends
  946.  
  947. ; Definition of the various login states and privilege.
  948. ;
  949. AUE_state_starting       equ 00000000b  ; We are in the middle of a login
  950. AUE_state_in             equ 00000001b  ; We are fully logged in
  951. AUE_state_RPL            equ 00000010b  ; Remote program load login
  952.  
  953. AUE_privilege_superACL   equ 10000000b  ; Bypass ACLs
  954. AUE_privilege_superqueue equ 01000000b  ; Bypass queue protection
  955. AUE_privilege_peer       equ 00100000b  ; Treat as local process
  956. AUE_privilege_supermail  equ 00010000b  ; Bypass mail protection
  957. AUE_privilege_audit      equ 00001000b  ; The user can create audit entries
  958.  
  959. ; Definition of last command field
  960. ;
  961. AUEC_login        equ    0    ; Login into a server
  962. AUEC_terminate        equ    1    ; Process termination
  963. AUEC_open        equ    2    ; Open a file
  964. AUEC_close        equ    3    ; Close a file
  965. AUEC_create        equ    4    ; Create a file if it's there or not
  966. AUEC_new        equ    5    ; Create a new file that is not there
  967. AUEC_unique        equ    6    ; Create a unique file
  968. AUEC_commit        equ    7    ; Commit disk data to disk
  969. AUEC_read        equ    8    ; Read from file
  970. AUEC_write        equ    9    ; Write to file
  971. AUEC_delete        equ    10    ; Delete file
  972. AUEC_set_attr        equ    11    ; Set file attributes
  973. AUEC_lock        equ    12    ; Lock byte range
  974. AUEC_unlock        equ    13    ; Unlock byte range
  975. AUEC_create_dir        equ    14    ; Create a subdirectory
  976. AUEC_delete_dir        equ    15    ; Delete a subdirectory
  977. AUEC_rename_file    equ    16    ; Rename a file
  978. AUEC_find_first        equ    17    ; Find first matching file
  979. AUEC_find_next        equ    18    ; Find the next matching file
  980. AUEC_disk_free        equ    19    ; Get disk free space
  981. AUEC_get_queue        equ    20    ; Get a queue entry
  982. AUEC_set_queue        equ    21    ; Set a queue entry
  983. AUEC_control_queue    equ    22    ; Control the queue
  984. AUEC_get_login        equ    23    ; Return login information
  985. AUEC_get_link        equ    24    ; Return link description
  986. AUEC_seek        equ    25    ; Seek to a file position
  987. AUEC_get_time        equ    26    ; Get server's time
  988. AUEC_audit        equ    27    ; Create audit entry
  989. AUEC_multi_open        equ    28    ; Open file in a multitude of modes
  990. AUEC_change_password    equ    29    ; Change a password
  991. AUEC_disable_account    equ    30    ; Disable account from further log ins
  992. AUEC_copy_file        equ    31    ; Local server file copy
  993.  
  994.  
  995. 5FB1H   Get Shared directory information
  996. ----------------------------------------
  997.  
  998. INPUT   AX      5FB1H
  999.         DS:SI   Pointer to 64 byte buffer to receive link description
  1000.         ES:DI   Pointer to ASCIZ machine name and shared directory in form
  1001.                 \\server\shared-resource<0>
  1002.  
  1003. OUTPUT  FLAGS   NC If no error
  1004.                 CY If error occurred
  1005.         AX      Error code if error
  1006.         CX      ACL privilege bits for requesting user
  1007.         DS:SI   Filled buffer with ASCIZ description of shared
  1008.                 resource
  1009.  
  1010.  
  1011. ; ACL bit definition
  1012. ;
  1013. ACL_read          equ 1000000000000000b ; (R) Allow open for read and reading
  1014. ACL_write         equ 0100000000000000b ; (W) Allow open for write and writing
  1015. ACL_create_file   equ 0010000000000000b ; (C) Allow file creation
  1016. ACL_create_dir    equ 0001000000000000b ; (M) Allow directory creation
  1017. ACL_lookup        equ 0000100000000000b ; (L) Allow file/directory lookups
  1018. ACL_delete_file   equ 0000010000000000b ; (D) Allow file deletion
  1019. ACL_delete_dir    equ 0000001000000000b ; (K) Allow directory deletion
  1020. ACL_rename        equ 0000000100000000b ; (N) Allow file renaming
  1021. ACL_execute       equ 0000000010000000b ; (E) Allow program execution
  1022. ACL_physical      equ 0000000001000000b ; (P) Allow physical access to device
  1023. ACL_attribute     equ 0000000000100000b ; (A) Allow attribute changing
  1024.  
  1025. 5FC0H   Get Server's time
  1026. -------------------------
  1027.  
  1028. INPUT   AX      5FC0H
  1029.         DS:SI   Pointer to 8 byte time block
  1030.         ES:DI   Pointer to ASCIZ server name to get time from.
  1031.  
  1032. OUTPUT  FLAGS   NC If no error
  1033.                 CY If error occurred
  1034.         AX      Error code if error
  1035.         DS:SI   Filled buffer with time information
  1036.  
  1037. time_block      struc
  1038.  TB_year        dw ?                            ; Year
  1039.  TB_day         db ?                            : Day of month (1-31)
  1040.  TB_month       db ?                            ; Month (1-12)
  1041.  TB_minutes     db ?                            ; Minutes (0-59)
  1042.  TB_hour        db ?                            ; Hour (0-23)
  1043.  TB_hundredths  db ?                            ; Hundredths of seconds (0-99)
  1044.  TB_seconds     db ?                            ; Seconds (0-59)
  1045. time_block      ends
  1046.  
  1047.  
  1048. 5FD0H   Get redirected line printer timeout
  1049. ------------------------------------------
  1050.  
  1051. INPUT   AX      5FD0H
  1052.  
  1053. OUTPUT  FLAGS   NC If no error
  1054.                 CY If error occurred
  1055.         AX      Error code if error
  1056.         CX      Redirected line printer timeout in ticks (1 tick = 1/18.2
  1057.                 seconds).  A value of 0 means timeouts are disabled.
  1058.  
  1059.  
  1060. 5FD1H   Set Redirected line printer timeouts
  1061. -------------------------------------------
  1062.  
  1063. INPUT   AX      5FD1H
  1064.         CX      Printer timeout in ticks (1/18.2 second).  A value of 0
  1065.                 disables timeouts.
  1066. OUTPUT  FLAGS   NC If no error
  1067.                 CY If error occurred
  1068.         AX      Error code if error
  1069.  
  1070. 5FE0H   Get DOS service vector
  1071. ------------------------------
  1072.  
  1073. INPUT   AX      5FE0H
  1074.  
  1075. OUTPUT  FLAGS   NC If no error
  1076.                 CY If error occurred
  1077.         AX      Error code if error
  1078.         ES:BX   Pointer to current DOS service routine
  1079.  
  1080.  
  1081. 5FE1H   Set DOS service vector
  1082. ------------------------------
  1083.  
  1084. INPUT   AX      5FE1H
  1085.         ES:BX   New DOS service vector location.  To chain into the DOS
  1086.                 service vector you must obtain the old vector (5FE0) and
  1087.                 save it.  When your service routine is called you will
  1088.                 need to call the old vector before beginning your
  1089.                 processing.
  1090.  
  1091. OUTPUT  FLAGS   NC If no error
  1092.                 CY If error occurred
  1093.         AX      Error code if error
  1094.  
  1095. 5FE2H   Get message service vector
  1096. ----------------------------------
  1097.  
  1098. INPUT   AX      5FE2H
  1099.  
  1100. OUTPUT  FLAGS   NC If no error
  1101.                 CY If error occurred
  1102.         AX      Error code if error
  1103.         ES:BX   Pointer to current message service routine
  1104.  
  1105. 5FE3H   Set message service vector
  1106. ----------------------------------
  1107.  
  1108. INPUT   AX      5FE3H
  1109.         ES:BX   New message service vector location.  To chain into the
  1110.                 message service vector you must obtain the old vector
  1111.                 (5FE2) and save it.  When your service routine is called
  1112.                 you will need to call the old vector before beginning your
  1113.                 processing.
  1114.                 (NOTE: when a service routine is called ES:BX will point to
  1115.                  the currently received message)
  1116.  
  1117. OUTPUT  FLAGS   NC If no error
  1118.                 CY If error occurred
  1119.         AX      Error code if error
  1120.  
  1121.  
  1122.  
  1123. Quick Reference list of MS-DOS compatible Network System Calls
  1124. **************************************************************
  1125.  
  1126. 5E00H   Get Machine Name
  1127. 5E02H   Set Printer Setup
  1128. 5E03H   Get Printer Setup
  1129. 5F02H   Get Redirected Device Entry
  1130. 5F03H   Redirect device
  1131. 5F04H   Cancel Device Redirection
  1132.  
  1133.  
  1134.  
  1135. Quick Reference List of LANtastic NOS Only Network System Calls
  1136. ***************************************************************
  1137.  
  1138. 5F80H   Get Login Entry
  1139. 5F81H   Login to a Server
  1140. 5F82H   Logout of a Server
  1141. 5F83H   Get username entry
  1142. 5F84H   Get inactive server entry
  1143. 5F85H   Change password
  1144. 5F86H   Disable account
  1145. 5F97H   Copy file
  1146. 5F98H   Send unsolicited message
  1147. 5F99H   Get last received unsolicited message
  1148. 5F9AH   Get message processing flag
  1149. 5F9BH   Set message processing flag
  1150. 5FA0H   Get queue entry
  1151. 5FA1H   Set queue entry
  1152. 5FA2H   Control queue
  1153. 5FA7H   Create User Audit Entry
  1154. 5FB0H   Get Active User information
  1155. 5FB1H   Get Shared directory information
  1156. 5FC0H   Get Server's time
  1157. 5FD0H   Get redirected lineprinter timeout
  1158. 5FD1H   Set Redirected lineprinter timeouts
  1159. 5FE0H   Get DOS service vector
  1160. 5FE1H   Set DOS service vector
  1161. 5FE2H   Get message service vector
  1162. 5FE3H   Set message service vector; Active user entry commands
  1163.  
  1164.  
  1165.