home *** CD-ROM | disk | FTP | other *** search
/ Multimedia & CD-ROM 7 / mmcd07-nov1995-cd.iso / boutique / mmedia / install.txt < prev    next >
Text File  |  1994-10-26  |  52KB  |  1,011 lines

  1.  
  2.  
  3.  
  4. TRUMPET WINSOCK 
  5.  
  6. Version 2.0
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15. By Peter R. Tattam
  16.  
  17. Managed by Trumpet Software International Pty Ltd.
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27. Copyright (C) 1993,1994 by Peter R. Tattam
  28.  
  29. All Rights Reserved
  30.  
  31.  
  32.  
  33.  
  34.  
  35. INTRODUCTION
  36.  
  37. Thank you for using the Trumpet Winsock.  It is through the kind support of many users out there that quality networking software has been available at affordable prices to the Internet community. The Trumpet Winsock is a Windows Sockets 1.1 compatible TCP/IP stack that provides a standard networking layer for many Windows(tm) networking applications to use, and has itself been a major vehicle in achieving widespread use of Windows Sockets 1.1.  
  38.  
  39. The product is released as  shareware, and as such you are permitted to evaluate it for 30 days.  If you are satisfied with its usefulness, a registration form is provided which you should fill out and send to Trumpet Software International.  A registration fee is requested to maintain the development and support of this software.  Suitable arrangements have been made for site licenses, and details can be found in a later section.
  40.  
  41. DISCLAIMER & COPYRIGHT
  42.  
  43. These programs are Copyright (C) 1991-1994 by Peter R. Tattam,
  44. All Rights Reserved.
  45.  
  46. They are provided as shareware with the following limitations:
  47.  
  48. These programs are shareware and are not to be resold or distributed for sale with other programs which are for sale.  There is no warranty or claim of fitness or reliability. The programs are distributed AS IS, and as such neither the author, nor Trumpet Software shall be held liable for any loss of data, down time, loss of revenue or any other direct or indirect damage or claims caused by these programs.
  49.  
  50. INSTALLING THE TRUMPET WINSOCK.
  51.  
  52. The Trumpet Winsock will only run on your PC under the following conditions. You must have either a packet driver available for use by network programs, or if you wish to use SLIP, a free comms port.  Additionally, packet drivers can only be used reliably under enhanced mode using WINPKT.  Standard mode can be used, but care must be taken to avoid system crashes.  NDIS and ODI can be used via packet driver shims, but their use is not supported.  PKTMUX may also be used instead of WINPKT, and must be version 1.2c or later, but again its use is not supported.
  53.  
  54. If you already have some kind of TCP/IP networking package installed, it is most likely that the Trumpet Winsock will not run and you will have to massage your system configuration to install the Trumpet Winsock, possibly even to the extent of uninstalling that networking package.  Alternatively, there may be a Winsock available for your package in which case the Trumpet Winsock will not be required. 
  55.  
  56. USING TRUMPET WINSOCK OVER INTERNAL SLIP/PPP
  57.  
  58. SLIP is a simple protocol which allows an Async serial connection to send Internet Protocol (IP).  You usually need to have access to a server which can understand SLIP.  SLIP is usually accessed via a phone line, and with the advent of high speed modems, TCP/IP is a reality over a dial-up connection.
  59.  
  60. PPP (Point to Point Protocol) is a protocol that is more complicated than SLIP, which offers error correction and is more reliable than SLIP.
  61.  
  62. The Trumpet Winsock has facilities for managing a SLIP connection as well as the ability to use dialling scripts for logging in and out of your SLIP server.
  63.  
  64. INSTALLING THE WINSOCK FOR USE OVER INTERNAL SLIP/PPP
  65.  
  66. Before you do anything, copy the files winsock.dll, tcpman.exe, hosts, services and protocol to a suitable directory.
  67.  
  68.   eg. c:\trumpet
  69.  
  70. the essential files are:
  71.  
  72. winsock.dll    the guts of  the TCP/IP driver
  73.  
  74. tcpman.exe    controlling program for the Winsock
  75.  
  76. sendreg.exe    registration program
  77.  
  78. hosts    list of host names
  79.  
  80. services    list of Internet services
  81.  
  82. protocol    list of Internet protocols
  83.  
  84. Modify the path line in your autoexec.bat to contain a reference to that
  85. directory.
  86.  
  87.   eg. path c:\dos;c:\windows;c:\trumpet
  88.  
  89. Make sure it is active by rebooting your computer or by executing autoexec.bat again.
  90.  
  91. Now you are ready to start windows.  Start it up!!
  92.  
  93. From windows, start up tcpman by selecting File/Run from the file manager, then type "tcpman".  If this fails, the path is probably not set up correctly, so fix it. Later, you can set up tcpman as an icon so it can be started directly.
  94.  
  95. Assuming you are a first time user, a setup screen will appear giving you a number of options to fill in.  You will need to fill in the following details to enable the TCP package to function.  If you are unclear on any of them, try to seek some help from qualified Internet support staff - it will save you a lot of time.
  96.  
  97. Firstly, click on Internal SLIP or Internal PPP.  Some of the parameters will be greyed and others ungreyed.
  98.  
  99. IP address    your Internet IP address or "bootp" in lower case only. Only use bootp if your server             supports it, otherwise the winsock will delay for up to 2 minutes and the message             "Unable to perform bootp" will come up.  The winsock will not function should the             bootp fail.
  100.  
  101. Name server    your name server IP address for DNS searches.  You may provide more than one address         by separating the addresses with spaces (IP addresses only).
  102.  
  103. Time server    at present unused - future winsock API's may support this (IP addresses only).
  104.  
  105. Domain suffix    a space separated list of domain suffixes to be used when resolving names in the DNS             system.
  106.  
  107. MTU        Maximum Transmission Unit. Related to TCP MSS... usually TCP MSS + 40                 (Numeric).  For SLIP, we suggest 256 initially.
  108.  
  109. TCP RWIN    TCP Receive Window. It is recommended that this value be roughly 3 to 4 times the             value of TCP MSS (Numeric).  For SLIP, we suggest 848.
  110.  
  111. TCP MSS    TCP Maximum Segment Size, It is recommended that this be a smallish value when             using SLIP - say 512 bytes for SLIP and lower for CSLIP.  CSLIP is able to compress             data more efficiently when it is less than 255 (numeric).  For SLIP, we suggest 212             initially.
  112.  
  113. SLIP port    your comms port number ..1=com1, 2=com2 etc., (numeric).
  114.  
  115. baud rate    the speed you wish to run at  (numeric).  Up to 115200 is supported although speeds             greater than 19200 require suitable hardware.
  116.  
  117. hardware 
  118. handshake    recommended if your link supports it.
  119.  
  120. Van Jacobson CSLIP
  121. Compression    if your server will support it. You may also have to adjust MTU, MSS & RWIN to be             suitable.
  122.  
  123. Online Status 
  124. Detection    if your modem will support it, select DCD or DSR on-line status detection.  You will             need to make sure that your modem has a default power on setting of AT&C1 for this to             function.
  125.  
  126.  
  127. The rest of the details should be greyed out and you need not try to fill them in.
  128.  
  129. When you are done, click on <OK> and if all goes well, the Trumpet Winsock will be initialised.  You are now ready to start using the winsock.
  130.  
  131. LOGGING IN TO THE SERVER.
  132.  
  133. You can use either the manual login or the automatic scripting to access your server.  For the time being, choose manual and log into your server with the appropriate commands.  Don't forget to use the <esc> key to get out when you have finished dialling in.  After logging in, you may need to go and set your IP address if it is allocated dynamically.
  134.  
  135. If you wish to use another terminal program to dial in to the server, don't forget to issue AT&D0, or disable DTR dropping when exiting the program, or the connection will be severed when the application closes the comms port.
  136.  
  137. Try out pingw to a well known host IP address to see if all is well.
  138.  
  139. PROBLEMS WITH INTERNAL SLIP
  140.  
  141. Check your baud rates...
  142.  
  143. If using hardware hand shaking with an external modem, make sure the cable is correctly wired.
  144.  
  145. By default, all dialling must be done with 8 bits, no parity.  This may not work for you...  You may need to choose Dialler/Options to select Control Panel parity/word size if you are not using 8 bits, no parity.
  146.  
  147. If all else fails... contact us !!
  148.  
  149. Once you have determined your login sequence, you can set up a login script.  A sample script is provided along with the disk.
  150.  
  151. Many Internet dialup providers will have their own scripts for connecting to their systems.  Please contact your provider for a suitable script.  Trumpet Software International can offer you assistance in setting up your script if required.
  152.  
  153.  
  154. USING TRUMPET WINSOCK WITH PACKET DRIVER.
  155.  
  156. Firstly, if you don't know what a packet driver is; it is a small piece of software which sits in between your network card and your TCP program. This provides a standard interface which many programs can use in a similar manner to BIOS calls using software interrupts.
  157.  
  158. Why is it called a packet driver?  This is because modern networks send information using packets of information rather than sending information one byte or character at a time.  For example, Ethernet sends information in frames of up to 1514 bytes long.  The reason for sending things in packets is that information can be transmitted much more efficiently in packets.
  159.  
  160. Central to the concept of the packet driver is a vector which is used to communicate with it.  The 80x86 family of processors allows programs to communicate with the operating system through what is called a "software interrupt", which always has a number in the range 0 to 255.  This is termed a "vector" and is the one of the key mechanisms to pass control to the MS-DOS operating system.  Usually the vectors are expressed in hexadecimal, with the range 0x00 to 0xFF. The 0x in front of the number means that we are using hexadecimal numbers instead of decimal numbers.  They may also be expressed in the notation 00H to FFH, or $00 to $FF. If you are dealing with packet drivers, hexadecimal notation is much more common, but occasionally they are expressed in decimal.  Examples of software interrupts in use on PC's are 0x10 for the video BIOS, or 0x21 for calls to DOS.
  161.  
  162. Packet drivers are only allowed to have a software interrupt vector in the range 0x60 to 0x7F. Normally, you will pick 0x60 as the default place to install your packet driver, but certain machine configurations may make that vector unavailable. Just choose one that is free - the packet driver should tell you if you can use it or not.
  163.  
  164. The Trumpet Winsock also uses a special virtual packet driver "wrapper" which enables your packet driver to function correctly in Windows.  While the packet driver is an efficient way to communicate with your network card, it will not work correctly from Windows without a little assistance.  The program "WINPKT" was written by some clever people on the Internet to allow a packet driver to work correctly within Windows by making sure that packets get directed to the correct "virtual machine" under Windows enhanced mode.  A "virtual machine" can be either the entire Windows session, or any DOS session active within Windows.  Refer to the Windows system documentation for more details.
  165.  
  166. In addition to this, you will need to have some understanding of IRQ vectors and I/O addresses that may be relevant to installing your network card.
  167.  
  168. WHERE DO I OBTAIN PACKET DRIVERS FROM?
  169.  
  170. These days, packet drivers are usually provided with your network card, otherwise a comprehensive collection of public domain packet drivers can be obtained from a packet driver collection called the "Crynwr Packet Driver Collection."  Information on where to get this packet driver collection from is provided as an appendix to this document.
  171.  
  172. INSTALLING THE WINSOCK FOR USE WITH PACKET DRIVERS
  173.  
  174. Before you do anything, copy the files winsock.dll, tcpman.exe, winpkt.com, hosts, services and protocol to a suitable directory
  175.  
  176.   eg., c:\trumpet
  177.  
  178. the essential files:
  179.  
  180. winsock.dll    the guts of the TCP/IP driver
  181.  
  182. tcpman.exe    controlling program for the winsock
  183.  
  184. sendreg.exe    registration program
  185.  
  186. winpkt.com    virtual packet driver interface for windows
  187.  
  188. hosts        list of host names & aliases
  189.  
  190. services        list of Internet services
  191.  
  192. protocol        list of Internet protocols
  193.  
  194.  
  195. Modify the path line in your autoexec.bat to contain a reference to that directory.
  196.  
  197.   eg., path c:\dos;c:\windows;c:\trumpet
  198.  
  199. Make sure it is active by rebooting your computer or by executing autoexec.bat again.
  200.  
  201. SETTING UP YOUR PACKET DRIVER.
  202.  
  203. The packet driver command lines in the examples below would normally be part of a batch file used to connect to your network although it could be placed in autoexec.bat or in a batch file to start Windows in which case you would need to add a third line to start Windows.
  204.  
  205. The most basic setup of packet driver and WINPKT would look something like this example (for an NE2000 compatible network card).
  206.  
  207. Note that the packet driver name for other types of network cards will of  course be different to ne2000:
  208.  
  209.    ne2000 0x60 2 0x300
  210.    WINPKT 0x60
  211.  
  212.  
  213. The first line installs an NE2000 packet driver on vector 0x60 using IRQ 2 and I/O address 0x300.
  214.  
  215. The second line installs the WINPKT virtual packet driver using the same vector that the ne2000 packet driver was installed on.
  216. The next example shows the setup for a Western Digital 8-bit network card using vector 0x61, IRQ5 and I/O address 0x320.
  217.  
  218.    wd8003e 0x61 5 0x320
  219.    WINPKT 0x61
  220.  
  221. These of course are only examples so your mileage will vary.  Of prime importance is the need to make sure your network card IRQ, I/O address settings and shared memory addresses don't conflict with other cards in your computer.
  222.  
  223. Some more example configurations are described later in this document under the heading Sample Configurations for Packet Driver.  Choose the one which suits you the best and modify it to your requirements.
  224.  
  225. Now you are ready to start windows.  Start it up!!
  226.  
  227. From windows, start up tcpman by selecting File/Run from the file manager, then type "tcpman".  If this fails, the path is probably not set up correctly, so fix it.  Later, you can setup tcpman as an icon so it can be started directly.
  228.  
  229. Assuming you are a first time user, a setup screen will appear giving you a number of options to fill in.  You will need to fill in the following details to enable the TCP package to function.  If you are unclear on any of them, try to seek some help from qualified Internet support staff - it will save you a lot of time.
  230.  
  231. IP address    your Internet IP address, "bootp", or "rarp" in lower case.  If you use "bootp" or "rarp",             be sure to have a bootp or rarp service on the network or the winsock will not load.  
  232.  
  233. Netmask    your Internet network mask (eg. 255.255.0.0).
  234.  
  235. Default Gateway    your default Internet gateway. (IP address).
  236.  
  237. Name server    your name server IP address for DNS searches.  You may provide more than one address         by separating the addresses with spaces (IP addresses only).
  238.  
  239. Time server    at present unused - future winsock API's may support this (IP addresses only).
  240.  
  241. Domain suffix    a space separated list of domain suffixes to be used when resolving names in the DNS             system.
  242.  
  243. Packet Vector    either leave this as 00 to search for the packet driver, or the vector that you installed the             packet driver under.  The number is required to be in hexadecimal without the leading             "0x".  In our example, you would provide "60" (numeric).
  244.  
  245. MTU        Maximum Transmission Unit (numeric). For Ethernet, 1500 is the maximum, and is             recommended.
  246.  
  247. TCP RWIN    TCP Receive Window (numeric). Defaults to 4096 but can be larger.
  248.  
  249. TCP MSS    TCP Maximum Segment Size (numeric). Usually MTU - 40.  Use the default of 1460.
  250.  
  251.  
  252. The rest of the details should be greyed out and you need not try to fill them in.  The Internal SLIP and PPP check boxes should not be checked.
  253.  
  254. The first four parameters and the packet vector are required for successful functioning of the winsock, while the rest can be tailored to suit your needs.
  255.  
  256. When you are done, click on <OK> and if all goes well, the Trumpet Winsock will be initialised.  You are now ready to start using the winsock.
  257.  
  258.  
  259. WHAT TO DO IF SOMETHING GOES WRONG
  260.  
  261. Firstly...
  262. The Trumpet Winsock requires that you must have the correct combination of tcpman.exe, winsock.dll and winpkt.com.  When upgrading to a new release, replace each of these files to be sure that everything is up to date.
  263.  
  264. If you get a message about not finding a packet driver or unable to load TCP, then check that the packet driver loaded properly;  you can do this by observing the screen as the .bat file loading the packet driver executes. This will also tell you if WINPKT managed to find it.  WINPKT will also tell you if the correct vector was chosen by tcpman.
  265.  
  266. At the moment, only Ethernet and SLIP packet driver types are supported.
  267. Token ring is only available via the ibmtoken packet driver, and should work, but is untested by the author.
  268.  
  269. ODI can be used via the ODIPKT shim, and NDIS via the DIS_PKT shim; examples are provided later on.  Examples are also provided of installation using NetWare.  Some care is required to configure these protocols.
  270.  
  271. POSSIBLE CAUSES FOR TCPMAN LOAD ERRORS SPECIFIC TO PACKET DRIVERS:
  272.  
  273. unable to bind protocol 0806/0800    another TCP stack is using the packet driver...  remove it.
  274.  
  275. WINPKT or pktdrv not found:    couldn't find the correct packet driver.  Also check the vector number                     in TCPMAN (if you set it yourself rather than letting TCPMAN do it                     for you).
  276.  
  277. unable to allocate network buffers    critical error...  try to free up some special driver memory by removing                 windows device drivers.  See section on low memory.
  278.  
  279. network buffers low        not critical but unadvisable... try to free up some special driver                     memory by removing windows device drivers.
  280.  
  281. If WINPKT cannot load (No packet driver found), check your packet driver vector number.  Some drivers may choose a default vector which is not at 0x60.  eg.,  ODIPKT default is 0x69
  282.  
  283. If you are using ODIPKT and you cannot get any response, you are probably accessing the wrong protocol.  If you have the ARP trace on, you will possibly get "ARP timed out" messages.  The first parameter of ODIPKT selects the correct protocol.  Try adjusting this.
  284.  
  285. If you get the "unable to load network buffers" or "network buffers low" message, there are ways to free up more memory for the winsock.  You can try providing more DOS memory before Windows is loaded by removing unwanted TSR's or drivers.  Also there can be occasions where Windows will attempt to load the full winsock into low memory resulting in insufficient driver memory being available.  The workaround for this is to try loading the winsock at a different time.  Often this error occurs when loading automatically at start up.
  286.  
  287. Anything else...  contact Technical Support staff at Trumpet Software International, who will try to figure out what is wrong; but first browse the samples provided.          By email: tech-support@trumpet.com.au
  288.  
  289. SCRIPTING LANGUAGE 
  290.  
  291. Basic Commands
  292.  
  293. Each of the following commands is a scripting primitive and will return success or failure depending on whether the command succeeded or not.  Commands always return success unless otherwise specified.
  294.  
  295. Note that the parameters enclosed in <    > characters are compulsory for that command and those enclosed within [   ] are optional for that command.
  296.  
  297. abort            Abort the script.  This command always returns failure.
  298.  
  299. address <timeout>    Parse the current stream for an IP address.  This value will be copied into the                 Winsock's primary IP address.  The address change will not be effective until                 the script finishes.  Returns success if an IP address was found, or failure if it                 timed out.
  300.  
  301. bootp            Tell the winsock to attempt a bootp when the script has finished executing.                  This will normally only happen at the end of the login.cmd script and not the                 bye.cmd script.  This will modify any TCP/IP setup parameters that have been                 specified in the returned bootp response. 
  302.  
  303. display <string>        Display <string> on the tcpman console display.  
  304.  
  305. echo [ on | off ]        Turn the echoing of received characters on or off respective.  The default is 'on'             which will display any received data while dialling onto the tcpman debug                 screen.
  306.  
  307. exec [ <program command> ]    
  308.             Execute the windows command specified.  This will usually be to start                     up a program from the script, eg., pingw to check the connectivity.
  309.  
  310. expect <timeout> <target string>    
  311.             Check that the current input stream contains the target string. It must match                 exactly, and will not search the stream.  If the command timed out or the string             received does not match, the command returns failure.
  312.  
  313. input <timeout> <target string>    
  314.             Scan the current input stream for the matching string. The target string must be             found for the command to be successful.  If no string is found within the                 timeout period, the command returns failure.
  315.  
  316. load <variable> [<string variable> [<.ini file>]]
  317.             Returns  <variable> which may be (integer or real) from <ini file>.   
  318.             <string variable> is the section name within the ini file and defaults to: default                 vars.    <ini file> is the name of the Winsock ini file and defaults to:                     trumpwsk.ini.   Note that the file extension must be specified with the file                 name.
  319.  
  320. online            Tell the winsock to go online immediately.  SLIP packets will begin to be                 processed, and the state of the comms port will be adjusted to normal SLIP                 conditions.
  321.  
  322. output <string>        Send the specified string to the output stream on the comms port.  Any                 characters received during this process will be echoed to the display if the echo                 flag is on.
  323.  
  324. outputecho [ timeout ] <string>        
  325.             Send the specified string to the output stream on the comms port.  As each                 character is output, the script processor waits for the corresponding character to             be echoed.  If the received character does not match, the command will abort                 and a failure is returned.  If a timeout is not provided, a default of 10 seconds is             used.  The timeout applies to the whole command.  In addition, the carriage-                return is handled specially by waiting for a linefeed to be read after the carriage             return is read. Both the sequences <CR><LF> and <CR><CR><LF> are                 acceptable.
  326.  
  327. password [ <prompt string> ]    
  328.             Bring up a message box with the optional prompt for the password to be                 entered.  Any characters typed will be echoed with a " * " character.  If the user             cancels the message box, the command returns failure.   Any password entered                 will automatically be encrypted.
  329.  
  330. query <string variable> [ <prompt string> ]
  331.             Bring up a message box for the string variable to be entered.  An optional                 prompt may be provided.  If the user cancels the message box, the command                 returns failure.
  332.     
  333. quit            Post a quit message to the winsock tcp manager.  This will start a normal quit                 process.
  334.  
  335. read <timeout> <string variable>    
  336.             Read the corresponding string variable from the comms input stream.  A whole             line is read.  The line should be terminated by a line feed character. Any                 carriage returns are stripped. Returns failure if the command timed out.
  337.  
  338.  
  339. save <variable> [<string variable> [<ini file>]]
  340.             Saves  <variable> which may be (integer or real) to <ini file>.   <string                 variable> is the section name within the ini file and defaults to: default vars.                   <ini file> is the name of the Winsock ini file and defaults to: trumpwsk.ini.                   Note that the file extension must be specified with the file name.
  341.  
  342. set ( dtr | rts ) [ on | off ]    Set the modem controls DTR or RTS to the given state.
  343.  
  344. sleep <timeout>        Pause for timeout seconds.
  345.  
  346. trace [ on | off ]        Enable or disable the tracing of scripting commands.  This command is very                 useful for debugging scripts that may be misbehaving.
  347.  
  348. username [ <prompt string> ]    
  349.             Bring up a message box for a username to be entered.  An optional prompt may             be entered.  If the user cancels the message box, the command returns failure.
  350.  
  351. wait <timeout> [ dsr | cts | dcd | rlsd ]      
  352.             Pause until the given modem signal changes state or a timeout occurs.  If the                 command times out, a failure is returned.
  353.  
  354.  
  355. String formats
  356.  
  357. When a string is required for a parameter, all characters up until the end of the command line are processed as the string.  Strings conform to the following format.
  358.  
  359. A quote character (") means that all characters are to be taken as is without any special meaning until a corresponding closing quote (") has been found.  The string is not permitted to extend over more than one line.
  360.  
  361. If a reverse slash "\" is found, it denotes that the character following has a special meaning, or is to be taken literally.  Here is a list of the special character meanings.
  362.  
  363. \b    place a back space character into the string (control character     number 8) 
  364.  
  365. \c    place the port number that the SLIP driver is using into the string as     a decimal number. 
  366.  
  367. \e    place an escape character into the string (control character 27) 
  368.  
  369. \f    place a form feed character into the string (control character 12) 
  370.  
  371. \i    place the current IP address into the string. 
  372.  
  373. \l    place a line feed character into the string (control character 10)
  374.  
  375. \n    place an end of line sequence into the string (control characters 13, then 10)
  376.  
  377. \p    place the current password into the string.
  378.  
  379. \r    place a carriage return character into the string (control character 13)
  380.  
  381. \t    place a tab character into the string (control character number 9)
  382.  
  383. \u    place the current username into the string.
  384.  
  385. \0 to \9    this denotes a decimal number of a character to be added into     the stream.  Up to three digits may be supplied.  eg.  \0     \27   \255
  386.  
  387. If a '#' symbol is found that is not inside quotes, then it means that the rest of the logical line is to be ignored.  This can be used to annotate the script.
  388.  
  389. If a '$' symbol is found, it denotes a string variable.  If the variable has been assigned a value when the command is executed, it's value will be placed in the string.  If not, an error message is displayed, and the script continues.
  390.  
  391. If a '%' symbol is found, it denotes an integer variable.  If the variable has been assigned a value when the command is executed, it's value will be placed in the string.  If not, an error message is displayed, and the script continues.  Integers are 32 bit signed integers in the range -2147483648 to 2147483647.
  392.  
  393. If you wish to use the characters \, #, $ or % inside a string, they must be quoted with " or have a \ character in front of them.  The " character may only be formed by preceding it with a \ character.
  394.  
  395. Program control commands.
  396.  
  397. In addition to the basic command primitives, there are the following special control statements.
  398.  
  399. If Statement.
  400.  
  401. if <condition>
  402.   <statement list>
  403. [ else
  404.   <statement list> ]
  405. end
  406. If the condition evaluates as true, the first statement list is executed. If the condition evaluates as false, the first statement list is ignored, and if an else clause is present, it is executed instead.
  407.  
  408. While Loop.
  409.  
  410. while <condition>
  411.    <statement list>
  412. end
  413.  
  414. While the condition evaluates as true, the statement list is executed.
  415.  
  416. Repeat Loop.
  417.  
  418. repeat
  419.   <statement list>
  420. until <condition>
  421.  
  422. The statement list is repeatedly executed until the condition evaluates as true.
  423.  
  424. Assignments and Expressions.
  425.  
  426. Assignments are used to store new values into variables.  They take the following forms.
  427.  
  428. <integer variable> = <integer expression>
  429. eg.    %attempts = %attempts + 1
  430.  
  431. <string variable> = <string expression>
  432. eg. $name = $first + $last
  433.  
  434. The variable part may be a string variable (either unspecified or starting with a $), or an integer variable (starting with a %).
  435.  
  436. Integer expressions may be composed of the following operands.
  437.  
  438. numbers            eg.     1    43    7373
  439. quoted strings        eg.     "fred"     "OK"
  440. string variables        eg.    $name    $response
  441. integer variables        eg.    %I     %count
  442.  
  443. The following string functions may be used as operands.
  444.  
  445.     copy ($s, %,p %l)    Copy characters from string $s starting at character %p for %l                     characters and return them as an expression. Note that string                         character counting starts at 1 - not     zero.
  446.  
  447.     len ($s)            Returns length of string $s as an integer                                 number.
  448.  
  449.  
  450.     lower ($s)        Converts string $s to all lower case.
  451.  
  452.  
  453.     pos ($s1,$s2)        Returns an integer number corresponding                                 to the position of the first character of                                 string $s1 as found in string $s2.   A zero                                 value is returned if $s1 is not found                                 within $s2.
  454.  
  455.  
  456.     upper($s)        Converts string $s to all upper case.
  457.  
  458.  
  459.  
  460.  
  461. Integer expressions use the following operators in order of priority.
  462.  
  463. ( )    
  464. *  / %            meaning multiplication, division and modulo division.
  465. +, -        meaning addition and subtraction
  466.  
  467. String expressions may use the following operators:  ( )  +  concatenation
  468.  
  469. Also, integer operands may be formed by the comparison of strings.
  470.  
  471. eg.  $A = "FRED"   will evaluate to an integer operand of 0 or 1 depending on the value of $A.
  472.  
  473. Conditional expressions may also be formed using conditions and boolean operators.
  474.  
  475. These operators have the following priorities.
  476.  
  477. = <> < > <= >=    equal, not equal, less than, greater than, less than or     equal, greater than or equal.  They             return 0 or 1 depending on the result of the condition.
  478.  
  479. !            boolean not operator
  480. &            boolean and operator
  481. |            boolean or operator
  482.  
  483. A more exact syntax is provided as an appendix.
  484.  
  485. Commands as operands
  486.  
  487. As well as the normal type of operands one may expect with expressions, one can also use a scripting command as part of an expression in the following manner by surrounding the command with the [ and ] symbols as follows.
  488.  
  489. eg.    [input 10 OK\n]
  490.  
  491. This operand would have the value 1 if the command succeeded or 0 if it failed.
  492. By the prudent use of such operators, quite sophisticated scripts can be formed.
  493.  
  494. For example, the following segment of script could be used to attempt a repeated dial of a given number. Note the use of the outputecho rather than output so that any characters echoed from the command will be consumed.
  495.  
  496. %attempts = 0
  497. repeat
  498.   %attempts = %attempts + 1
  499.   outputecho 60 atdt345772371\r
  500. until [input 30 CONNECT\n] | %attempts = 10
  501.  
  502. This section of script is fine, but would take 30 seconds for the input function to timeout if a response other than CONNECT were returned. It could be refined further into the following lines
  503.  
  504. %attempts = 0
  505. repeat
  506.   %attempts = %attempts + 1
  507.   outputecho 60 atdt345772371\r
  508.   read 30 $result
  509. until $result = "CONNECT" | %attempts = 10
  510.  
  511. This piece of script would be fine unless the modem failed to respond, in which case the script would abort.  A further refinement would be the following.
  512.  
  513. %attempts = 0
  514. repeat
  515.   %attempts = %attempts + 1
  516.   outputecho 60 atdt345772371\r
  517.   %timeout = [read 30 $result]
  518.   if %timeout
  519.     display "Dial up timed out."\n
  520.   end
  521. until $result = "CONNECT" | %attempts = 10 | %timeout
  522.  
  523.  
  524. These portions of script are only examples to demonstrate the use of scripting.  In practice, most modems do not generate simple messages after the atdt command.  You will have to skip extra lines etc., to get a working script.
  525.  
  526.  
  527. DIALLER PROBLEMS.
  528.  
  529. Q.     tcpman just pauses when starting up, then gives the message     "unable to load TCP".
  530.  
  531. A.     You've probably got BOOTP set.  Replace it with 0.0.0.0 before dialling and try again. RARP is     impossible to send via SLIP so don't bother with that.
  532.  
  533. Q.     The connection appears to be too slow compared to Xmodem.
  534.  
  535. A.      Possibly the MTU/MSS & RWIN settings are not right.  Try to make RWIN about 3 to 4 times     MSS (an exact multiple if     possible.) Turn on the IP trace to see if fragmentation is occurring on     TCP connections.  If so, then reduce MSS until it stops.  UDP packets     will still be fragmented,     but nothing can be done about that.  On the     trace, TCP is type 6 while UDP is type 17.
  536.  
  537. Q.     Some input commands in the script don't work.
  538.  
  539. A.     Check for upper case/lower case conflicts.  Also check for blanks at the end of the lines.  Try     quoting the strings to be sure.
  540.  
  541. For other problems, contact us at:
  542.  
  543. tech-support@trumpet.com.au, or try the trumpet news groups. Details are at the end of this document.  As time goes on, various FAQ's will be constructed to cope with the more common problems.
  544.  
  545. SAMPLE CONFIGURATIONS FOR PACKET DRIVER.
  546.  
  547. 1. Plain ne2000 packet driver using WINPKT.
  548.  
  549. ne2000 0x60 2 0x300
  550. WINPKT 0x60
  551.  
  552. 2. Ne2000 packet driver with Novell NetWare access using WINPKT.
  553. Specification of the -n switch of the packet driver is important. Some packet drivers don't support this switch.  In that case, you may be forced to use ODI instead. An example could be the Xircom Pocket Adapter.
  554.  
  555. ne2000 -n 0x60 2 0x300
  556. WINPKT 0x60
  557. pdipx
  558. netx
  559. path c:\dos;c:\network\win31
  560. f:
  561. login
  562.  
  563. 3. Ne2000 packet driver with Novell NetWare access using PKTMUX.  Notice that WINPKT is not required since PKTMUX does a similar job.
  564.  
  565. ne2000 -n 0x60 2 0x300
  566. pktmux 4
  567. pktdrv
  568. pktdrv
  569. pktdrv
  570. pktdrv
  571. pdipx
  572. netx
  573. path c:\dos;c:\network\win31
  574. f:
  575. login
  576.  
  577. 4. ODI setup with NetWare access.
  578.  
  579. You will need ODIPKT.  The latest known release is 2.4 It is important that ODIPKT reference the correct protocol for IP access. This can be specified as the first parameter to ODIPKT (0=1st, 1=2nd and so forth)
  580.  
  581.  
  582. Here's a sample of my network attach batch file.
  583.  
  584. @echo off
  585. cd \
  586. lh lsl
  587. lh \odi\ne2000
  588. cd \net
  589. lh ipxodi
  590. lh odipkt
  591. lh WINPKT 0x69
  592. lh netx
  593. path c:\dos;c:\net\win31
  594. f:
  595. echo on
  596. login
  597.  
  598. Also, your net.cfg must be suitably configured.  Here are the relevant excerpts from my net.cfg
  599.  
  600. Link Support
  601.          Buffers 8 1586
  602.          MemPool 16384
  603.  
  604. Link Driver NE2000
  605.          Port #1 300 20
  606.          Int #1 2
  607.          Frame Ethernet_II
  608.          Frame Ethernet_802.3
  609.          Protocol IPX 0 Ethernet_802.3
  610.  
  611.  
  612. The ordering of the frame protocols is important for the default setup of ODIPKT.  Also, users should be aware that there are two versions of ODIPKT, one released by FTP Software, and the other, a public domain one.  This example refers to the public domain version.  Also note that there are two programs with the same name of "ne2000.com".  One is a packet driver and is referred to in an earlier section.  The one referred to in this section is actually an ODI driver and won't function as a packet driver at all.
  613.  
  614. 5. Windows for Workgroups 3.11 Setup, courtesy of B. Armstrong  and Douglas W. Jones.
  615.  
  616. There is an automatic 3.11 installer available free of charge from our ftp server: 
  617.  
  618. ftp.trumpet.com.au:/ftp/pub/winsock/wfwsetup/twswfwg.zip
  619.  
  620. This is provided AS IS with no warranty and is for personal use only.  You will also need to pick up a copy of of the DIS_PKT9 program.  It currently only supports NDIS2, not NDIS3.
  621.  
  622. 6.  Some more packet driver installations courtesy of Ashok Aiyar (ashok@biochemistry.bioc.crwu.edu)
  623.  
  624. Ashok says...
  625. "Configuration for Cabletron Network Cards.  The packet driver provided by Cabletron is a little confusing as it doesn't use the same parameters as packet-drivers that use the Crynwr skeleton.
  626.  
  627. Typically the Cabletron driver is loaded as:
  628.  
  629. "csipd_e /s:62 /h:7 /p:300"
  630.  
  631. In this example the software interrupt is 0x62.  Load winpkt.com as
  632.  
  633. "WINPKT 0x62"
  634.  
  635. Release 11 of the Crynwr packet drivers includes a driver for Cabletron cards written by Kai Getrost using the Crynwr skeleton that uses the same parameters as the other Crynwr drivers.  This driver (CTRONDNI.COM) seems to work well with E1020/1040 and E2020 Cabletron cards.  Indeed I see a performance gain over the Cabletron driver.  Your mileage may vary.
  636.  
  637. C/SLIPPER with PKTMUX.  Although the Trumpet Winsock has built in support for C/SLIP, there are situations when in addition to Winsock applications there is a need to run packet driver applications simultaneously over a SLIP link.  For such situations, PKTMUX is of utility.
  638.  
  639. Example:
  640.  
  641. CSLIPPER vec=65 com1 irq=04H baud=57600 ether
  642. PKTMUX 4 65 /4  .... (support for a maximum of 4 virtual packet drivers)
  643. PKTDRV 60 65
  644.  
  645. Configure the Trumpet Winsock to use the virtual packet driver at 0x60.  All other virtual packet drivers (PKTDRV) can be loaded in the DOS Windows in which they are used.  They need not be loaded before entering Windows."  (Ashok Aiyar)
  646.  
  647. (Ed. Note... You may also require the use of a special comms buffer to enhance the buffering capabilities of Windows when using slipper/cslipper.  A FAQ on doing this is available from biochemistry.bioc.cwru.edu via gopher or FTP.  It is not needed when using the internal SLIP functions of the Winsock)
  648.  
  649. EXTRA INFO
  650.  
  651. You may use environment variables or command line options to override some of the network parameters.  They have the same names as the saved parameters in trmpwsk.ini.  This file normally resides in the winsock directory rather than the windows directory since this facilitates setting up the winsock in a networked environment.  IP addresses can be overridden by using the environment variables, or the command line.
  652.  
  653. example of command line.
  654.  
  655.    tcpman -ip=123.231.213.123 -netmask=255.255.255.0
  656.  
  657. example of environment variable
  658.  
  659.   set ip=123.231.213.123
  660.   set netmask=255.255.255.0
  661.  
  662. Here's a list of parameters that can be overridden:
  663.  
  664. ip/myip            your IP address or 'bootp' or 'rarp' (lower case only)
  665.  
  666. netmask            your netmask.  eg.  255.255.0.0
  667.  
  668. gateway/mygateway    your gateway (IP address)
  669.  
  670. dns            list of DNS IP addresses
  671.  
  672. time            list of time server IP addresses
  673.  
  674. domain            list of domain name suffixes
  675.  
  676. vector            packet driver vector in hex
  677.  
  678. MTU            Maximum Transmission Unit
  679.  
  680. RWIN            TCP Receive Window.
  681.  
  682. MSS            TCP Maximum Segment Size
  683.  
  684. slip-enabled        0 = off, 1 = on
  685.  
  686. slip-port            port number (1-9)
  687.  
  688. slip-baudrate        baud rate in decimal
  689.  
  690. slip-handshake        0 = off, 1 = on
  691.  
  692. slip-compressed        0 = off, 1 = on
  693.  
  694. THE CRYNWR PACKET DRIVER COLLECTION
  695.  
  696. Availability
  697.  
  698. The Crynwr packet driver collection is available by mail, by FTP, by e-mail, by UUCP and by modem.  The drivers are distributed in three files: drivers.zip, which contains executables and documentation, drivers1.zip, which contains the first half of the .ASM files, and drivers2.zip, which contains the second half of the .ASM files.
  699.  
  700. Mail:
  701.  
  702. Columbia University distributes packet drivers by mail.  The formats are 9-track 1600 bpi tapes in ANSI, tar, or OS SL format, or PC diskettes (360K 5.25" and 720K 3.5").  The exact terms and conditions have yet to be worked out, please call (212) 854-3703 for ordering information, or write to:
  703.  
  704.   Kermit Distribution, Dept PD
  705.   Columbia University Center for Computing Activities
  706.   612 West 115th Street
  707.   New York, NY  10025
  708.  
  709. or send e-mail to kermit@watsun.cc.columbia.edu (Internet) or
  710. KERMIT@CUVMA (BITNET/EARN).
  711.  
  712.  
  713. FTP/e-mail:
  714.  
  715. The packet driver collection has its own directory devoted to it, pd1:<msdos.pktdrvr>.  The drivers are there, along with many free programs that use the packet drivers.
  716.  
  717. SIMTEL20 files are also available from mirror sites oak.oakland.edu
  718. (141.210.10.117), wuarchive.wustl.edu (128.252.135.4), ftp.uu.net (192.48.96.9), nic.funet.fi (128.214.6.100), src.doc.ic.ac.uk (146.169.3.7) or archie.au (139.130.23.2), or by e-mail through the BITNET/EARN file servers.
  719.  
  720. Modem:
  721.  
  722. If you cannot access them via FTP or e-mail, most SIMTEL20 MSDOS files, including the PC-Blue collection, are also available for downloading from Detroit Download Central (313) 885-3956.  DDC has multiple lines which support 300/1200/2400/9600/14400 bps (103/212/V22bis/HST/V32bis/V42bis/MNP).  This is a subscription system with an average hourly cost of 17 cents.  It is also accessable on Telenet via PC Pursuit and on Tymnet via StarLink outdial.  New files uploaded to SIMTEL20 are usually available on DDC within 24 hours.
  723.  
  724. CD-ROM:
  725.  
  726. Public, private or corporate institutions and libraries interested in the SIMTEL20 MSDOS collection in CD-ROM format bundled with library card-catalog type access and duplication software can contact Coyote Data, Ltd. by mail at 1142 N. Main, Rochester, MI 48307 or by FAX at (313) 651-4071.
  727.  
  728. UUCP:
  729.  
  730. The packet driver files are available from UUNET's 1-900-GOT-SRCS, in uunet!~/systems/msdos/simtel20/pktdrvr.  See UUNET.DOC for details.
  731.  
  732.  
  733. ODIPKT location
  734.  
  735. The originating site for ODIPKT is...
  736.  
  737. Host newdev.harvard.edu
  738.  
  739.      Location: /pub/odipkt
  740.             FILE -rwxr-xr-x       2915 Aug 21 20:01  odipkt.com
  741.  
  742. A copy of the NDIS shim is there also.
  743.  
  744. TCPMAN - THE TRUMPET WINSOCK TCP MANAGER
  745.  
  746. Menu options.
  747.  
  748. File/Setup    calls up the setup dialog for configuration
  749.  
  750.     IP address    your IP address, "bootp" or "rarp" (lower case).  BOOTP will only work if there             is a BOOTP service on-line.  RARP will only work if using Ethernet, and there                 is an RARP service on-line.
  751.  
  752.     Netmask    your network mask
  753.  
  754.     Default gateway    your default Internet gateway or router
  755.  
  756.     Name server    your Domain Name Server address
  757.  
  758.     Time server    (unused leave empty)
  759.  
  760.     Domain Suffix    a space separated list of suffixes to be tried when looking up names via the                 name server
  761.  
  762.     Packet Vector    for accessing the packet driver in hex
  763.  
  764.     MTU        Maximum Transmission Unit
  765.  
  766.     TCP RWIN    TCP Receive Window
  767.  
  768.     TCP MSS    TCP Maximum Segment Size
  769.  
  770.     Demand Load
  771.      Timeout    number of seconds tcpman stays loaded after the application has finished with                 it
  772.  
  773.     Internal SLIP    click on this for internal SLIP support
  774.  
  775.     Internal PPP     click on this for internal PPP support
  776.  
  777.     SLIP port    which comms port to use
  778.  
  779.     Baud Rate    speed of the connection
  780.  
  781.     Hardware 
  782.     Handshaking    turn on for RTS/CTS handshaking. May require the AT&K3 modem command             to function properly
  783.  
  784.     Van Jacobson CSLIP 
  785.     compression    turn on for CSLIP TCP header compression
  786.  
  787.     Online Status 
  788.     Detection    needed for dialler autologin / autologout enabling
  789.  
  790.     None        no online status detection
  791.  
  792.     DCD (RLSD)
  793.     check        may require AT&C1 modem command to function
  794.  
  795.     DSR check    may require AT&S1 modem command to function
  796.  
  797. File/Register        calls up the registration dialog
  798.  
  799. File/Firewall setup    calls up the firewall setup dialog
  800.  
  801. PPP options        allows PPP authentication protocol to be configured
  802.  
  803. File/Exit            quits the TCP manager, forcing the winsock to be unloaded
  804.  
  805. Edit/Copy        copy selected text on tcpman display to the clipboard
  806.  
  807. Edit/Clear        clear the tcpman display
  808.  
  809. Special/Info        displays a list of active sockets
  810.  
  811. Special/Kill Socket    allows any socket to be killed; use with caution
  812.  
  813. Tracing options.  Use with care since some applications may crash when the traces are active.  Should a program crash with stack overflow, the winsock may remain loaded in memory even though tcpman has exited.  It is advisable to restart windows if this happens and possibly even to reboot your machine.  Also, timing measurements of the winsock throughput will be severely affected by the trace options.
  814.  
  815. Trace/TCP        turn TCP trace on/off
  816.  
  817. Trace/UDP        turn UDP trace on/off
  818.  
  819. Trace/IP            turn IP tracing on/off
  820.  
  821. Trace/ARP        turn ARP tracing on/off
  822.  
  823. Trace/RARP        turn RARP tracing on/off
  824.  
  825. Trace/Ethernet        add Ethernet headers to IP/ARP/RARP traces
  826.  
  827. Trace/Extra detail    add some extra detail to TCP, UDP & IP traces
  828.  
  829. Trace/Socket calls    trace each winsock call the subroutine parameters are displayed as                     well
  830.  
  831. Trace/DNS        trace Domain Name Server operations  Use with care, stack overflows can be
  832.              frequent
  833.  
  834. Trace/Messages        trace Async Socket messages
  835.  
  836. Trace/Comms        trace serial port communications
  837.  
  838. Trace/PPP        trace PPP negotiations
  839.  
  840. Dialler/Login        invoke the login.cmd dialler script
  841.  
  842. Dialler/Bye        invoke the bye.cmd dialler script
  843.  
  844. Dialler/Other        invoke other scripts.  a file selection dialog of *.cmd will be displayed
  845.     
  846. Dialler/Manual Login    invoke the dialler manually.  Use <esc> to exit from the manual dialler
  847.  
  848. Dialler/Edit Scripts    invokes notepad to edit any script
  849.  
  850. Dialler/Options        call up the dialler options dialog
  851.  
  852. No automatic login    
  853.  
  854. Automatic login on startup only
  855.  
  856. Automatic login and logout on demand
  857.  
  858. SLIP inactivity timeout (minutes)    Number of minutes to wait before exiting winsock. (when no application is using the winsock.)  Automatic login & logout must be enabled for this to close the SLIP connection.  A value of 0 disables the timeout.
  859.  
  860. Automatic redial when 
  861. disconnected        Redials once per minute while disconnected    
  862.  
  863. Use standard SLIP settings for parity and word size
  864.  
  865. Use Control Panel settings for parity and word size if your SLIP server does not accept 8 bits and no parity when logging in click on the Use Control Panel settings
  866.             
  867. Any additional scripts will appear in the dialler menu
  868.  
  869. Help/About        Display the version number and copyright
  870.  
  871. TRUMPET GENERAL DISCUSSION GROUP.
  872.  
  873. The machine newsroom.trumpet.com.au is now running a local news service with the news groups
  874.  
  875.     trumpet.announce
  876.     trumpet.bugs
  877.     trumpet.feedback
  878.     trumpet.questions
  879.  
  880. You can ask questions, or discuss any aspect of any Trumpet program through these groups.  Feedback is always welcome.  There is also an anonymous FTP area at ftp.trumpet.com.au with all the latest Trumpet programs and pre-releases.  However, our site currently supports a maximum of 20 concurrent ftp sessions - please be patient if you are unable to connect.
  881.  
  882. BUGS OR COMMENTS
  883.  
  884. Send to 
  885.  
  886.    tech-support@trumpet.com.au
  887.  
  888. For bug reports, please send a copy of config.sys, autoexec.bat, trumpwsk.ini, and any other relevant network configurations.  In the case of ODI, also send net.cfg.  Due to the high demand for the Trumpet Winsock, our mail box can be overloaded at times, therefore, priority will be given to registered users.   We request that registered users identify themselves as such by including their registration name with all correspondence.  Be patient...  someone will answer you.  You may also call us for assistance or send a FAX, our numbers are:
  889.  
  890. International Phone:    +61-02-450220
  891. International FAX:        +61-02-450210
  892.  
  893. REGISTRATION
  894.  
  895. Registration of the Trumpet Winsock is encouraged since it funds further development of the winsock.  It involves sending in a registration form filled in with your registration name and other details.  On receipt of your registration, you will receive a password which will remove the UNREGISTERED VERSION notice and replace it with your registration name.  As part of this registration, you will receive enough support to get you going within the existing capabilities of the winsock at the present time, and preference will be given to registered users when it comes to bug fixes or future enhancements to the winsock.  Packet drivers using Ethernet and SLIP are presently the only supported network access.  The winsock will function through the use of packet driver shims for ODI, NDIS and token ring, but the use of these is not supported, neither is the winsock supported should you be using PKTMUX.
  896.  
  897. The Trumpet Winsock is currently distributed as shareware. You may use the Trumpet Winsock for 30 days to evaluate its usefulness.  If at the end of that time you are satisfied with the Trumpet Winsock as a product, you should register it.  
  898.  
  899. The basic registration fee for a single user version of the Trumpet Winsock is US$25.  See a later section for details on multi-user site licenses.
  900. Australian users should contact Trumpet Software International regarding Australian pricing information and availability.
  901.  
  902. We accept MASTERCARD, VISA, BANKCARD, AMERICAN EXPRESS and DINERS CLUB. Credit card details may be given by e-mail, fax or telephone.
  903.  
  904. Trumpet Winsock Version 2.0 has a "Send Registration" option which will automatically post encrypted credit card details to Trumpet Software International.  Select File/Register to take advantage of this feature.
  905.  
  906. Phone    : International +61-02-450220,  Australia (002) 450220
  907. FAX:     International +61-02-450210,  Australia (002) 450210
  908.  
  909. We also accept Cheques which should be drawn in favour of:   
  910.      Trumpet Software International Pty Ltd
  911.  
  912. and sent to:
  913.  
  914.     Trumpet Software International Pty Ltd.
  915.     GPO Box 1649,
  916.     HOBART, TAS AUSTRALIA 7001
  917.  
  918. Please fill out the following order form and send it along with your payment to the above address.
  919. Order Form
  920.  
  921.  
  922.  
  923.    +----------------------------------------------+
  924.    |              O R D E R   F O R M             |
  925.    | for Trumpet Winsock version 2.0 Software     |
  926.    +----------------------------------------------+
  927.  
  928.  
  929. Ship to:                       Bill to:
  930.  
  931. [                                        ]      [                                       ]
  932. [                                        ]      [                                       ]
  933. [                                        ]      [                                       ]
  934. [                                        ]      [                                       ]
  935. [                                        ]      [                                       ]
  936.  
  937.  
  938. Please supply the following items:
  939. ---------------------------------------------------------
  940.  
  941. Licence to use Trumpet Winsock 2.0 for [      ] users
  942.                           . . . . . US$[      ]
  943.  
  944. Tick at least one of the following options.
  945. [ ] 5.25" disk with the latest version of Trumpet Winsock + password
  946. [ ] 3.5" disk with the latest version of Trumpet Winsock + password
  947. [ ] registration password via post
  948. [ ] registration password via e-mail
  949.  
  950. Your registration name(required) (will appear on program)
  951.  
  952. [_______________________________________________________]
  953.  
  954. Your e-mail address (optional - print clearly)
  955.  
  956. [_______________________________________________________]
  957.  
  958.  
  959. Date sent [_________]  Expected delivery Date [_________]
  960.  
  961.  
  962.  
  963. SITE LICENSES
  964.  
  965. A site license is defined as being a sale to an organisation or company, and may not be resold or redistributed for profit. It may only be used within that organisation.
  966.  
  967. prices valid until 31-Dec-1994
  968.  
  969.    Single User license
  970.  
  971.      1 user           $25 US
  972.  
  973.    Multi-user site license
  974.  
  975.    A multi-user site license for Trumpet Winsock will be charged by the number of  installed users.
  976.  
  977.    The pricing structure for commercial users is thus:
  978.  
  979.      1-99 users    $25 US per user
  980.      100-499 users    $2500 US + $10 US per additional user over 100
  981.      500-999 users     $6500 US + $5 US per additional user over 500
  982.      1000+ users    $9000 US + $2 US per additional user over 1000
  983.  
  984.      site restriction 10km radius (negotiable)
  985.  
  986.    Unlimited Commercial Site License
  987.  
  988.      $12,500 US for first year.
  989.      subsequent years, 25% of unlimited site license fee for that year.
  990.      site restriction 100km radius (negotiable)
  991.  
  992.    The pricing structure for educational users is thus:
  993.  
  994.      1-100 users        $25 US per user
  995.      100+            $2500 US
  996.  
  997.      site restriction limited to a campus
  998.  
  999. Your site license will give you support for up to 12 months from the date of purchase.  Such support will include upgrades and bug fixes within that 12 months within the constraints of the program's existing capabilities.  Future upgrades will be 25% of the current license fee per annum.  Arrangements will also be made for conversion of smaller licenses to larger ones.
  1000.  
  1001. Should you wish to obtain the Trumpet Winsock to distribute with other programs, you should make a suitable offer to Trumpet Software International, and it will be considered.  Source code will not be made available under any circumstances, and Trumpet Software International Pty Ltd reserves the right not to accept any offer which is not considered acceptable.
  1002.  
  1003. Trumpet Software International
  1004. GPO Box 1649,
  1005. HOBART, TAS AUSTRALIA 7001
  1006.  
  1007. Phone:  International +61-02-450220,  Australia (002) 450220
  1008. FAX:   International +61-02-450210,  Australia (002) 450210
  1009.  
  1010.  
  1011.