ࡱ; vm"i  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuwxyz{|}~Root Entry F,R䉻CompObjbWordDocument mObjectPool 䉻 䉻 4@   FMicrosoft Word 6.0 Document MSWordDocWord.Document.6; L ࡱ;   FMicrosoft Word 6.0 Picture MSWordDocWord.Picture.6ࡱ;ࡱ;  Oh+'0 ܥe3 eT7m;4  *,7*V V V f X B*lm,BV\ jjjj! kkl%mTymcl"i+5"i"il"i"i"i"i"ij~D"ij"i"i Trumpet Winsock 3.0 by Peter R. Tattam  EMBED Word.Picture.6  Copyright ( 1996 Peter R. Tattam & Trumpet Software International Pty Ltd ACN 070 065 860 All Rights Reserved Table of Contents  TOC \t "Heading 2,1,Heading 3,2" 1 Introduction  GOTOBUTTON _Toc364663522  PAGEREF _Toc364663522 4 1.1 About this documentation  GOTOBUTTON _Toc364663523  PAGEREF _Toc364663523 4 1.2 What is the Trumpet Winsock?  GOTOBUTTON _Toc364663524  PAGEREF _Toc364663524 4 1.3 Capabilities of the Trumpet Winsock  GOTOBUTTON _Toc364663525  PAGEREF _Toc364663525 4 1.4 Whats new in Version 3.0?  GOTOBUTTON _Toc364663526  PAGEREF _Toc364663526 4 1.5 License Terms and Conditions  GOTOBUTTON _Toc364663527  PAGEREF _Toc364663527 6 1.6 Installation requirements  GOTOBUTTON _Toc364663528  PAGEREF _Toc364663528 6 2 Using the Trumpet Winsock over SLIP/PPP  GOTOBUTTON _Toc364663529  PAGEREF _Toc364663529 8 2.1 Setting up the Winsock for SLIP/PPP  GOTOBUTTON _Toc364663530  PAGEREF _Toc364663530 8 2.2 Logging in for the first time  GOTOBUTTON _Toc364663531  PAGEREF _Toc364663531 9 2.3 Logging in manually  GOTOBUTTON _Toc364663532  PAGEREF _Toc364663532 9 2.4 Configuring your profile  GOTOBUTTON _Toc364663533  PAGEREF _Toc364663533 10 2.5 Example profiles  GOTOBUTTON _Toc364663534  PAGEREF _Toc364663534 11 2.6 Configuring your login script  GOTOBUTTON _Toc364663535  PAGEREF _Toc364663535 13 3 Using the Trumpet Winsock over a packet driver  GOTOBUTTON _Toc364663536  PAGEREF _Toc364663536 14 3.1 Installing a packet driver and WINPKT  GOTOBUTTON _Toc364663537  PAGEREF _Toc364663537 14 3.2 Installing an NDIS or ODI packet driver shim  GOTOBUTTON _Toc364663538  PAGEREF _Toc364663538 14 3.3 Setting up the Winsock for a packet driver or shim  GOTOBUTTON _Toc364663539  PAGEREF _Toc364663539 16 4 Menu Commands  GOTOBUTTON _Toc364663540  PAGEREF _Toc364663540 18 4.1 File  GOTOBUTTON _Toc364663541  PAGEREF _Toc364663541 18 4.2 Edit  GOTOBUTTON _Toc364663542  PAGEREF _Toc364663542 21 4.3 Special  GOTOBUTTON _Toc364663543  PAGEREF _Toc364663543 21 4.4 Trace  GOTOBUTTON _Toc364663544  PAGEREF _Toc364663544 22 4.5 Dialler  GOTOBUTTON _Toc364663545  PAGEREF _Toc364663545 23 4.6 Help  GOTOBUTTON _Toc364663546  PAGEREF _Toc364663546 27 5 Scripting Language  GOTOBUTTON _Toc364663547  PAGEREF _Toc364663547 29 5.1 Basic commands  GOTOBUTTON _Toc364663548  PAGEREF _Toc364663548 29 5.2 String formats  GOTOBUTTON _Toc364663549  PAGEREF _Toc364663549 32 5.3 Structured statements  GOTOBUTTON _Toc364663550  PAGEREF _Toc364663550 33 5.4 Assignments and expressions  GOTOBUTTON _Toc364663551  PAGEREF _Toc364663551 33 5.5 Predefined variables  GOTOBUTTON _Toc364663552  PAGEREF _Toc364663552 34 5.6 String functions  GOTOBUTTON _Toc364663553  PAGEREF _Toc364663553 35 5.7 Commands as operands  GOTOBUTTON _Toc364663554  PAGEREF _Toc364663554 35 5.8 Example script fragments  GOTOBUTTON _Toc364663555  PAGEREF _Toc364663555 35 5.9 Expression syntax  GOTOBUTTON _Toc364663556  PAGEREF _Toc364663556 37 6 Trumpet Winsock Error Messages  GOTOBUTTON _Toc364663557  PAGEREF _Toc364663557 38 6.1 Windows and Misc error messages  GOTOBUTTON _Toc364663558  PAGEREF _Toc364663558 38 6.2 Winsock API errors  GOTOBUTTON _Toc364663559  PAGEREF _Toc364663559 41 6.3 TCP errors  GOTOBUTTON _Toc364663560  PAGEREF _Toc364663560 42 6.4 Dialler errors  GOTOBUTTON _Toc364663561  PAGEREF _Toc364663561 42 6.5 Comm driver errors  GOTOBUTTON _Toc364663562  PAGEREF _Toc364663562 44 6.6 Packet driver error messages  GOTOBUTTON _Toc364663563  PAGEREF _Toc364663563 45 7 Trumpet Winsock FAQ  GOTOBUTTON _Toc364663564  PAGEREF _Toc364663564 46 7.1 General questions  GOTOBUTTON _Toc364663565  PAGEREF _Toc364663565 46 7.2 Registration questions  GOTOBUTTON _Toc364663566  PAGEREF _Toc364663566 46 7.3 Dialler questions  GOTOBUTTON _Toc364663567  PAGEREF _Toc364663567 47 7.4 Programmer's notes  GOTOBUTTON _Toc364663568  PAGEREF _Toc364663568 51 7.5 Windows 95 questions  GOTOBUTTON _Toc364663569  PAGEREF _Toc364663569 52 8 Glossary  GOTOBUTTON _Toc364663570  PAGEREF _Toc364663570 54 8.1 Command line  GOTOBUTTON _Toc364663571  PAGEREF _Toc364663571 54 8.2 Crynwr packet driver collection  GOTOBUTTON _Toc364663572  PAGEREF _Toc364663572 54 8.3 Trumpet files  GOTOBUTTON _Toc364663573  PAGEREF _Toc364663573 54 8.4 Definitions  GOTOBUTTON _Toc364663574  PAGEREF _Toc364663574 57 9 Contact Details and Online Services  GOTOBUTTON _Toc364663575  PAGEREF _Toc364663575 60 9.1 World Wide Web  GOTOBUTTON _Toc364663576  PAGEREF _Toc364663576 60 9.2 Technical support email addresses  GOTOBUTTON _Toc364663577  PAGEREF _Toc364663577 60 9.3 General email addresses  GOTOBUTTON _Toc364663578  PAGEREF _Toc364663578 60 9.4 The trumpet.* newsgroups  GOTOBUTTON _Toc364663579  PAGEREF _Toc364663579 61 9.5 FTP  GOTOBUTTON _Toc364663580  PAGEREF _Toc364663580 61 9.6 Telephone and fax numbers  GOTOBUTTON _Toc364663581  PAGEREF _Toc364663581 61 9.7 Postal address  GOTOBUTTON _Toc364663582  PAGEREF _Toc364663582 62 10 Registration Details  GOTOBUTTON _Toc364663583  PAGEREF _Toc364663583 63 10.1 How to register  GOTOBUTTON _Toc364663584  PAGEREF _Toc364663584 63 10.2 Price list  GOTOBUTTON _Toc364663585  PAGEREF _Toc364663585 64 10.3 Distribution Rights  GOTOBUTTON _Toc364663586  PAGEREF _Toc364663586 64 10.4 Order form  GOTOBUTTON _Toc364663587  PAGEREF _Toc364663587 66  Introduction Thank you for using the Trumpet Winsock. It is through the kind support of our users that quality networking software has been available at affordable prices to the Internet community. 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. See Registration Details for more information. About this documentation This documentation has been revised for Trumpet Winsock Version 3.0 by Rob Torok. Originally written as a Word for Windows 6.0 document, it is available in a variety of formats (including an online Help file, trumpwsk.hlp) from our WebWeb and FTPFTP sites. Throughout this help file, Winsock refers to the Trumpet Winsock, and winsock.dll refers to the winsock.dll that comes with the Trumpet Winsock unless otherwise specified. Note that the Trumpet Winsocks help file has a non-standard Menu button. This is particularly useful for getting around from topic to topic. If you ever get lost, try using the Menu button to go up a level at a time. What is the Trumpet Winsock? The Trumpet Winsock is a Windows Sockets 1.1 compatible TCP/IP stack that provides a standard networking layer for many Windows networking applications to use, and has itself been a major vehicle in achieving widespread use of Windows Sockets 1.1. Capabilities of the Trumpet Winsock The Trumpet Winsock is supported under the following configurations and associated features. Dial up SLIP and PPPppp connections, featuring: Demand load dialling. A Scripting Language for automatically logging in and out of your SLIP/PPP server. Dynamic IP address assignment. PPP options: PAP and CHAP. Offlineoffline use of Winsock applications. Connection to local area network by way of a packet driver or shim and WINPKT under enhanced mode. BOOTPBOOTP and RARPRARP. Whats new in Version 3.0? Significant modifications made to the Trumpet Winsock since Version 2.1 include a few bug-fixes and: Revised documentation including online helptrumpwsk.hlp. Improved online Internet registration system. New scripting commands. More flexible demand loading with the Login on network activityautologin feature. An installer! Here is an exhaustive list of changes to the Trumpet Winsock since Version 2.1: 1. PPP processor modifications. Added CHAP support. Corrected some problems with PAP. Fixed magic number bug in ECHO reply. Added status message box when CHAP or PAP fails. 2. TCP protocol modifications Improvements to reduce processing for out of sequence packets. Blocking sockets improvements (see IP protocol modifications). Correct excessive resend bugs. Allow send buffer size > 32K (up to just under 65K) (fixes 32 bit Netscape problem). 3. TCP Manager (tcpman.exe) modifications Extensive changes to the scripting language. Changes to menus (special/register, dialler/profile, etc). Changes to dialogs. Added extra dialler option (dial on demand). Error messages on startup displayed as dialog. Improvements to the login/logout state machine for SLIP/PPP. Fixed bug where tcpman crashes if wm_quit sent to tcpman. Improvements to shut down operations to prevent system crashes (not 100% perfect yet, but close). 4. Packet driver module Decreased minimum packet buffers from 4 buffers to 2 buffers. Slightly altered error messages for error dialogs. 5. SLIP/PPP comms driver module Allow reconfiguration without restarting Winsock. Return PPP link failed state to WSAStartup. Allow dial on demand for network activity. General modifications to allow for PAP/CHAP login failure to give link failed state. Improved error message reporting. 6. DNS processing. Fixed bug in processing of compressed names. (only for outgoing data so not relevant to normal use of winsock) Search will abort if network down. Fixed gethostname to update cached hostname if IP address is changed. Fixed async getXbyY calls to keep local copy of data. Fixes random Netscape host lookup errors. 7. UDP protocol modifications Blocking sockets improvements (see IP protocol modifications). 8. IP protocol modifications Enable waitmessage processing to make the Winsock event driven rather than poll driven. (experimental, and is not 100% Winsock 1.1 compliant, does not work correctly for win32 tasks under Win95) Improves the performance of Windows when using blocking sockets. Win95 processing modifications to prevent reentrancy problems. Allow tcpman to abort bootp. Make sure that return IP address for ICMP ECHO REPLY is valid to prevent network storms. Miscellaneous alterations to blocking hook processing to be consistent with win32 multithreaded usage under Win95. 9. WINSOCK interface (winsock.dll) Detect more connection failed conditions (eg. PPP link failed errors). Reentrancy check on all socket calls for Win95 function. Blocking select call has waitmessage function. Return correct winsock information for WSAStartup errors. Kill all active sockets if tcpman.exe is unloaded. termsLicense Terms and Conditions The following terms and conditions apply to your use of the Trumpet Winsock program. Please read these terms before continuing the registration procedure. By using a registered copy of the Trumpet Winsock program you accept the terms and conditions below. If you do not accept the terms and conditions of this license, return this package to Trumpet Software International Pty Ltd and destroy all further copies of the product. 1. TSI grants the registered user of the software (You) a non-exclusive, non-transferable and perpetual licence to use the object code comprised in the software. You must not have installed at any one time more than the number of licensed copies of the software. 2. You acknowledge that the software is supplied AS IS and that TSI not making, and that no person acting on behalf of TSI has made, any warranty or representation as to the Softwares functionality, performance characteristics, merchantability or suitability for any particular purpose. All such warranties and representations are hereby excluded to the maximum extent permitted by law. 3. To the extent permitted by law, TSI, its directors, servants, agents and licensors are excluded from all forms of direct, special, indirect, or consequential loss or damage (including loss of profits, loss of data and loss or damage that may reasonably be supposed to have been in the contemplation of the parties as of the date of this agreement as a probable result of an act or omission by TSI) arising out of or in connection with Your use of the Software, including without limitation any loss or damage caused by TSIs negligence. Where relevant legislation does not permit TSIs liability to be limited in this way then, if permitted by that legislation, TSIs liability will be limited to, at TSIs option, the replacement of the relevant goods or the supplying of relevant services again, or the payment of the cost of having the services supplied again. For the purposes of this Clause 3, TSI is or will be taken to be acting as agent or trustee on behalf of and for the benefit of its directors, servants, agents and licensors. 4. The agreement formed by TSIs acceptance of Your application for registration is governed by and will be construed in accordance with the laws of the State of Tasmania, Australia. The 1980 United Nations Convention on the International Sale of Goods does not apply to that agreement. 5. You acknowledge that all rights in the Software are owned by TSI or its licensors and shall not at any time make any statement or do anything which is inconsistent with that ownership. Without limitation, Your licence does not allow You to resupply the software to any other person or to distribute the software. 6. Your licence is limited to use for Your own internal requirements and does not permit You to use the Software to process the data of any other person or a part of a bureau service. If use for these purposes is required then You should contact TSI to make arrangements for the granting of an appropriate licence covering such uses. Installation requirements For basic installation of the Trumpet Winsock, you will need the following: About 300-400k RAM (including 50-58k of global DOS memory) under normal conditions. About 1000k disk space. About 5 minutes to install the files. Some knowledge of your network for the Winsocks setup screens. NOTE: If you already have some kind of Internet software installed (eg Microsofts Dial-up Networking), it is likely that some massaging of your system configuration will be required to allow the Trumpet Winsock to function correctly. In particular, if you already have a Winsock (winsock.dll and/or wsock32.dll) on your machine, then you may need to uninstall those files before the Trumpet Winsock will work. Using the Trumpet Winsock over SLIP/PPP;SLIP;PPP Before applications can use the Winsock to access the Internet, the Winsock must dial into your Internet Service Provider and establish a SLIP or PPP connection. This section describes how to configure the Trumpet Winsock for use over SLIPslip or PPPppp. Have a look at the relevant sections of the Trumpet Winsock FAQ, or Trumpet Winsock Error Messages for more information on this topic. Setting up the Winsock for SLIP/PPP To enable your Winsock to function correctly it will be necessary to enter some details in the Setup screen. 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. Open the Trumpet Winsock and select Setup from the File menu to open the Setup dialog. Select either SLIPSLIP or PPPppp. Some details will be greyed out now. You need not try to fill them in. Enter your IP addressipaddress (if youve been assigned one), DNS serverdnsserver, and Domain suffixdomainsuffix. If your provider allocates IP addresses dynamically (or you are unsure), leave this as 0.0.0.0 for the moment. If youre feeling particularly brave, you may like to tweak Demand load timeoutdlt, MTUmtu, TCP RWINtcprwin, TCP MSStcpmss, and TCP RTO MAXtcprtomax. These values can be tailored to suit your needs once you have things running, but you should be able to establish a connection using MTU: 576, TCP RWIN: 2048, and TCP MSS: 512. You may like to talk to your Internet Service Provider for advice on optimising these. Open the Dialler Settings screen by clicking the Dialler Settings button. Set the Comm portcomm to the number of the comms port to which youve connected your modem. Eg. If your modem is on port 2, select: Com2 Set the Baud ratebaudrate that you would like your modem to run at. Eg. If youve got a Vfast 28.8k modem, select: 38400 Set Hardware handshakinghardware and VJ header compressionvjhc as required. Hardware handshaking is recommended if your modem and modem cable support it. Under SLIP, header compression may only be used if your service provider supports it. Under PPP, header compression is optional and recommended. Select the kind of Online status detection your modem supports. You will need to make sure that your modem has a default power on setting of &c1 for DCD detection to function. By default, all dialling is done with standard Parity and Word Size (8 bits, no parity). This may not work for you... If your service provider does not use 8 bits with no parity, you will need to select Use Control Panel settings and set these parameters in Windows Control Panel. When you have finished editing these screens, click on OK and if all goes well, the Trumpet Winsock will be initialised. If your Internet provider has instructed you to use PAP or CHAP, then: From the File menu, select PPP Options. Enable PAP or CHAP as required and enter your username and password. Press OK to continue. You should now be ready to try logging in for the first time. For more information about the options youve set, please see the sections covering the File/Setup and Dialler/Settings screens. Logging in for the first time There are two methods of logging into your Internet Service Provider: manual and automatic. A manual login involves entering the modem commands and server commands each time you wish to accesses the Internet. Automatic logins are a feature of the Trumpet Winsock which allow you to configure login scripts that automate the manual login process. For more information, see What's the difference between a manual and automatic login? When logging in for first time, try the following suggestions: Run the sample login script (login.cmd) by selecting Login from the Dialler menu. The first time it is launched you will be asked to enter phone number, username and password. You can change these later by selecting Profile from the Dialler menu. If you receive a message saying script completed then your script may require no further work. If you receive script aborted (possibly proceeded by another error message) then you should read on... Find out if your Internet provider has a preconfigured a Trumpet Winsock login script. Since many Internet providers will have prepared scripts for connecting to their systems, it may be worth contacting your provider to see if they have a suitable script. Try Logging in manually and then configuring your profile or login script. Once you have got a working login script, we recommend that you back up your login.cmd and trumpwsk.ini files. To be totally safe, back up all the files in your Trumpet directory. Please note that if you are upgrading from a previous release of the Trumpet Winsock, and already have a script that works, you should stick with it. Logging in manually Note that the Winsock will try to dial automatically when it starts unless No automatic login from Dialler/Settings is selected. To stop the script from executing, press the key. From the Dialler menu, select Manual Login. You will now be able to send commands (as described in your modems manual) to your modem using the "at" commands. Confirm that your modem is ready by typing an appropriate command (or initialisation string). For example, try entering: atz Each character should appear on the screen as you type them. If no characters appear on the screen, make sure that the modem is turned on and plugged in and that the modem is set to echo commands as they are entered. To enable echoing, type the following command: atze1 The modem should return: OK If the characters are appearing on the screen, but the isn't being taken, trying adjusting the baud rate in the Dialler/Settings screen. Check your modems manual to confirm which baud rates are valid. For more suggestions, see the error message Modem is not responding. Enter your modems initialisation string, if required. For example, try: at&f&c1&k3 Instruct the modem to start dialling, by typing: atdt The modem should now dial into your service provider. If the line is busy you will need to repeat this step until you get a free line. Use atdp instead of atdt if your phone exchange uses pulse dialling. Once connected to your providers machine, you will usually be asked to enter you username and password. Type these and press after each one. If and when you are given a choice, select either SLIP or PPP depending on whether you have SLIP or PPP selected in the File/Setup screen. Your screen may now start being filled with nonsense characters. Press to enable SLIP/PPP. If you are using SLIP (and not PPP) and your IP address is allocated dynamically you will need to: Select Setup from the File menu. Enter the address you've been given in the IP address field. Press OK to continue. Try connecting to a well known host IP address using a Winsock compliant program to see if all is well. The program Trumpet Ping is suitable for this. Once you have determined your login sequence, you can try Configuring your profile and/or Configuring your login script. Before trying to configure your profile you may find it very helpful to make a transcript of the login. To do this: Select all the text in the Trumpet Winsocks display. Copy the text by selecting Copy from the Edit menu. Run Notepad (or another text editor or even an email program) and select Paste from the Edit menu. Save, print, or even email the transcript as required. Configuring your profile;How do I configure my login? This section describes the process of configuring the Login profile for the standard login script and provides some examples. Configuration of the profile should allow the Winsock to successfully dial into most SLIP/PPP servers, however it may necessary to edit the login script (login.cmd) directly for some. Try Logging in manually first to determine what prompts are given by the server and what responses are required. Be sure to make a transcript of the login, so that you have got something to refer to while editing the profile. From the Dialler menu, select Profile. Ensure that the username and password of your SLIP/PPP account and your service providers dial-up phone number are entered correctly. Open the Modem profile screen by clicking the Modem profile button. Modify any of the relevant modem settings. For example, change the init string if your modem needs a special one. Change dt with dp if pulse dialling is required. Click on OK to continue. Open the Server profile screen by clicking the Server profile button. Adjust the prompts, commands and responses according to the messages output by your SLIP/PPP server. If the prompt that asks you for your username is Enter your login:, you could change the Username prompt to: login:. If your server doesnt prompt for a service then leave the Command prompt field blank. If you are unsure what prompts are output by your SLIP/PPP server, then compare your login transcript to the Example profiles given below. Click on OK to continue when you have finished editing each of these screens. From the Dialler menu, select Login to try logging in with the new profile. If there is a problem with the login script it may indicate that one or more of the profile settings are incorrect or that the standard login script will need to be altered. See Configuring your login script for more information. To obtain a full trace of the login script as it executes, edit the login.cmd file (by selecting Edit scripts from the Dialler menu) and add the following line near the top: trace on Example profiles;IP address;SLIP server;PPP server Here are some examples login sessions and the corresponding Server profile settings. Example PPP Server Here is a typical PPP server login. In this example it is important that the username prompt be set to ogin: (or login:) rather than sername:. SLIP DISABLED atz OK at&f&c1&k3 OK atdt123456 CONNECT 26400/ARQ ISP login: myusername Password: PPP session from (123.456.789.100) to 123.456.789.156 beginning....~=7F}#@!}!}!}}4}"}&} } } } %}&1QB}'}"}(}"l}6~~=7F}#@!}!}"} }4}"}&} } } }}%}&1QB}'}"}(}"&+~~=7F}#@!}!}#} }4}"}&} } } } %}&1QB}'}"}(}"o8~ PPP ENABLED Note that since this server does not prompt for a service (eg SLIP or PPP) the Command prompt field must be left blank. Server profilevalueUsername promptogin:Password promptssword:Command promptSLIP commandN/ASLIP responseN/APPP commandN/APPP responsebeginning..Scan for IP addressN/A Example SLIP Server This is a fairly typical SLIP login with prompts for Username: and Password: and the requirement that slip be output after a > prompt. SLIP DISABLED atz OK at&f&c1&k3 OK atdt123456 CARRIER 28800 PROTOCOL: LAP-M COMPRESSION: V.42BIS CONNECT 38400 ------------------------------------------------------- M Y I N T E R N E T S E R V I C E P R O V I D E R ------------------------------------------------------- Welcome to our Internet Services. For registration or general enquiries, phone us during business hours. Username: myusername Password: PORT56>slip SLIP connected. Server IP is 123.456.789.100, your address is 123.456.789.156 SLIP ENABLED Note that since SLIP is being used, it is very important that the script is able to find the IP address. If the Scan for IP address field was left blank, the script would grab the first IP address it could find. In this particular example it would find the servers IP address (123.456.789.100) and incorrectly use that instead of the dynamically allocated IP address (123.456.789.156)! The SLIP response could in fact be left blank in this situation, but is left in as a precaution to make sure that SLIP has been successfully started on the server. Server profilevalueUsername promptUsername:Password promptPassword:Command prompt>SLIP commandslipSLIP responseconnected.PPP commandN/APPP responseN/AEnable Scan for IP addressyour address is Configuring your login script This section explains what changes might need to be made to the standard login script that cannot be accommodated by Configuring your profile. Your login script will be functioning correctly once it is able to login and return script completed. If it returns script aborted, your Winsock applications will not be able to connect to the Internet. Here are some reasons why the standard login script might need to be altered: 1. The order of events when you dial in is different to the order expected in the standard login script. If this is the case you may need to try a different combination. For example, some dial-up servers prompt for a service before requesting the username and password. 2. An additional password may be required. For example, to output mypassword at the ID Code: prompt: input %logintimeout ID Code: output mypassword\13 To access the login script, select Edit scripts from the Dialler menu, choose login.cmd, and press OK. To obtain a full trace of the login script as it executes, insert the following command near the top of the script: trace on See also Scripting Language. Using the Trumpet Winsock over a packet driver;packet driver This section describes how to configure the Trumpet Winsock for use on a local area network (eg Ethernet) by way of a packet driver interface. There are a number of ways that an application can access a network card. The most common methods are ODI, NDIS, and packet driver. Currently, the Trumpet Winsock supports a packet driver interface only, and not ODI or NDIS. To use the Trumpet Winsock over ODI or NDIS, a packet driver shim is required to provide a packet driver interface. Furthermore, the Winsock requires winpkt (or a substitute, such as ndis3pkt) to make the packet driver (or packet driver shim) available within Windows. Normally network cards will be supplied with a number of device drivers (including packet driver, ODI driver, and NDIS driver). If your network card was supplied without a packet driver and you are not using ODI or NDIS, you may like to investigate the Crynwr packet driver collection. Have a look at the relevant sections of the Trumpet Winsock FAQ, or Trumpet Winsock Error Messages for more information on this topic. Installing a packet driver and WINPKT;WINPKT;ne2000 To install a packet driver and winpkt, you will need lines in your autoexec.bat (or network batch file) that do the following: 1. Set up your packet driver (including vector, IRQ and I/O address). 2. Install winpkt using the same vector that the packet driver was installed on. The following examples are intended to illustrate this. Ne2000 packet driver using WINPKT This example installs an ne2000 packet driver on vector 0x60 using IRQ 2 and I/O address 0x300. ne2000 0x60 2 0x300 WINPKT 0x60 Western Digital 8-bit network card using WINPKT This example installs a Western Digital 8-bit network card on vector 0x61 using IRQ 5 and I/O address 0x320. wd8003e 0x61 5 0x320 WINPKT 0x61 Ne2000 packet driver with Novell NetWare access using WINPKT 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 the ODIPKT shim instead. An example could be the Xircom Pocket Adaptor. ne2000 -n 0x60 2 0x300 WINPKT 0x60 pdipx netx path c:\dos;c:\network\win31 f: login Installing an NDIS or ODI packet driver shim;NDIS;ODI;Packet driver shims;ODIPKT;DIS_PKT;NDIS3PKT Since the Winsock can only access a network card by way of a packet driver, a packet driver shim is required to provide a packet driver interface over NDIS and ODI. Use the following table to determine which shim you will require and whether or not winpkt be need to be installed. Network driverShim requiredWinpkt neededExample network OSNDIS3 and ODIndis3pktnoMicrosoft network (WfW or Win95) and Novell NetwareNDIS3ndis3pktnoMicrosoft network (WfW or Win95)NDIS2dis_pktyesWindows for WorkgroupsODIodipktyesNovell NetwareODI (over token ring)oditrpktyesNovell Netware The odipkt, dis_pkt, and ndis3pkt shims are available by anonymous FTP and have directories dedicated to each of them at: ftp://hsdndev.harvard.edu/ Ndis3pkt Ndis3pkt is a shim that provides a packet driver interface over NDIS3. It is available by anonymous FTP from: ftp://hsdndev.harvard.edu/ndis3pkt/ Like winpkt, ndis3pkt provides a virtual packet driver interface under Windows, and in fact replaces winpkt altogether. Odipkt;ODI;NetWare Odipkt is a shim that provides a packet driver interface over ODI. It is available by anonymous FTP from: ftp://hsdndev.harvard.edu/odipkt/ See also winpkt and oditrpkt. Here is an example network attach batch file and the corresponding net.cfg: @echo off cd \ lh lsl lh \odi\ne2000 cd \net lh ipxodi lh odipkt lh WINPKT 0x69 lh netx path c:\dos;c:\net\win31 f: echo on login The ordering of the frame protocols in your net.cfg is very important. For example: Link Support Buffers 8 1586 MemPool 16384 Link Driver NE2000 Port #1 300 20 Int #1 2 Frame Ethernet_II Frame Ethernet_802.3 Protocol IPX 0 Ethernet_802.3 Note that there is another version of odipkt which has been released by FTP Software. Also note that there are two programs with the name ne2000.com. One is a packet driver and is referred to in another section. The one referred to in this section is an ODI driver - it doesnt provide a packet driver interface. Oditrpkt Oditrpkt is a shim that provides a packet driver interface over ODI on a token ring network. It is available by anonymous FTP from the Oklahoma State University: ftp://dc.cis.okstate.edu/pub/oditrpkt/ Dis_pkt;Windows for Workgroups 3.11 Setup Dis_pkt is a shim that provides a packet driver interface over NDIS2. It is available by anonymous FTP from: ftp://hsdndev.harvard.edu/dis_pkt/ Dis_pkt currently only supports NDIS2, not NDIS3. If your network is based on NDIS3, then use ndis3pkt rathe then dis_pkt. If the Trumpet Winsock is required to operate over a Windows for Workgroups network, an installer is available to setup dis_pkt. The installer is not necessary if the Winsock is going to be used over a modem. It is available free of charge from our FTP server: ftp://ftp.trumpet.com/winsock/wfwsetup/twswfwg.zip This is provided AS IS with no warranty and is for personal use only. Note that the Trumpet Winsock should be installed first, and that winpkt is still required. Setting up the Winsock for a packet driver or shim To enable your Winsock to function correctly it will be necessary to enter some details in the Setup screen. If you are unclear on any of them, try to seek some help from your network administrator - it will save you a lot of time. The first time you run the Trumpet Winsock, the Setup screen will be opened automatically. You can access it later by selecting File from the Setup menu. Make sure that your packet driver or packet driver shim is installed correctly. If you havent already done so, read Installing a packet driver and WINPKT or Installing an NDIS or ODI packet driver shim. Enter your IP address, DNS server, and Domain suffix. If you are on a network that uses BOOTPBOOTP or RARPRARP to determine its IP address, then enter BOOTP or RARP respectively. Select Packet driver from the list of Driver types. Some details will be greyed out now. You need not try to fill them in. Enter your Vector, Netmask, and Gateway. The vector is the one that your packet driver was installed under without the leading 0x. For example, if you used vector 0x60, enter 60. Alternatively, enter 00 to instruct the Winsock to search for the packet driver. If youre feeling brave, you may like to tweak MTU, TCP RWIN, TCP MSS, TCP RTO MAX, and Demand load timeout. These values can be tailored to suit your needs. If you are on an Ethernet, then we suggest MTU: 1500, TCP RWIN: 4096, and TCP MSS: 1024. 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. Menu Commands This section describes the function of each menu command, and the options presented in each dialog box. File Setup Opens the Trumpet Winsocks Setup dialog box. Click on settings to see its definition. {bmc tws.shg} For some guidance in how to set these see either Setting up the Winsock for SLIP/PPP or Setting up the Winsock for a packet driver or shim. ipaddressIP address Determines the IP address of your computer. To exist on the Internet your computer must have an IP address. This address will be allocated permanently or dynamically by your service provider. If your service provider allocates IP addresses dynamically, this will usually be set automatically if you are using PPP. If you are using SLIP, the IP address will need to be entered either manually or by a login script. Alternatively, the Winsock may be able to use either BOOTPBOOTP or RARPRARP to find your IP address if the services are online. dnsserverDNS server The numerical IP address of your Internet Service Providers domain name server. A domain name server converts names into numeric IP addresses using the domain name system (DNS). You may provide more than one address by separating the addresses with spaces. domainsuffixDomain suffix The name of the domain in which your computer lives. This is used for looking up names via the name server. You may provide more than one domain name by separating the names with spaces. driverDriver Determines the kind of network driver the Winsock will use to access the Internet. slipSLIP Serial Line Internet Protocol (SLIP) is a simple protocol which allows an Async serial connection to send Internet Protocol (IP). See also PPPppp. pppPPP Point to Point Protocol (PPP) is a more complicated version of SLIP that includes error detection, password authentication and optional VJ header compressionvjhc. SLIP, CSLIP and PPP are all point-to-point protocols. They directly connect two computers or one and computer and a network port, usually over a modem connection. These protocols are most often used over dial up connections. packetdriverPacket driver A packet driver is a piece of software that provides an interface between a network card (such as an ethernet adaptor) and communications software such as the Trumpet Winsock. This is the method of network driver that the Winsock would normally use when configured for an ethernet. 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 this is that information can be transmitted much more efficiently in packets. Public domain packet drivers are available from the Crynwr packet driver collection. vectorVector Sets the vector that your packet driverpacketdriver was installed under. This value should be entered without the leading 0x. Eg. If you used vector 0x60, enter: 60 Leaving the packet vector set to 00 instructs the Winsock to search for the packet driver. A packet driver is 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. See vectors or more information. netmaskNetmask Sets your network mask. A netmask is used for determining whether or not a destination IP address is on the same network. Your netmask will often correspond to the class of your IP address. For example, if you have a Class C IP address, use: 255.255.255.0 gatewayGateway Your default Internet gateway or router. mtuMTU The Maximum Transmission Unit (MTU) of a network is the greatest amount of data that can be transferred in one physical frame on that network. Fragmentation will occur if a packet is sent across a network that has an MTU smaller than the packets frame length. This will lead to lower performance as fragments need to be reassembled. A work around for this would be to lower the Winsock's MTU to match the minimum MTU of the intervening networks. Since it is virtually impossible to determine the minimum MTU of the intervening networks, trial and error is usually the best way to find out. As a starting point, try setting the MTU to the MTU of your network. For Ethernet, 1500 is the maximum, and is recommended. The unofficial MTU for SLIP servers is 1006. TCPRWINTCP RWIN The TCP Receive Window (RWIN) determines how much data the receiving computer is prepared to receive. An RWIN set too large will result in greater loss of data if a packet is lost or damaged. An RWIN set too small (ie 1*MSS) will be very slow, as each packet will have to be acknowledged before the next packet is sent. An RWIN of 2*MSS causes problems with silly window avoidance. The RWIN should usually be set to exactly 3 or 4 times the size of the TCP MSS. TCPMSSTCP MSS The TCP Maximum Segment Size (MSS) defines the largest segment of TCP data that the Winsock is prepared to receive on that connection. When a connection is established, the two ends agree to use the minimum of each ends advertised value. If the MSS is too low, the data/header ratio will be low. Alternatively, a large MSS will lead to large IP datagrams. These will fragment when travelling across networks with small MTUs, thereby decreasing performance. For this reason, performance may sometimes be improved by dropping the value of your MTU. Because headers are typically 40 bytes, your MSS should always be less at least 40 less than the MTU. As a rule of thumb, set the MSS to the greatest power of 2 that is at least 40 less than the MTU. TCPRTOMAXTCP RTO MAX The TCP Retransmission Time Out Maximum (RTO MAX) sets an upper limit on the retransmission timeout. It may be useful to lower this to perhaps 10 seconds when using interactive programs such Chat or Telnet software over a connection with a higher than average packet loss. dltDemand load timeout The demand load timeout is the number of seconds the Winsock stays loaded after all Winsock applications have finished with it. This is useful when the Winsock has been demand loaded and you wish to close the application that loaded the Winsock before loading another (and not have the Winsock logout in the meantime). Note that this will only apply if the Winsock has been demand loaded. That is, the Winsock has been launched by another application. If the Winsock hasnt been demand loaded, use the Inactivity timeoutinactivity. See also How do I get demand loading to work?. Firewall setup The Trumpet Winsock may be used with a Socks 4.2 compatible firewall. Enable FirewallEnables firewall setup.Firewall Host:IP addressThis will be the IP address of the firewall that is visible to the local network.PortThe port that the firewall will be using to communicate to the Winsock with.Firewall User IDYour user ID string.Local IP addresses:NetThe address of a network that will be considered local.MaskThe netmask of the corresponding network.PPP options;PAP;CHAP If your Internet Provider has instructed you to use either Password Authentication Protocol (PAP) or Challenge Handshake Authentication Protocol (CHAP) then select it from this screen and enter your username and password. If you would like to be prompted for your password each time you login, then leave the password field blank. The PAP/CHAP username and password should not be confused with the username and password used for a dial-up SLIP/PPP account. Exit Quits the Trumpet Winsock. Edit Copy Copies selected text on the display to the clipboard. Clear Clears the Trumpet Winsock display. Special Info Displays a list of active sockets. Kill socket Allows any socket to be killed; use with caution. Hide Hides the Winsock from the task list. To make the Winsock reappear, select its icon again. Password registration Once you have registered the Trumpet Winsock you will receive a registration name and password that should be entered here. Since your password is generated from your registration name, you do not get to choose your own registration password. See Registration Details for more information on and details of how to register. Note that if youve registered an earlier version of the Winsock you will need to update your password. You can do this over the Internet by selecting Update registration from the Special menu. Internet registration This feature is for sending encrypted credit card details to Trumpet Software International via the Internet. This will only work if your Winsock is functioning and your network is visible to ours. The Winsock will only permit you to send one registration request so make sure you get your details correct. Do not use this feature as a test. You will receive a password once we have received an authorisation to debit your credit card. For this reason, please allow five working days for your order to be processed. To register over the Internet: Start the Trumpet Winsock (and dial into you provider if applicable), then select Internet registration from the Special menu. Press OK to each message box once you have read them. Fill out the details carefully and select Send registration request when you're finished. If you get a "Registration Host not found" error it may be because our registration server was temporarily off line, your machine is behind a firewall, or because your domain cannot see ours for some reason. In this event, please use another method. See How to register for other options. If the transfer is taking too long, it may be necessary to click on the Abort transfer button and try again later. You can select Query registration process to see how your order is progressing. If your order has already been completed, then your password will be automatically transferred to your Winsock and the timelock will be removed. If you receive Transaction has been declined or is invalid, then please contact our Registration Departmentcontact by another method. When your transaction has been completed, your password will be sent to you via email. You can enter you registrations name and password in the Password registration screen, which can be found under the Special menu. If this method of registration is unsuccessful, please try another. See How to register from Registration Details for the alternatives. Update registration This feature allows the Winsock to automatically update your registration password over the Internet. To use this feature: Install Version 3.0 over a previously registered Trumpet Winsock. OR... Copy the trumpwsk.ini file from a previous registered Trumpet Winsock into the same directory as Trumpet Winsock 3.0. Start the Trumpet Winsock Version 3.0 (and dial into you provider if applicable). Select Update registration from the Special menu. If you receive a registration name not found error message, then please contactcontact our Registrations Department with details of how and when you originally registered. License Displays the License Terms and Conditions. Trace The following trace options provide diagnostic information about the Winsock. Use with care since some applications may crash when the traces are active, in particular the DNS trace. Should a program crash with stack overflow (Error 202), the winsock.dll may remain loaded in memory even though tcpman.exe has exited. It is advisable to restart Windows if this happens and possibly even reboot your machine. Also, timing measurements of the Winsock throughput will be severely affected by the trace options. TCP Provides a dump of each TCP packet including: time, source port->destn port, seq number, [ack number], [flags], wind number, [options], [data size] UDP Provides a dump of each UDP packet: UDP src -> dst size IP Enables IP tracing. ARP Enables ARP tracing. traceRARPRARP Enables RARPRARP tracing. Ethernet Adds ethernet headers to IP, ARP and RARP traces. Extra detail Adds some extra detail to TCP, UDP and IP traces. For TCP and UDP it provides a dump of the data. For UDP it also dumps broadcasts. Socket calls Traces each Winsock call. The subroutine parameters are displayed as well. DNS Traces Domain Name System operations. Use with care, stack overflows can be frequent. Messages Traces async socket messages. Comms Traces serial port communications. tracepppPPP;PAP;CHAP;LCP;IPCP Once connected to the PPP server, the Winsock establishes a PPP link by working through a number of phases. The first, LCP, opens the connection and tests the link. The either PAP or CHAP will follow if they have been enabled in File/PPP Options (PAP and CHAP are optional). Finally, IPCP is responsible for configuring the IP addresses and options such as header compressionvjhc. C021 Link Control Protocol (LCP). C023 Password Authentication Protocol (PAP). C223 Challenge Handshake Authentication Protocol (CHAP). 8021 Internet Protocol Control Protocol (IPCP). Dialler Contains functions relevant to dial up SLIP/PPPppp connections. Login Invokes the login.cmd dialler script. The first time it is launched you will be asked to enter phone number, username and password. You can change these later by selecting Profile from the Dialler menu. Bye Invokes the bye.cmd dialler script. To adjust the modem hangup string run the Modem profile (modem.cmd). ManualLoginManual login Invokes the dialler manually. Use to exit from the manual dialler. See Logging in manually. Other Invokes any script. A file selection dialog of *.cmd will be displayed. diallersettingsSettings;login;bye;logout;DiallerOptions The Dialler Settings dialog box allows you to adjust settings that are relevant to dial-up connections. Select a parameter to see its explanation. {bmc twds.shg} Please see Using the Trumpet Winsock over SLIP/PPP for more information. commCOMM port;IRQ;port A communications port (or comm port) is a serial port that is used for connecting a device such as a modem, mouse or scanner to your computer. The Winsock accesses the comm port by way of a comm driver (such as comm.drv). If necessary, use the Ports screen in the Windows Control Panel to adjust the settings for your comm port. For example, changes to the IRQ. There is no setting for the IRQ in the Winsock since it uses whatever has been set in the Control Panel. baudrateBaud rate Determines the speed of the connection between the Winsock and your modem. Not all baud rates listed will be valid for your modem, so please check your modems manual for its highest baud rate. hardwareHardware handshaking Enables RTS/CTS handshaking. Hardware handshaking is recommended if your modem and modem cable support it and &k3 is in the Init string of your Modem profile. vjhcVJ header compression Van Jacobsen (VJ) Header compression was developed to improve the efficiency of SLIP connections. Each SLIP packet contains header information and some actual data. Since the header information in adjacent SLIP packets is usually fairly similar, a lot less header information can be sent if the differences are sent. SLIP with VJ Header Compression enabled is called CSLIP. PPPppp supports header compression as an option. autoredialAutomatic redial on disconnect If this option is checked, the Winsock will redial once per minute until reconnected. Otherwise, the Winsock will indicate that the connection has been lost and ask whether redial is required. Note that this requires that Online status detection is enabled and functioning correctly. osdOnline status detection Online status detection is necessary for the Automatic login and Automatic redial on disconnect features of the Trumpet Winsock to work correctly. The Winsock can use either the Data Carrier Detect (DCD) or Data Set Ready (DSR) signal to track the online status of the modem, however DCD is more reliable. For online status detection using DCD to work properly, &c1 will need to be set in the modem's default profile. The modems default profile is the group of settings that is loaded from memory when the modem is switched on. To force the &c1 command to be stored in the modems memory, try adding &w to the Init string in Modem profile (modem.cmd), for example: &k3&c1&w Similarly, online status detection using DSR requires &s1 to be set in the modem's default profile. If None is selected, then the Automatic redial on disconnect feature will be not be available, but the login script will be executed by an Automatic login regardless of the online status of the modem. autologinAutomatic login;No automatic login;Automatic login on startup only;Automatic login and logout on demand;Automatic redial when disconnected A login that uses a script (such as login.cmd) is called an automatic login. The following options determine when the login and bye scripts will be initiated. No automatic loginDisables automatic login. Login on startup onlyLogin.cmd is executed when the Winsock starts.Login/logout on load/unloadLogin.cmd is executed when the Winsock starts and bye.cmd is executed before the Winsock exits. Login on network activityLogin.cmd is executed whenever a Winsock application tries to access a remote host. It may be useful to complement this with an Inactivity timeoutinactivity to ensure that the bye script is run. In effect, this feature allows the Winsock to be used offline since the Winsock will not dial unless it really needs to. Note: Under an Automatic login, if the Winsock is set to use online status detectionosd (either DCD or DSR), then the Winsock will only execute login.cmd if the modem seems to be offline (and "Automatic login" in Dialler/Settings has been selected). See also How do I get demand loading to work?. inactivityInactivity timeout;SLIP inactivity timeout This is the number of minutes that the Winsock keeps the line open if there is no network activity. Under this situation the Winsock will remain loaded, so if you are going to need the Winsock to re-establish the connection, make sure you have selected Login on network activity from the list of Automatic loginautologin options. A value of 0 disables the timeout, and therefore prevents the Winsock from disconnecting the line. See Demand load timeoutdlt. parityParity and word size;Use standard SLIP settings for parity and word size;Use Control Panel settings for parity and word size The parity and word size is only relevant during the initial login phase of the connection (regardless of whether you are logging in manually or using a login script). The Standard SLIP/PPP settings for parity and word size are 8 bits and no parity. If the server you are dialling into does not accept 8 bits and no parity, then you must set up the correct parity and word size under the Control Panel in Windows. Profile;phone number;username;login name;password Allows you to enter the username and password of your SLIP/PPP account and your service providers dial-up phone number. Please note that this menu command launches a script called profile.cmd. This section refers to the standard version of this script as distributed by TSI. In some cases it may have modified by the distributor who supplied your copy of the Winsock. See also Configuring your profile. Modem profile This dialog box allows you to adjust modem settings that are used by the login and bye scripts (login.cmd and bye.cmd respectively). This screen can be reached directly by selecting modem.cmd from the Dialler menu. Use reset string This your modems reset command to be modified if necessary. Typically this will be: z If these is a problem with your modem responding to the reset command as the first command it receives, then you may need to disable it completely. Init string The suggested modem string is &f&c1&k3. Most modems are shipped with fairly standard default settings, so you may even be able to leave this string blank. Note that &k3 is only relevant if your modem supports hardware handshaking. This command may need to be removed for modems slower than 14.4. Dial string Either dt for tone dialling or dp for pulse dialling. Hangup string This sets the init string that the bye script (bye.cmd) will use to hangup the modem. Normally this will be: h Server profile This dialog box allows you to adjust server settings that are used by the login script (login.cmd). These prompts will need to be altered according to the messages you providers machine gives when you on login and the replies you need to give. See Configuring your profile for more details and example configurations. The difference between prompts, commands, and responses is that: prompts are strings that are output from the server when the server expects a reply. Once a prompt is received, the corresponding command will be sent by the script. Before completing the login, a script can wait for a responses from the server. This screen can be reached directly by selecting server.cmd from the Dialler menu. Username prompt This is the servers prompt for the username. If the server does not prompt for a username, leave this field blank. The default setting is sername: so that it will match with either Username: or username:. Password prompt This is the servers prompt for the password. If the server does not prompt for a password, leave this field blank. Command prompt This is the servers command line prompt. For example, >, ?, or command:. SLIP command The command that is output to the server if SLIP has been selected in the File/Setup screen. For example, this may be: slip, cslip, or slip default. SLIP response If this setting is left blank then the script will switch out of terminal mode and enable SLIP (so that it can start processing SLIP packets) as soon as the SLIP command has been output. If the Winsock is required to wait for a certain text string before enabling SLIP, then enter it in this field. PPP command The command that is output to the server if PPP has been selected in the File/Setup screen. For example, this may be: ppp or ppp default. PPP response If this setting is left blank then the script will switch out of terminal mode and enable PPP (so that it can start processing PPP packets) as soon as the PPP command has been output. If the Winsock is required to wait for a certain text string before enabling PPP, then enter it in this field. Scan for IP address This setting should be enabled if SLIP is being used and the IP address is allocated dynamically. If enabled, the login script will scan for an IP address. This IP address will then be used for the Winsocks IP address. If the text field is left blank, then the Winsock will use the first IP address it finds, otherwise it will wait for the first IP address after the text string is found. Note: This option should be disabled under a PPP login, since PPP includes IP address negotiation. Edit scripts Invokes Notepad, allowing you to edit a script. See Scripting Language and Configuring your login script. Other scripts At the bottom of the Dialler menu is a list of available scripts other than Login, Bye, and Profile. This may include modem.cmd, server.cmd and any scripts that are specific to an Internet provider that have also been installed. Note that setup.cmd was used with earlier version of the Winsock, but has now been replaced by the Login profile (profile.cmd). This can be accessed by selecting Profile from the Dialler menu. Help Opens the relevant section of the online helptrumpwsk.hlp file. Contents The Contents page of the online help is the top level entry point into the documentation. Commands Provides a listing of the menu commands. Search The Search index of the Trumpet Winsock Help is useful for finding references to specific topics in the documentation. HelpDistDistribution Calls up the section of the help file dealing with distributiondistrib. Using help Opens the help file for Windows Help. About Displays the version number and copyright of the Trumpet Winsock. Scripting Language This section describes the Trumpet Winsock scripting language as well as providing examples of its usage. Have a look at the relevant sections of the Trumpet Winsock FAQ, or Trumpet Winsock Error Messages if youre having difficulties with a script. Basic commands;script 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. Parameters enclosed in < > characters need to be replaced by a value. For example, the parameter corresponds to a length of time in seconds and should be replaced an integer value or integer variable. Commands with a parameter will return failure if they have been unable to succeed within seconds, unless otherwise specified. Parameters enclosed in ( ) characters are compulsory and those enclosed within [ ] are optional. All parameters are compulsory unless otherwise stated. The | character represents logical OR. abortabort Aborts the script. This command always returns failure. See exitexit. addressaddress Parses the current stream for an IP address, and copies it into the Winsocks primary IP address. The address change will not be effective until the script finishes. Note that this will find the first IP address in the stream. If the current stream contains alternative IP addresses (annex IP address, etc) you will first need to check the input stream with the inputinput command. scriptbootpbootp Attempts a BOOTPBOOTP when the (login) script has finished executing. This will modify any TCP/IP setup parameters that are specified in the returned BOOTP response. break Sends a break. displaydisplay Displays in the Trumpet Winsock window. echoecho [on | off] Displays any characters received while dialling in the window. The default is on. execexec Executes the Windows command specified. This is useful for starting another program from the script. It is important to quote literal strings by quotes if they contain the \(reverse slash) character. The reverse slash has a special meaning. exitexit Stops the currently executing script but still returns success. See abortabort. expectexpect Checks that the current input stream contains the target string. Unlike the inputinput command, it doesnt search. If the command timed out or the string received does not match, the command returns failure. The "expect" scripting command differs from the input command in that it doesn't allow for spare characters before the target string. inputinput Scans the current input stream for . getprofile New in 3.0!! putprofile New in 3.0!! loadload [ []] Returns which may be integer or string from . Where is the section name within the ini file and defaults to default vars, and 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. See savesave. messagemessage Presents a dialog box containing , and pauses until OK is pressed. online Instructs the Winsock to go online immediately. Starts processing SLIP packets, and adjusts the state of the comms port to normal SLIP conditions. outputoutput Sends to the output stream on the comms port. Any characters received during this process will be echoed to the Trumpet Winsock window if the echo flag is on. See outputechooutputecho, echoecho. outputechooutputecho [ timeout ] Sends 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 and are acceptable. See outputoutput. passwordpassword [ ] Brings up a message box that allows $password (one of the predefined variables) to be entered or modified. If the user cancels the message box, failure is returned. Any characters typed will be echoed with a * character, and encrypted if saved to the .ini file. See queryquery, usernameusername. queryquery [ ] Brings up a message box for the to be entered or modified. An optional prompt may be provided. If the user cancels the message box, return failure. See passwordpassword, usernameusername. quit Posts a quit message to the Winsock tcpman. This will start a normal quit process. readread Reads a whole line (terminated by a line feed character) from the comms input stream into . Any carriage returns are stripped. See readxreadx. readxreadx Reads a whole line (terminated by a carriage return) from the comms input stream into . See readread. savesave [ []] Saves which may be (integer or real) to . Where is the section name within the ini file and defaults to default vars, and 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. See loadload. setset ( dtr | rts ) [ on | off ] Toggles the DTR or RTS modem control. sleepsleep Pauses for seconds. Always returns success. statusstatus ;Dialler Status Puts into the Dialler Status dialog box, replacing any previously entered text. The Dialler Status box, which is initially left blank, is automatically displayed when any script is executed. The script aborts if Cancel is pressed. tracetrace [ on | off ] Toggles the tracing of scripting commands. This provides a description of each line as it executes. usernameusername [ ] Brings up a message box that allows $username (one of the predefined variables) to be entered or modified. If the user cancels the message box, failure is returned. See queryquery, passwordpassword. waitwait [ dsr | cts | dcd | rlsd ] Pauses until the given modem signal changes state or timeout occurs. See sleepsleep. String formats 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. 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 (quote) character may only be formed by preceding it with a \ character. (quote) 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. # (hash) 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. $ (dollar) If a $ symbol is found, it denotes a string variable. If the variable has been assigned a value when the command is executed, its value will be placed in the string. If not, an error message is displayed, and the script continues. % (percent) If a % symbol is found, it denotes an integer variable. If the variable has been assigned a value when the command is executed, its 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. \ (reverse slash) If a reverse slash \ is found, it denotes that the character following either has a special meaning which will be placed in the string, or is to be taken literally. Here is a list of special \ character meanings. \bBack space (ASCII 8).\cThe comm port id as a decimal number (%slipport).\eEscape (ASCII 27).\fForm feed character (ASCII 12).\iThe current IP address ($ip). \lLine feed character (ASCII 10).\nAn end of line sequence (ASCII 13, then ASCII 10).\pThe current password ($password).\rCarriage return - Enter key (ASCII 13).\tTab (ASCII 9).\uThe current username ($username).\ASCII (eg. \0 \27 \255).Structured statements In addition to the basic command primitives, there are the following special control statements. IfIf Statement if [ else ] end 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. While Loop while end While the condition evaluates as true, the statement list is executed. RepeatRepeat .. Until Loop;Until repeat until The statement list is repeatedly executed until the condition evaluates as true. Include include [ , ] Allows another script to be executed. For example: include foobah.cmd Dialog dialog { } end ::= edit "," | combo "," "," | select "," "," { "," } | toggle "," | button "," Assignments and expressions Assignments are used to store new values into variables. They take the following forms: = Eg. %attempts = %attempts + 1 = Eg. $name = $first + $last The variable part may be a string variable (either unspecified or starting with a $), or an integer variable (starting with a %). Variables arent case sensitive. String expressions may be composed of the following operands: quoted stringseg. Fred, OKstring variableseg. $name, $responseString expressions may use the following operators: ( ) + concatenation Integer expressions may be composed of the following operands: numberseg. 1, 43, 7373integer variableseg. %I, %countInteger expressions use the following operators in order of priority: ( )Brackets.* / %Multiplication, division and modulo division.+, -Addition and subtraction. Also, integer operands may be formed by the comparison of strings. eg. $A = FRED will evaluate to an integer operand of 0 or 1 depending on the value of $A. Conditional expressions may also be formed using conditions and boolean operators. They return 0 or 1 depending on the result of the condition. These operators have the following priorities. = <> < > <= >=Equal, not equal, less than, greater than, less than or equal, greater than or equal.!Boolean not operator.&Boolean and operator.|Boolean or operator. Predefined variables The names of some variables have predefined meanings. These variables provide access to information contained in the File/Setup and Dialler/Settings screens: VariableCorresponding setting%slipportComm port.%ppp0 = SLIP, 1 = PPPppp.$ipIP address.$dnsDNS server.$domainDomain suffix. These variables are used by scripting commands for specific purposes: VariableExplanation$inipathDetermines the ini file in that variables will be saved to and loaded from.$sectionDetermines the section of the ini file that variables will be saved to and loaded from.$usernameSets a username. Used by the usernameusername command.$passwordSets a password. Used by the passwordusername command. Any variable with password in its name will be saved in an encrypted form. String functions The following string functions may be used as operands. copycopy ($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. lenlen ($s) Return the length of string $s as an integer number. lowerlower ($s) Convert string $s to all lower case. pospos ($s1, $s2) Return 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. upperupper ($s) Convert string $s to all upper case. Commands as operands A scripting command can be used as part of an expression by surrounding the command with [ ] symbols. This is called a conditional statement. Eg. [input 10 OK\n] This operand would have the value 1 if the command succeeded or 0 if it failed. Example script fragments Repeated dial The following segment of script could be used to attempt a repeated dial of a given number. Note the use of the outputechooutputecho rather than outputoutput so that any characters echoed from the command will be consumed. %attempts = 0 repeat %attempts = %attempts + 1 outputecho 60 atdt345772371\r until [input 30 CONNECT\n] | %attempts = 10 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 %attempts = 0 repeat %attempts = %attempts + 1 outputecho 60 atdt345772371\r read 30 $result until $result = CONNECT | %attempts = 10 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. %attempts = 0 repeat %attempts = %attempts + 1 outputecho 60 atdt345772371\r %timeout = [read 30 $result] if %timeout = 0 display Dial up timed out.\n end until $result = CONNECT | %attempts = 10 | %timeout 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. Busy detect If you are having trouble connecting to a busy site, it would be good to be able to have Trumpet Winsock redial more quickly. Your script will need to detect a BUSY signal and redial if necessary. In the following script segment, if a BUSY signal is detected within 5 seconds then it will redial. This time may need to be increased if it takes longer for a BUSY response. If it is not busy, then it waits for 30 seconds for a CONNECT. If it gets one, it exits the loop and continues on with the script, otherwise it will redial after 30 seconds. %ok = 0 %busy = 0 repeat output "atdt"$number\n %busy = [INPUT 5 BUSY] if !%busy %ok = [INPUT 30 CONNECT] end until %ok Multiple number Some service providers have more than one number to dial when they are busy. In this example, four numbers are pre-defined in the script. What it does is try each number in turn until one responds with a CONNECT. If it has already tried all four, then it goes back to the first one. In this case it would repeat indefinitely, so you may want to put a limit on the number of attempts. This can also be increased or decreased to the number of dial in numbers your service provider has. $number1 = "232224" $number2 = "232225" $number3 = "232226" $number4 = "232227" $number = "" %num = 0 %ok = 0 %busy = 0 repeat %num = %num + 1 if %num > 4 %num = 1 end if %num = 1 $number = $number1 end if %num = 2 $number = $number2 end if %num = 3 $number = $number3 end if %num = 4 $number = $number4 end output "atdt"$number\13 %busy = [input 5 BUSY] if !%busy %ok = [input 30 CONNECT] end until %ok Expression syntax ::= { "|" } ::= { "&" } ::= [ "!" ] ::= [ ( "=" | "<>" | ">" | "<" | ">=" | "<=" ) ] ::= [ "+" | "-" ] { ( "+" | "-" ) } ::= { ( "*" | "/" | "%" ) ) ::= | "(" ")" ::= | | | | ::= "0".."9" { "0".."9" } | "0x" { "0".."9","A".."F" } ::= "%" { "A".."Z","0".."9" } | "$" { "A".."Z","0".."9" } ::= " { any character except " } " ::= "[" "]" ::= COPY "(" "," "," ")" | POS "(" "," ")" | LEN "(" ")" | UPPER "(" ")" | LOWER "(" ")" | MATCHINPUT "(" "," { "," } ")" | PARAM "(" ")" Trumpet Winsock Error Messages This section describes the causes and/or solutions for some common error messages. Have a look at our Webweb site for a more complete list. Windows and Misc error messages Call to undefined dynalink;undefined;dynalink This error indicates that a function call has been made to a nonexistent routine in a Windows library. In the case of the Trumpet Winsock, this is usually caused by having multiple winsock.dll or wsock32.dll files on a machine. To overcome this, try doing a search for winsock.dll and wsock32.dll on the machine, and delete or rename any extras. See also TCPMAN.EXE not found. DB overflow;overflow DB overflow relates to getXbyY queries.. especially async forms. The error message suggests one of two possibilities.. That the application is not providing a large enough buffer for the reply. That a DNS reply is too large (perhaps due a damaged UDP packet). A DNS trace may give some indication of the problem. It may only be specific to certain sites. Sometimes the application may be able to resolve the problem by restarting the call with a larger buffer. In this case, one can simply ignore the message. Exec error: 2;file not found This error indicates file not found. The exec command in a script will generate this command if the file referred to either doesnt exist or has been mistyped. Note that the backslash \ symbol is interpreted as a special characters, so be sure to put the path name in quotes (). For example: exec C:\dir\program.exe get_recv_mode failed = This is generated by the packet driver interface, and indicates that the packet driver did not support the get receive mode call. It should not affect normal operation. A possible cause is that multicast is being used with a packet driver that doesn't like the way the Winsock tries to use it. Modem is not responding;responding Your modem should be configured so that commands can be typed in, executed and have the appropriate result code displayed on the screen. For most commands, the result should be OK. If this is not the case, then the default login script will give a Modem is not responding error message. The most common reasons why a modem does not appear to respond (aside from the modem being turned off or not plugged in) are... The baud rate set in the Dialler/Settings screen is not supported by your modem. Please consult your modems manual to discover which baud rates are valid. The baud rate should usually be one of 9600, 19200, 38400, 57600, or 115200. The modem is set to not echo characters as they are entered. To enable echoing, put the command e1 into the modems Init string in the Dialler/Settings screen and disable Use reset string. The modem is returning numeric result codes rather than verbal codes (ie 0 instead OK). To enable verbal results, put the command v1 into the modems Init string in the Dialler/Settings screen and disable Use reset string. The modem is not sending any result codes at all. To enable result codes, put the command q0 into the modems Init string in the Dialler/Settings screen and disable Use reset string. The script isn't waiting long enough for the modem to return "OK". To extend the timeout of an input command, increase the first parameter. To edit your login.cmd, select Edit scripts from the Dialler menu. For example, this command waits 10 seconds for an "OK": input 10 OK\n To make sure that the modem is going to echo characters and enable verbal result codes, add e1v1q0 your modems Init string in the Dialler/Settings screen and disable Use reset string. Password does not match You are given a password when you register the software. Since your password is generated as a function of your registration name, you dont get to choose it. See How to register from Registration Details for details. If you are getting this error once you have registered the software and received your password, make sure that you are using the right password for the right version of the software and that the details are entered correctly. If your password is for an earlier version of the Winsock, you may need to update your password. In particular, your 2.1 password will not work with 3.0. Make sure that you enter the registration name and password exactly as provided, without the quotes (). When entering your password, delete the contents of the field before entering anything, and please be careful not to confuse the numbers 0, 1, and 8 with the letters O, I, and B. For more recent information on the registration process, see: http://www.trumpet.com.au/wsk/faq/register.htm Registration name not found This message is displayed if your registration name could not be found on the registration host. If you have registered an earlier version of the Winsock and are having any difficulty updating your registration password, then please contact our Registrations Departmentcontact with details of how and when you originally registered. Runtime error 202;stack overflow;overflow Runtime error 202 is a stack overflow, which is often caused either an application error, or by one of the traces in the Winsock being turned on (in particular DNS). Script aborted;aborted;script completed;completed A Script aborted message will be given if the script aborts for any reason before completion. The most common cause of an aborted script seems to be due to an input command timing out. This is usually the result of a misconfigured script ($userprompt, $passprompt, etc..), but may indicate a problem with the SLIP/PPP server. The Winsock assumes that your script is configured correctly, and therefore that the SLIP/PPP connection hasnt been established correctly. An error message is passed back to any applications that try to access the Winsock, and usually relayed by that application to the screen. For example, Netscape displays, Unable to initialise network layer. With versions of the Winsock earlier than 2.1, no error messages were returned to the Winsock applications if a login was unsuccessful, even though Script aborted was displayed. In turn, applications could freeze for several minutes before returning an error message. In fact, Netscape took ten minutes to time out before it even appeared on the task list. This behaviour has been rectified, but not without a trade-off. It seems that a number of 2.0b users have login scripts that return Script aborted despite logging in successfully. This is often the result of an incompatibility between the default login script and some SLIP/PPP servers. The problem goes like this... Once the username and password have been entered, the default login.cmd expects to be prompted for a service. However, some servers have no such prompt, they just start sending out SLIP or PPP regardless. After the script aborts (30 seconds), the Winsock would enable SLIP/PPP, and the applications would continue without a hitch. From version 2.1 onwards, Winsock applications are not be able to connect to the Internet if Script aborted is returned. Ensure that your script is suitably debugged and any error conditions have been accounted for within the script. See Logging in for the first time for more information. TCPMAN.EXE not found The Trumpet Winsock consists of two main components, winsock.dll and tcpman.exe. Winsock.dll is the core of the Winsock, as such it responds to function calls from Winsock applications (such as Netscape, Ping, etc..) and maintains the TCP/IP layer. On the other hand, tcpman.exe provides an interface to the Winsock and manages the dialler. Neither or these files can operate without the other. When the Trumpet Winsock is demand loaded (that is, when another application launches it), winsock.dll is loaded first. The first thing the winsock.dll does is to try and find tcpman.exe. If it cant, then the "TCPMAN.EXE not found" message is displayed. To rectify this problem, make sure that: You only have one copy of the Trumpet Winsock files (including winsock.dll, tcpman.exe, hosts, protocol, and services) on your machine. Rename your backup files if necessary. They are all in the same directory. The files tcpman.exe and winsock.dll are from the same release. Unable to initialise network layer;initialise network layer;layer Netscape will return this error message in response to an aborted login script. See Script aborted. Unable to perform bootp;bootp No reply received to sent BOOTPBOOTP requests. Either no BOOTP server available or connection not properly established. If you've got BOOTPBOOTP set unnecessarily, replace your IP address with 0.0.0.0 before dialling again. Unable to load TCP;TCP;load TCP This message will be displayed whenever the TCP/IP stack fails to load. The specific cause of the error will be displayed after this message. If you are using a packet driver or packet driver shim, 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. Unable to locate registration host ;registration host If you receive this error while you are trying to register the Trumpet Winsock even though you are connected to the Internet, please contact our Registrations Departmentcontact or try another method of registering. See How to register from Registration Details for the alternatives. Versions do not match;do not match This message will displayed when trying to load the Winsock if the tcpman.exe and winsock.dll are from different releases. To rectify this problem, make sure that: You only have one copy of the Trumpet Winsock files (including winsock.dll, tcpman.exe, hosts, protocol, and services) on your machine. Rename your backup files if necessary. They are all in the same directory. The files tcpman.exe and winsock.dll are from the same release. See Tcpman.exe not found for more information. Winsock API errors WSAEINPROGRESS () by The message WSAEINPROGRESS is a diagnostic message generated by the Winsock. When a socket call is executed, the Winsock can possibly block. This means that the current application will sit in a loop examining the socket to determine whether any more data has arrived or whatever, and this is the normal operation of the Winsock. When Windows is running however, windows messages can be generated outside of the programs normal operation, for example if the user clicks on a button or selects a menu option. If one of these operations then calls another Winsock function, the Winsock will be re-entered possibly causing problems. While Trumpet Winsock has been designed with full reentrancy in mind, the Winsock specification insists that should this eventuality arise, that the socket call should always return an error message in this circumstance. This is because many stacks are unable to cope and can crash. Since the usual reason for this reentrancy occurring is a programming error of some sort, Trumpet Winsock will print out this diagnostic error message when the condition arises so that the programmer can be made aware of it. WSAENOTINITIALIZED () by Before any socket call can be made, the calling program must call WSAStartup. If they don't, this error is returned. WSAENOTSOCK () by There are two possible causes of that error. One possibility is that a socket number has been used which is outside of the range of legal sockets numbers. Either an INVALID_SOCKET (-1) was passed, or the application has got a corrupt socket number. Alternatively a legal socket number is being used, but the socket table is empty at that slot. Usually when a socket has been closed but is still trying to be used. When the unregistered Trumpet Winsock expires, it only allows one socket to be opened. As a result, this error message will be displayed much more frequently. Task did not call WSACleanup;WSACleanup This message is generated when an application exits without cleaning up after itself. WSACleanup is the last call an application should make to the Winsock. If the calling application exits abnormally (ie it crashes) it will not have a chance to make that call. In which case, the Winsock will display that error message. It is a symptom of the calling application crashing, but not the cause of it. TCP errors accept returned nil Accept returned nil is a diagnostic message which indicates that an incoming TCP connection was killed before a socket could be accepted. CRITICAL ERROR: TCP poll reentrancy detected - please report exact circumstance;TCP poll reentrancy;reentrancy TCP Poll Reentrancy is an internal semaphore that the Winsock uses to detect any reentrancy to critical sections. It sometimes gets left open when a program crashes in the middle of a socket call. This will typically be caused by a stack overflow (Runtime error 202), which may in fact be caused by one of the traces in the Winsock being turned on (in particular DNS). Unacceptable segment : seg.seq = XXXXX rcv.nxt = YYYYY This message is generated by the Trace/TCP option. It indicates that a unexpected TCP segment has been received. This may be caused by the TCP stack at the other end sending overlapped segments. Ironically, this problem may be caused by the Winsocks timing being at fault as a result of the trace being enabled. Since the segments will usually need to be resent, the transfer rate will become slower. Dialler errors Comm errors [BREAK];BREAK A break signal has been received. Comm errors [FRAME];FRAME This error indicates that the start and stop bits of the data are in the wrong places. This is caused by a hardware failure of some description. An occasional frame error may indicate nothing more than a slightly noisy line. This error can also be generated by turning the modem off and on. Numerous frame errors could indicate an incorrect baud rate, or a faulty modem, modem cable, phone cable, or comm card. Comm errors [OVERRUN];OVERRUN Overruns are the result of the modem going too fast for the comm port and/or Windows. There are a number of possible causes, some of which can be overcome. If you are getting lots of overrun errors, you may be able to rectify the problem with one of the following tips: If youve got a high speed modem (14400 or higher), make sure that youre using a 16540 or 16550 UART, as opposed to the older 8250 UART. Use MSD to check what UART you have on your modem's comm port. To run MSD: exit Windows, then type msd at the command prompt and press . If you're using Windows 3.1, check the comm.drv= line in the [boot] section of your system.ini file. If it reads comm.drv=comm.drv, you are probably using the original comm driver which was designed for the 8250 UART. You might like to try another, such as Cybercom or Winfax Pro. Add the following statements to the [386Enh] section of your system.ini file: comXfifo=1 comXbuffer=1024 comboosttime=8 Where X is the number of your Comm port. Some video drivers built around the s3 video chip also hold CPU cycles and therefore cause overruns as well. s3 have apparently released driver updates that cure the problem. Several OEM vendors using the s3 based design have also followed suit. Unfortunately, there is one cause of overruns that cannot be avoided... When accessing a local disk, Windows halts any I/O to the comm ports for a short period of time. This in turn causes the overruns, when the Winsock is unable to access the comm port. This is unfortunately a glitch in the internals of Windows. We are interested in finding out which modem cards people have had successes and failures with. If you have any information about this or anything else that should be added to this page, please write to suggest@trumpet.com.au. Comm errors [RXOVER];RXOVER This error message indicates an overrun of the SLIP/PPP receive buffer. There are two ways of overcoming this, and they both involve editing your trumpwsk.ini file. The best way is to increase the size of the buffer, by increasing the slip-rcvbuf: slip-rcvbuf=8192 Increasing this parameter means that the buffer can be raised to match the incoming data flow. Try doubling it to start with. The second way is to limit the incoming data flow by setting: slip-rtsflow=1 Comm errors [RXPAR];RXPAR Comm error [RXPAR] means that the parity is wrong. Usually this indicates that the SLIP/PPP server is using a different parity to the default Winsock setting. In this case, contact your ISP to determine what the correct settings should be. If they are anything other than 8 bits and no parity select Use Control Panel settings for parity and word size in the Dialler/Settings screen. You can set up the correct parity and word size under the Control Panel in Windows. Comm errors [TXFULL];TXFULL This error indicates that the transmit buffer is full. Normally this will not occur since the Winsock checks before sending data. If this condition does arise, it suggests that a non-standard comm driver may be installed. For example, a comm driver to modem pool redirector. enablecommnotification failed - Winsock will function more slowly The enablecommnotification call is a function call implemented in new versions of Windows that older comm drivers (for example turbocomm) don't recognise. The solution is to either use the standard comm driver, update of your old one, or obtain a new comm driver. There are apparently plenty available (Cybercom, Winfax Pro, etc.). If youre running Win3.11, then the standard comm driver should work fine. You can find out the name of the comm driver that is installed on your machine by checking your system.ini file. In the [boot] section of your system.ini file, there is a line that reads: comm.drv=? Setting it to comm.drv=comm.drv will reset it to the original comm driver, as long as the original driver hasnt been replaced by another file of the same name. getcommstate failed The reason is displayed following this message, and can be found under Comm driver errors. setcommstate failed The reason is displayed following this message, and can be found under Comm driver errors. PPP Frame check error To check if there are any errors when a PPP packet is transmitted, a Frame Check Sequence (FCS) is performed. The sender calculates this by adding together the binary values of all the bytes in the packet and sends it as part of the packet. The receiver makes the same calculation, and if the two values aren't the same, a frame error occurs. PPP frame check errors generally occur when transferring a large amount of data over your PPP connection, and are occasionally caused by Comm errors [OVERRUN] errors. Unable to open This message indicates that the requested Comm port couldnt be opened. The reason is displayed following this message, and can be found under Comm driver errors. Comm driver errors These errors appear following either getcommstate failed, setcommstate failed or Unable to open . Baud rate invalid The baud rate in Dialler/Settings isnt supported by the current comm driver. Device is already open The comm port is being accessed by another piece of software. For example, if fax software is loaded it may be accessing the modem. In this case you will need to exit the fax software before starting the Winsock. Alternatively, the Winsock may be trying to access the wrong comm port. In this case, try selecting another comm port from the Dialler/Settings screen. Device is not open The open call failed, so another error message should be displayed as well. Hardware is not available The Winsock has tried to open a comm port that is not available. Modems are usually installed on either comm port 1 or 2, although they may occasionally be found on 3 or 4. Try another comm port in the Dialler/Settings screen. Packet driver error messages Packet driver must be class 1 (Blue book) or class 6 (SLIP) This indicates that either winpkt or ndis3pkt hasnt been loaded properly or the wrong kind of packet driver is being used. For example, a token ring driver is being used with a packet driver shim that doesnt support it. See also Using the Trumpet Winsock over a packet driver. Too many packet buffers allocated Since the winsock allocates network buffers from main memory so is not too much of a problem. The main problem is when the size of the packet buffer gets too large. in that case, the winsock will try to reduce the number to a lower value. There is an eventual limit beyond which the winsock can't function. Unable to allocate network buffers Try to free up some special driver memory by removing windows device drivers. See Warning - running with less than recommended number of network buffers (X of Y). Unable to locate WINPKT or PKTDRV virtual packet driver Check that the packet vector setting under File/Setup is correct. See Packet driver must be class 1 (Blue book) or class 6 (SLIP). Warning - running with less than recommended number of network buffers (X of Y) There are two types of network buffers. This error refers specifically to packet buffers, which the Winsock allocates from Global DOS memory. To allocate the full number of packet buffers, more conventional memory is required. Remove unnecessary TSRs and device drivers from your autoexec.bat, and load the remaining ones into high memory if possible. Also, when you enter Windows, try loading the Winsock before any other applications. If the Winsock is being used frequently, you may even like to add the Winsock to the StartUp group in Program Manager. If this doesnt work, it may be because Windows has attempted to load the entire Winsock into low memory. This is not a good thing, and will inevitably result in insufficient driver memory being available. The work-around for this is to try loading the Winsock at a different time. faqTrumpet Winsock FAQ Each of the following sections covers some of the most common questions (and their answers) regarding the Trumpet Winsock, problems with menu commands, and installation difficulties. To find information on a topic, click on the Search button or browse through the topics listed below. If you cant find the answers youre looking for in either this manual or our WebWeb site then please contactcontact us. For descriptions of the most common error messages, please see Trumpet Winsock Error Messages. General questions What files should I backup? In addition to the Winsock package that was originally supplied to you (whether a zipped file or on a disk), you should probably backup your *.cmd scripts and trumpwsk.ini settings file. It is also recommended that you write down or print out your registration name and password, and keep them in a safe place. Why are some entries in the File/Setup screen greyed out? Some entries in the File/Setup screen relate specifically to the packet driver or dial-up configurations. For that reason, they are greyed out when not applicable. Are there docs for Trumpets Winsock Applications? Documentation is available for the Winsock Applications (Trmptel, Winchat, Winarch, Ftpw, View, and WinIRC) on the following page: http://www.trumpet.com.au/wsk/winapps.htm These applications are available from our Webweb site or on the Trumpet Winsock disk. Shouldn't "dialler" be spelt "dialer"? "Dialer" is the American spelling, while "dialler" is Australian. Since the Trumpet Winsock was developed by an Australian company, Australian spellings have been used for the interface. Where can I send bug reports? If you can promise that you have searched through this help file, and not found any mention of the bug you've encountered, please write to winsock-support@trumpet.com.au. Registration questions For more general information regarding prices, site licenses, and distribution agreements, please see Registration Details. Here are some of the topics not covered in that section. Can I register over the Internet? You may register over the Internet by using the Internet registration feature of the Trumpet Winsock. This feature is for sending encrypted credit card details to Trumpet Software International via the Internet. This will only work if your Winsock is functioning and your network is visible to ours. How long do registrations take? We aim to have all registrations processed within five working days. If you asked for your password to be sent to you by postal mail, then please allow an extra ten working days for delivery. If you haven't received your password within this time, then please contact our Registrations Departmentcontact (they may be unable to contact you). Please include at least two forms of contact and details of how and when you registered. What do I get when I register? You get a password that permits you to keep using the Trumpet Winsock after 30 days. There's actually no difference between the unregistered and registered versions aside from this (We only mail out disks when the software is registered by a phone, fax, or postal order and the disk is requested). As a registered user, you will receive support (within the existing Capabilities of the Trumpet Winsock) for up to 12 months from the date of purchase. Support will include any upgrades or bug fixes released within that 12 months. I lost my password, can you send it again? If you've lost your password, then please contact our Registrations Departmentcontact with details of how and when you originally registered. Also, please supply the name you registered under if you can remember it. Dialler questions For an overview of how to login manually and automate the login process, please see Using the Trumpet Winsock over SLIP/PPP. This section provides answers to some commonly asked that may not be covered in that section. What's the difference between a manual and automatic login? In a manual login, the user enters the modem commands and server commands at the keyboard. See Logging in manually for more information. Logging in manually is good for seeing what is actually happening, but can be very tedious after a while. For this reason, the Trumpet Winsock allows you to configure login scripts that automate the manual login process. The Winsock can also be configured to run these scripts on demand. A login that uses a script is called an automatic login. We say that the Winsock has been "demand loaded" when the winsock.dll has been loaded before the tcpman.exe. This is usually how other applications start the Winsock. How do I get demand loading to work? Put the directory containing the winsock.dll in the path statement of your autoexec.bat file. If you want to be really sure things are going to work, make sure that you only have one copy of any winsock.dll, wsock32.dll or tcpman.exe files (rename any backup files if necessary), and that they are all in the same directory. Have login.cmd and bye.cmd scripts that do what you want them to and return "script completed". For help with this, see Automating the login process. Enable one of the Automatic loginautologin options from Dialler/Settings. Finally, the Online status detectionosd from Dialler/Settings will need to be adjusted to suit. The default is DCD, which is usually okay. If you're unsure, try DCD first, then try the others. How do I edit my login script? Scripts can be edited using any text editor as long as the files are saved as text, with filenames ending in .cmd (for example, myscript.cmd). To edit your script using Notepad, go to the Dialler menu and select Edit scripts, then double-click on the script you wish to edit. For an overview of the scripting language, please see Scripting Language. How do I change my login phone number, etc? As long as you are using a login script that is based on the example script distributed with the Trumpet Winsock, you can edit your login phone number, username and password using the following method: Go to the Dialler menu, and select setup.cmd. Enter or modify then entry then press OK after each one. How do I set the Winsock to redial automatically? To configure the Winsock to redial automatically: Select a method of Online status detection that is supported by your modem (and enabled) in the Winsock's File/Setup screen. The most reliable method is DCD (Data Carrier Detect), which requires the modem command &c1 to be set. As an alternative, DSR (Data Set Ready) can also be used, and requires &s1. The settings &c1 and &s1 are the defaults for most modems. Select Automatic redial when disconnected from the Dialler/Settings screen. Why is the modem connecting at 2400? The most common cause of this problem has been non-standard comm drivers. A number of communications packages replace the standard Windows comm driver with their own driver to optimise performance. You can find out what comm driver you have installed by checking the comm.drv line in the [boot] section of your system.ini file. Setting it to comm.drv=comm.drv will reset it to the standard Windows comm driver, as long the original driver hasn't been over written. Why does my modem get disconnected? Here are the most common reasons why a line would drop out: The inactivity timeoutinactivity in the Dialler/Settings screen may have been enabled unwittingly. If so, set it to 0 to disable the timeout. Most ISPs have timeouts on their server to hang up the line if no data has been transferred within a certain period of time. Your ISP should be able to tell you if this is the case. Phones or fax machines on the same line as the modem can create problems. For example, some phones charge a capacitor every 15 minutes to power their memory. Remove all phones and fax machines from your line to be safe. Power surges from electric equipment (such as domestic white goods) may cause modems drop out. For example, if a fridge is plugged into the same circuit as a modem with a sensitive power supply then the modem may drop out whenever the fridge cycles. To eliminate this as a possibility, try disconnecting the suspected appliance. Line noise! This can be a real problem, and is more common than we'd like to believe. If line noise is the problem, then reducing the baud rate in the File/Setup screen may help. How do I optimise my MTU, RWIN, and MSS? These are enhanced primarily by trial and error. However, we recommended the following values as a starting point: SLIP/PPPEthernetMTU5761500TCP RWIN20484096TCP MSS5121024 For more information see: MTU, TCP RWINtcprwin, TCP MSStcpmss. offlineHow can I use the Winsock offline?;offline;Using the Winsock offline A new feature, Login on network activityautologin, is available from Version 3.0 onwards. With this feature enabled, the Winsock loads offline and only dials when an application tries to contact a remote host. With version 2.1f and earlier, the Winsock can be configured to operate offline by setting the following: Internal SLIP in the File/Setup screen. No automatic login in the Dialler/Options screen. Can I use another program as a dialler?;dialler Yes. The Winsock can establish a SLIP/PPP link over a connection created by another dialler. Before exiting the dialler to start the Winsock, don't forget to issue at&d0. This ensures that the modem ignores DTR signal when it is set low by the exiting program, otherwise the connection may be severed when the application closes the comms port. In the Winsocks Dialler/Settings screen, make sure that either No automatic loginautologin selected OR Online status detectionosd is configured correctly. Otherwise the Winsock may try to run the login script. How do I switch between tone and pulse dialling? If your login script is based on the login.cmd supplied with Version 3.0, then set either dt for tone dialling or dp for pulse dialling in the modem dial string. This can be found in the modem profile screen which can be accessed directly by selecting modem.cmd from the Dialler menu. If your login script is based on an earlier version of the login.cmd then there will be a line within the script that outputs either "atdt" or "atdp" followed by the number. The command "dt" instructs the modem to use tone dialling, while "dp" represents pulse dialling. For example, to use tone dialling: output "atdt"$number\13 Or, pulse dialling: output "atdp"$number\13 How do I send a "break" with Trumpet Winsock? The break command can be used to send a break signal. One way of using would be to write a script that consists of one line: break Save this in the same directory as the Trumpet Winsocks files (usually c:\trumpet), and give it an appropriate name such as break.cmd. To run this script select break.cmd from the Dialler menu. Alternatively, you could have a script to output the modem's escape code so that it returns to command mode, then output the AT commands to transmit break ("at\b") and return modem to data mode ("ato"). For example, within a script this would appear as: output "+++" input 10 OK\n output "at\bo"\13 Can I setup the Winsock for multiple Internet Service Providers? It is possible to configure the Winsock for multiple Internet Service Providers (ISPs), but it requires some tweaking. There are two methods... Method One... Easy but ugly Using this method you will have two (or more) full copies of the Winsock in as many different directories. This "brute force" method is effective, but it means that if you update the Winsock you will have to update each copy. Also, you risk getting the various copies confused. Create a new directory on your machine and copy all of the Winsock files into it. Create a program item for the new copy of tcpman.exe. An easy way to do this is by making a copy of your existing Trumpet Winsock (ie tcpman.exe) icon, and then selecting Properties from the File menu and modifying the copy's Command line. Start the new version of the Winsock and: Select Setup from the File menu and modify the parameters as required (In particular DNS server and Domain suffix). Select setup.cmd from the Dialler menu to access and edit the phone number, username and password. The login.cmd script may need to be altered for each provider. Do this using the instructions in the Help file. Method Two... More complicated but cute If you would prefer not to maintain two separate copies of the Winsock, then there is a solution. By default, the Winsock stores all its settings in a file called trumpwsk.ini. You can use the -inipath= command line option to specify an alternate *.ini file. To do this: 1. Create a program item for the Trumpet Winsock that will use the alternate *.ini file. An easy way to do this is by making a copy of your existing Trumpet Winsock (ie tcpman.exe) icon, and then selecting Properties from the File menu and modifying the copy's Command line. c:\winsock\tcpman.exe -inipath=c:\winsock\inifile1.ini c:\winsock\tcpman.exe -inipath=c:\winsock\inifile2.ini 2. Start the new version of the Winsock and: Select Setup from the File menu and modify the parameters as required (In particular DNS server and Domain suffix). Select Profile from the Dialler menu to access and edit the phone number, username and password. So far this is fine, but one problem remains.... What if different login.cmd scripts are required for each ISP? The solution is to use only one login.cmd file that contains all of the required scripts. Once you have a working *.cmd script for each provider you can integrate them using the following steps: To indicate which *.ini file is being used (and therefore which script will be needed) add a new variable (say $isp) to the [default vars] section of each *.ini file. For example: [default vars] $number=******** $username=******** $password=******** $isp = "isp1" Don't forget to set the value of $isp differently in each *.ini file! The login.cmd script can be modified to execute one section of itself if the $isp is of a particular value and another section for a different $isp value. The new login.cmd file may look something like: load $isp if $isp = "isp1" # login script for first isp end if $isp = "isp2" # login script for second isp end Method Three... Coming soon! A third alternative is to use the new include command to simplify the process of incorporating different scripts. An example that makes use of this feature will soon be available on our Webweb site. How do I get bye.cmd to hangup my modem? The bye.cmd script that is currently supplied with the Trumpet Winsock includes two alternative methods of hanging up the modem. To try them out, edit the line that sets the %which variable to either 1 or 2. prognotesProgrammer's notes Where can I get information about the Windows Sockets API? Stardust Technologies & Stardust Winsock Labs: http://www.stardust.com/ Stardust Technologies' Winsock Resource Center: http://www.stardust.com/wsresource/wsresrce.html Microsoft: http://www.microsoft.com/. Is there a list of "Trumpet Winsock specific" functions? No. We do not make this information available for a number reasons: These functions calls are subject to change without notice. By publishing private function calls we would be making a commitment to support these calls in future releases of the Winsock. Maintaining backward compatibility increases the baggage that comes with each new release. By writing your software such that it conforms to the Winsock API, you ensure greater compatibility between your software and other vendors' (ie non-Trumpet) Winsocks. Can I have the source to anything written by Trumpet Software? No. We don't release the source code of our applications or utilities under any circumstances. Do you have a Visual Basic tool kit? No. There is no specific Trumpet Winsock Visual Basic tool kit. Does the Winsock support IP multicasting? The Trumpet Winsock does support multicasting, but it is not fully IGMP compliant. To program for multicasting all you need to do is specify the right multicast address in the connect/bind/sendto calls. A sample program is available at: http://www.trumpet.com.au/wsk/faq/test_mc.txt Windows 95 questions;Win95 How does the layer work?;thunking layer This release is not a full 32-bit version of the Trumpet Winsock. Rather it includes a thunking layer which allows 32-bit applications to utilise the 16-bit Trumpet Winsock under Windows 95. In fact the main parts of the Winsock, tcpman.exe (the dialler and interface) and winsock.dll (the core of the Trumpet Winsock), will continue to operate with 16-bit applications under both Windows 3.1x as well as Windows 95. When a 32-bit application requires the Winsock, it loads wsock32.dll which in turn loads twsk16.dll. Most functions are passed directly through to the winsock.dll. The exceptions are the getXbyY routines, and the WSAAsyncGetXbyY routines. Since special Windows 95 calls are used to create the layer between 32-bit applications and the 16-bit Winsock, it will not work under Windows NT (or Win3.1). Does the Winsock work under Windows NT?;WinNT;Windows NT No. Version 3.0 uses special Windows 95 calls to create a layer between 32-bit applications and the 16-bit Winsock. For more information about the layer, see How does the layer work?. Compatibility with 32-bit Winsock applications All the funct      !kC$%&'()*+,-./0123456789:;<=>?@ABEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjlnopqrstuvwxyz{|}~ions supported by the regular Trumpet Winsock are available. However, the GetXbyY routines, and WSAAsyncGetXbyY routines have required recoding into 32-bit and are currently cut down in function and may be less robust. The following 32-bit Winsock applications have been tested with this Winsock: ProgramCommentsWinQvtNet 32No apparent problems. WinVNNo apparent problems. MS TelnetNo apparent problems. MS FTPNo apparent problems. Super MosaicNo apparent problems.Netscape 32No apparent problems.WS_FTP 32Seems to work correctly, however we are uncertain as to what will happen when the memory compacter starts to shift things around in memory. This may lead to problem when physical memory gets low. HotJava (alpha 3)Crashes regularly. Reason unknown - Sun acknowledges this to be a bug that is independent of the Win95 Trumpet Winsock. We have Soft Ice'd the program to find that the routine GetThreadContext may be related to the bug.Trouble spots Since the Winsock is required to manage it's resources with the possibility of being preempted, this version of the Winsock now contains special locks to prevent reentrancy. This has required the use of the yield() function, which may have an impact on some 16-bit programs. Only rudimentary testing of 16-bit programs has been done in this area. Should an application crash while a Winsock lock is being held (for eg. HotJava) the lock may still be left on. The Winsock attempts to detect this deadlock condition and clears the lock. However, in the event of this happening, the Winsock may be left in an unstable state. All tests have shown that the Winsock remains stable in such a case, but stability cannot be guaranteed under those conditions. An error message will be displayed on the Trumpet Winsocks display should this arise. If the Winsock has been unable to recover from such an error condition, it may remain deadlocked. To clear such an error, you can try to terminate the Trumpet Winsock tcpman.exe task using the Ctrl-Alt-Del combination. A Windows restart may however still be required occasionally. WS_FTP32 uses a Winsock callback function. While it seems to work correctly, I'm not too sure what will happen when the memory compacter starts to shift things around in memory. Watch out when physical memory gets low. Fixing lock ups You will find that some apps will not respond, but Win95 will still work for 32-bit apps. Press Ctl-Alt-Del. You should get a list of applications that are not responding. (Win95 may not show these until some time has elapsed). Try to kill off any locked 16-bit applications first. This should usually clear the problem. Be patient, Win95 may not terminate them immediately. Then close down all other winsock applications. Chances are that the Winsock has been left in a tricky state. It will probably still work, but will operate less efficiently than normal. If the cause of the problem has been a 16-bit application, the Winsock should close normally. IT IS RECOMMENDED THAT YOU ALWAYS CLOSE DOWN THE WINSOCK WHENEVER THERE HAS BEEN A LOCK UP. If you have had to kill off any 32-bit Winsock applications, you will need to restart Windows. This is because the files winsock.dll, twsk16.dll and wsock32.dll will still be locked in memory even though no Winsock apps may be running. You can do this by either rebooting normally, or shutdown/restart in MS-DOS mode and then typing "exit". Please note the distinction between closing an application normally and killing off an application. Closing is done by normally exiting the application using the close button or similar mechanisms. Killing an application is done by using Ctrl-Alt-Del and following the Win95 terminate program dialogs. Glossary This section contains various bits and pieces that didnt seem to fit anywhere else. Command line;Can the Winsock use alternate *.ini files?;trumpwsk.ini;ini The inipath command line option can be used to override the default trumpwsk.ini file. This is useful if you want to use the Trumpet Winsock under a variety of situations. For example, one configuration for a packet driver setup and one for a dial-up PPP connection. Or configurations for two different Internet Providers. The command line is accessible by high-lighting the Trumpet Winsock icon from the Program Manager and selecting File/Properties from the menu. For example: C:\winsock\tcpman.exe -inipath=C:\winsock\dialup.ini Note: The entire path name must be given. Crynwr packet driver collection;packet driver collection The Crynwr (formerly Clarkson) packet-driver collection is furnished by Russ Nelson and available from the Columbia University Academic Information Systems FTP site at: ftp://kermit.columbia.edu/packet-drivers/ Trumpet files Here is a list of files written by Trumpet Software International Pty Ltd that are included with the Trumpet Winsock package. winsock.dll The core of the Trumpet Winsocks TCP/IP stack. This section does all the work, but takes its leads from tcpman.exe. Every Winsock package includes a winsock.dll, but each one is written by the vendor of that Winsock. tcpman.exe;Tcpman The part of the Trumpet Winsock that controls how the winsock.dll communicates with the Internet. It makes use of the trumpwsk.ini file to store its settings. wsock32.dll The 32 bit interface to the Winsock under Windows 95. With twsk16.dll, this file provides a thunking layer. For more information about the layer, see How does the layer work?. twsk16.dll Assists wsock32.dll. trumpwsk.ini Contains most of the settings for the Trumpet Winsock. See Command line if you wish to use more than one .ini file. Although editing the .ini file settings directly is not advised, experienced users may find it helpful to know about the following parameters: ip_buffersThe number of buffers for internet frames.pkt_buffersThe number of buffers specifically for the packet driver.slip_loggingTakes a log of a dial up SLIP/PPPppp session, and saves it as usage.log.fontSets the font of the Trumpet Winsocks display.slip_rcvbufSize of the outgoing comms ring buffer.slip_sndbufSize of the incoming comms ring buffer. Note that some of the network parameters may be overridden by environment variables, which have the same names as the trumpwsk.ini parameters. hosts Provides a list of host names. The Winsock checks this list first whenever it looks up an entry in the DNS server. services List of Internet services. protocol List of Internet protocols. trumpwsk.hlptrumpwsk.hlp The online help version of the Trumpet Winsock documentation. It uses Microsoft Help and can be run directly from the File Manager or Program Manager as required. The Trumpet Winsock Help file was created from a Word for Windows document using Roger Hadgrafts very helpful macro, Doctor Help. Doctor Help translates any reasonable Word file into a Windows Help file (with the aid of the Help Compiler of course). For more information regarding Doctor Help, contact roger.hadgraft@eng.monash.edu.au. login.cmd This is a sample login script that will work with most modems and SLIP/PPP servers once the settings in the Dialler/Profile have been set correctly. It is significantly different to the sample script provided with earlier versions of the Trumpet Winsock. Throughout this document, login.cmd and login script refer to the standard login script supplied with Version 3.0, unless otherwise stated. Since everyones login sequence will be different, it will probably be necessary for you to configure your profile and/or login script. See Logging in for the first time for more information. profile.cmd A script that allows you to configure the login phone number, username and password of your SLIP/PPP account. This information is saved in your trumpwsk.ini file. See also Profile. modem.cmd A script that allows you to configure settings relevant to your modem. See also Modem profile. server.cmd A script that allows you to configure settings relevant to your SLIP/PPP server. See also Server profile. bye.cmd A sample bye script. Tcpmeter;tcpmeter.exe Tcpmeter provides a graphical representation of incoming and outgoing network traffic. Incoming traffic is displayed across the top of the screen in green, and outgoing is across the bottom in red. Each coloured bar indicates a fraction of the vertical scale. For example, if the vertical scale is 4K bytes/sec and the green bar comes 3/4 of the way down the screen, then you received 3Kb in that second. The vertical scale is displayed in the title bar of the window and can changed by clicking the left mouse button to increase it and the right mouse button to decrease it. Hop;trumphop.exe Hop provides a list of the gateways that are traversed by a packet on its way to a destination Host address. On the Internet, any two machines are joined by a number of physical networks. A machine that directs traffic between networks is called a gateway. To generate a list of the machines between yours and a destination machine, enter the name of the machine in the Host field and select Start. A list of the machines between yours and the destination machine will be displayed. If *** is returned, it means that although a gateway has been passed through, no information has been passed back. Dig;trumpdig.exe Dig uses the Domain Name System (DNS) to answer queries about a domain or host on the Internet. To use this you will need to know the address of a DNS host, or name server. If youre not sure, just use the name server from the Trumpet Winsocks File/Setup dialog. Once you have entered the address of a name server in the DNS Host, enter the address of a domain (or host machine) in the Target field and select Search. You can select the Type of record to be requested if you are looking for specific information. If the DNS host you entered is unreachable (it may not be functioning), the message Timed out will be displayed. In this case, check the address of the name server or try another one. ParametersTargetThe address of a domain or host. DNS hostUsually your providers name server.TypensName server.aAddress.soaStatus of authority.anyUsually the same as address.mxMail exchange.Ping;trumping.exe Trumpet Ping is a diagnostic program that allows you to send test packets to a known host on the Internet. It is useful for checking your TCP/IP connection. ParametersHostEnter the address of a host machine.SizeThe size of each packet in bytes.IntervalHow long to wait before sending the next packet. To test your connection, enter a known host name or IP address in the Host field, and press Start. If you enter the name of a machine, the first thing Ping does is to convert it into a numeric IP address. This may happen so quickly you dont even notice it. If the status line seems to be stuck on a message saying Looking up , this may indicate that there is a problem with the DNS system (DNS is the system convert a the name of a machine on the Internet into its numeric IP address). Check that the Name server address in your Winsock is set correctly. An ICMP transmit error will usually be generated either because the network is down or because of incorrect Comm port settings. At any time you can press Stop to cancel the test and display statistics. There is no timeout, so if youre sending packets and getting no response, the status line will not change from Trying ..... In this case, press Stop. The display will then list how many packets were sent and received and a percentage of how many were lost. Statistics are also presented that give you an idea of how long it takes for the packets to do the circuit back to your machine. This is called the round trip time (rtt). Definitions Buffers;packet buffers;network buffers;IP buffers Network buffers (both IP and packet buffers) are sections of memory allocated from RAM to store packets of 1500 bytes each. There are two pools, the main IP pool (32 buffers by default) and the packet driver pool (16 buffers by default). An IP buffer is not quite the same as a packet buffer, although they do have the same structure. Only the packet driver pool needs to be in Global DOS memory. It has to be from there so that the packet driver (which is a DOS TSR) can copy data into them when a packet arrives (and from them when packets are sent). For this reason, packet buffers are not allocated under SLIP/PPP configurations. See also Comm errors [OVERRUN]. When the Winsock is configured for SLIP/PPP, two comms ring buffers are allocated. These are the receive and send buffers. See also Comm errors [RXOVER]. BOOTPBOOTP Bootstrap Protocol (BOOTP) is an alternative to RARPRARP that allows a machine to obtain its IP address, gateway address, and Netmask using UDP (User Datagram Protocol) and IP. Therefore, BOOTP can be used over a dial up SLIP/PPPppp connection if required. Comm driver When the Trumpet Winsock is configured for SLIP/PPP it is normally being used over a modem. A comm driver allows the Dialler of the Trumpet Winsock to access the modem. The comm driver (or comm.drv) is set in the [boot] section of your system.ini file. CSLIP Compressed SLIP (CSLIP) is a more efficient version of SLIP, that features VJ Header Compression. CSLIP is not necessarily supported by all SLIP servers. Firewall A firewall is broadly defined as anything that protects one network from another. Use of a firewall and a program such as Socks 4.2 can enable a computer to access the full resources of the Internet without actually existing on the Internet. It does this by having the public side of the firewall communicate to the Internet on behalf of any machines on the Local Area Network (LAN). Machines on the LAN speak to the local side of the firewall using TCP and know nothing about the full Internet. Socks bridges the gap between the two sides of the firewall. Here are some reasons why a LAN might use a firewall to connect to the Internet: Without a firewall your machines IP address (and name) can be seen by anybody else on the Internet. This information can be hidden by a firewall, since only the public side of the firewall is visible. Firewalls can free up space for IP addresses, as the public side of the firewall can represent the entire LAN with one IP address. As long as the machines on the LAN are only connected to the Internet through the firewall they can use any address. There are many official non-Internet addresses reserved for this purpose. The services that will be made available to users on the LAN can be regulated, as a program like Socks can choose what protocols to support. PAP;C023 Password Authentication Protocol (PAP) is an authentication system built into PPPppp that should only be enabled upon instructions from your internet service provider. PAP requires a username and password and can be enabled in the File/PPP options screen. RARPRARP Reverse Address Resolution Protocol (RARP) is a low level Internet protocol used by diskless machines to obtain an IP address from a server over a physical network. An alternative to this scheme is BOOTPBOOTP. Shim;Packet driver shim In the context of the Trumpet Winsock, a shim refers to a packet driver shim, a program that provides a packet driver interface to another method of network connection, such as ODI and NDIS. See Using the Trumpet Winsock over a packet driver for more information. Socks 4.2 Socks is a program that permits communication across a firewall. For more information regarding Socks, see: ftp://ftp.nec.com/pub/security/socks.cstc/ Token ring Since the Winsock can only use a class 1 or 6 packet driver, token ring is only available by way of a shim such as oditrpkt or the ibmtoken packet driver. Vectors 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 PCs are 0x10 for the video BIOS, or 0x21 for calls to DOS. Virtual machine 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. WINPKT;winpkt.com WINPKT is a virtual packet driver interface for Windows. The program WINPKT was written by some clever people on the Internet to allow a packet driver interface to work correctly within Windows by making sure that packets get directed to the correct virtual machine under Windows enhanced mode. Within Windows, packet drivers can only be used reliably using WINPKT, and even then only under enhanced mode. It is available from our FTP site at: ftp://ftp.trumpet.com/winsock/winpkt.com Note that NDIS3PKT replaces WINPKT, since it offers exactly the same function. Windows Sockets 1.1;Winsock For a full description of Windows Sockets, see the Stardust Technologies & Stardust Winsock Labs: http://www.stardust.com/ See also Programmers notesprognotes. contactContact Details and Online Services The following services are intended to support our clients by providing the latest news as well as gathering feedback about our products. Our mailboxes are for questions that are not satisfactorily addressed by this document or our online services. Before writing, please check the Trumpet Winsock FAQ lists both in this document and at our WebWeb site. webWorld Wide Web Not surprisingly, we have a Web site. Its URL is: http://www.trumpet.com.au/ Our Web site is particularly useful as a supplement to this document by being the most up-to-date source of information. It also allows us to provide information that would be too bulky for this document if given in full. Technical support email addresses;email Before requesting technical support, please make sure youve searched through the FAQFAQ lists both in this document and at our WebWeb site. To help us diagnose your problem quickly, it is important that you send any relevant details. For example: versions of the software that you are using, your operating system, etc. Choose the right mailbox for your question carefully. Misplaced email may not be answered! reg-support@trumpet.com.auThis is where registered users may send their technical questions. As a registered user you will have priority, but you must include your registered name at the start of your message.winsock-support@trumpet.com.auTechnical questions regarding the Trumpet Winsock.newsreader-support@trumpet.com.auTechnical questions regarding the Trumpet Newsreader.General email addresses;email Before sending a request, please make sure youve searched through the FAQFAQ lists both in this document and at our WebWeb site. Choose the right mailbox for your question carefully. Misplaced email may not be answered! info@trumpet.com.auThis is for general information about our products that isnt addressed by the other mailboxes. Typically this kind of information will be accessible from our WebWeb site; please look there first!sales@trumpet.com.auWrite here if you are interested in either registering your copy of one of our products, purchasing a site license, or negotiating a distribution agreement. Check our WebWeb site first for a current price list.registrations@trumpet.com.auThis is for following up registrations. Only write here if your query concerns an order in process, or youre having trouble with the Internet registration or Update registration features.trumpet-bugs@trumpet.com.auThis is for informing us of bugs in our products. We don't normally reply to these directly, so if you want answers please write to one of the technical support addresses.suggest@trumpet.com.auAs we look for ways to improve our products, we'll refer to mail sent here. Don't expect a response though!www-admin@trumpet.com.au Comments and queries about our Web site.The trumpet.* newsgroups You can ask questions, or discuss any aspect of any Trumpet program through these Usenet newsgroups. Feedback is always welcome. If your providers newsroom doesnt receive these groups you can access them by pointing your newsreader at newsroom.trumpet.com.au. This site maintains the following private news groups: trumpet.announce trumpet.bugs trumpet.feedback trumpet.questions If youre using Netscape, you can access these groups by going to: news://newsroom.trumpet.com.au/trumpet.* FTPFTP The latest copies of all our freely accessible software and pre-releases are available by anonymous FTP from: ftp://ftp.trumpet.com/ Or in Australia: ftp://ftp.trumpet.com.au/ This site can be particularly busy at times, so if you are unable to connect please try one of our mirror sites. Our mirror sites are listed at: http://www.trumpet.com.au/mirror.htm phoneTelephone and fax numbers;fax Our Australian office is open from 9am - 5pm Monday to Friday (GMT+1000). Country or RegionPhoneFaxUSA1800 488 42361800 488 3314Canada1800 856 89181800 856 8922United Kingdom0800 96 72940800 96 7295International (until 8/96)+61 0245 0220+61 0245 0210International (after 8/96)+61 3 6245 0220+61 3 6245 0210Australia1800 67 02201800 67 0210Hobart, Tasmania (until 8/96)(002) 45 0220(002) 45 0210Hobart, Tasmania (after 8/96)(03) 6245 0220(03) 6245 0210 postPostal address Trumpet Software International Pty Ltd GPO Box 1649 Hobart Tasmania 7001 AUSTRALIA Registration Details Registration of the Trumpet Winsock is encouraged since it not only funds further development of the software, but also gives you a warm fuzzy feeling deep down inside. Furthermore, it allows you to keep using the Trumpet Winsock after 30 days. The basic registration fee for a single user version of the Trumpet Winsock is AUS$25 for Australian users and US$25 for international (non-Australian) users (valid until 31-Dec-96). See the price list for details on multi-user site licenses. As a registered user, you will receive support (within the existing Capabilities of the Trumpet Winsock) for up to 12 months from the date of purchase. Support will include any upgrades or bug fixes released within that 12 months. After 12 months, upgrades for previously registered users will cost 25% of the current registration fee per annum. Arrangements will also be made for conversion of smaller licenses to larger ones. How to register Please fill out the order form in clear print and send it along with your payment/purchase order. We accept the following methods of payment: Internet registrationYou may email your credit card details to us using the Internet registration feature of the Trumpet Winsock, which is located under Special menu.Credit cardWe accept Mastercard, VISA, Bankcard, American Express and Diners Club. Credit card details may be given by fax or phone. See Contact Detailsphone for our fax and phone numbers. Credit card details may only be emailed using the automatic Internet registration option.Direct bank transferDirect bank transfers can be made using the following bank account details. Please fax both the completed order form and details of the transfer (ie deposit slip). See Contact Detailsphone for our fax number. Account Title: Trumpet Software International Pty Ltd BSB: 087 421 Account number: 64892 8805 Bank name: National Australia Bank 7 Bayfield Street Rosny Tasmania 7018 AustraliaCheque Cheques should be drawn in favour of Trumpet Software International Pty Ltd and sent with the order form to our postal addresspost via Air Mail. All cheques from international (non-Australian) users must be in US currency and drawn on US banks. We are also able to accept American Express international postal money orders. Please note that mail from the US to Australia can take up to 15 working days to arrive.Purchase orderWe accept purchase orders for any amount, but will only invoice orders that are greater than $100. Prepayment is required for purchase orders that are less than $100. Purchase orders should be accompanied by the order form and faxed to us. Price list All prices are in Australian dollars for Australian users, and US dollars for international (non-Australian) users. For example, a single license costs AUS$25 for Australian users and US$25 for everyone else. Prices valid until 31-Dec-1996. Single User License 1 user $25 Multi-user Site License 1-99 users $25 per user 100-499 users $2500 + $10 per additional user over 100 500-999 users $6500 + $5 per additional user over 500 1000-4999 users $9000 + $2 per additional user over 1000 5000-9999 users $17000 + $1 per additional user over 5000 10000-19999 users $22000 + $0.90 per additional user over 10000 20000-49999 users $31000 + $0.80 per additional user over 20000 50000-99999 users $55000 + $0.70 per additional user over 50000 Multi-user Educational Site License 1-100 users $25 per user 100+ users $2500 per campus A multi-user educational site license covers a single campus only. If more than one campus is to be covered, a multi-user site license costing structure with a 10% discount applies. This is restricted to students and staff using campus facilities. If dialling in off campus, students and staff must dial in through the school's services only. A site license is a license to a specific named organisation and may not be sub-licensed or assigned to anyone else. Copies of the Winsock software obtained under a site license may only be used by employees of the licensed organisation or, in the case of an educational organisation, by employees or students of the licensed organisation. Payment under a site license is based on the number of installed users. A site license cannot be used by an Internet Service Provider to provide Internet services for its clients. DistribDistribution Rights Trumpet Software International Pty Ltd reserves all rights in the Winsock program, including the rights of publication and of distribution. The Winsock program may only be made available from FTP sites which have been approved by TSI for that purpose and may only be made available from those sites in the unmodified twsk30?.exe file distributed by TSI. All other forms of making the program available or of distribution (and all reproductions of the Winsock program in connection with such activities) are prohibited without TSIs express written agreement. TSI has a standard distribution agreement for use with its distributors and a standard scale of distribution charges. Please contact TSI at sales@trumpet.com.au for further information on TSIs distribution arrangements. Order form Trumpet Winsock Version 3.0 Ship to: Bill to: _________________________________ _________________________________ _________________________________ _________________________________ _________________________________ _________________________________ _________________________________ _________________________________ Please supply the following items: [ ] Single user license. [ ] Multi-user site licence for [_______] users. [ ] Multi-user educational site licence for [_______] users. Total cost : __________________ (AUS$25 for Australian users and US$25 for international (non-Australian) users (valid until 31-Dec-96). See the price list for details on multi-user site licenses.) Method of purchase: [ ] Purchase order. We accept purchase orders for any amount, but will only invoice orders that are greater than $100. Prepayment is required for purchase orders that are less than $100. [ ] Cheque. All cheques from international (non-Australian) users must be in US currency and drawn on US banks. [ ] Bank Transfer. Direct bank transfers can be made using the bank account details found in the section on How to Register. [ ] Credit card. We accept Mastercard, VISA, Bankcard, American Express and Diners Club. Name on card: _______________________________________________ Card number: ________________________________________________ Card type: __________________ Expiry Date: ________________ Signature: __________________________________________________ Do you require a disk with the How would you like to receive latest version of the Trumpet your password? Winsock? [ ] Email. [ ] No disk required. [ ] Fax. [ ] 3.5" disk. [ ] Postal mail. [ ] 5.25" disk. Your registration name as will appear on the program (maximum 84 characters including spaces): _______________________________________________________ Email: _______________________________________________________ Phone: ________________________ Country: __________________ Fax: ________________________ Date sent: __________________ PAGE  PAGE  ࡱ; v_901534431 F 䉻 䉻PIC LMETA  #?CompObjb G &WordMicrosoft Word  , D-Times New Romanh- --,,,, ,   a  C aa(al9                                                                                                                               ''''-ࡱ; vObjInfoH1I0I@14@14GX&GXStI 24 2ObjectPool 䉻 䉻WordDocument DhISummaryInformation(ܥe3 ehIFjFjjFjFvFvFvFFFFFFF F FH1FFFFFFFFFFFF!FGuHHTIPHvFF!"FFFFHFjFjFFFFFFFjF FvFFFFFjFjFjFjFFFFF  .Apq2>: 1    a C aa(al9                                                                                                                               20(pࡱ; AuuD uDaK@Normala "A@"Default Paragraph Font A!"NA@TI microLaser PS35LPT2:PSCRIPTTI microLaser PS35 WD[ 5d, XZZeTI microLaser PS35 WD[ 5d, XZZe 1Times New Roman Symbol &Arial"hkkE!PTrumpet Software InternationalTrumpet Software Internationalࡱ; v  d   <` (C:\MSOFFICE\WINWORD\TEMPLATE\NORMAL.DOTTrumpet Software InternationalTrumpet Software International@~d9@@~d9@Microsoft Word 6.02 Oh+'0$ H l   D h*C:\MSOFFICE\WINWORD\TEMPLATE\TRUMPWSK.DOTTrumpet Winsock Help Rob Toro .Ann)taiࡱ; v*/0GHIJMYZs  %&=>?A_`{|67NOPRrs#$?@WXY[VccJc$ uDR5KuDR5avKuDc$cHc0WBC^_vwxz "89TUlmoq   3 4 6 8 c d      ? @ [ \ s t v x      uDc + , C D F H U V q r     " # > ? V W Y [ q r ' ( ? @ B D _ ` { |  ()@ACE[\wxuDc!"9:<>UVqr*+BCEG_`{|)*,.FGbcz{} %&(*AB]^uvxzuDc78STklnp67NOQSxy*+BCEGno78OPRTqruDc  &'>?ACbc~568:PQlm  !"$&78STklnpqr"%-0%)nq4 ; !!"",-/\1<"<=U\uDb=== =%?)?0?3???????@@@@@@@@@@~AAAAAAWB[BBBBBBCICaCiCCCEEMMqOvOPPQQQQ RR7SIS{SST!T-T2TTTUUUV[YxY\]]]aajjmmn n|oopppppp+q=qss2xgxxxVU\cxq|}|',159vx‰Ë̋DHېސmyTZ +-֗ݗؘ!") &)KUzw1yΰ.7HL&.1C¼U\d?Dοݿ3>=@nr0:XYvy,4kncl{'(8B8; )ABy %3]'-@A !79\c9BWXZ[`hV\Uc lx]blw8?JOQW&*,3,2 ciksswy}9>\VUc    2 6 K O ) . M R         ? F     TUefhk/7,+/+++#-,-;/J/11445566W8]8==+>C>>?JKKKKKLL{LL5NGNNNyOOdYoYcU\coY[\|____sa{a{c~chhjjxll.}=}/2*0ЁׁĊˊU^VYęə̙ơ֡͡ܡޡ)R[˥ΥæŦms O"]`yUcVU\b%uy^k$( '+5_{UZ`s    }          HI  8;AUXxy9<U\UV\b<bc?@ DIbfPTIN    d!o!p!!!!!!!"m""##%#$#$$$**!,,,;7<7=7C7D7E7G7H7N7O7P7S7T78uP; uDP;ca \UC*+,-./KLMNO`astBS\ {#r9 U"6U"6U"MU"6U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"6U"6U"U"U"U"U"U"U"U"<,  y  I  \ E F?H/+{ q THUD-;'qs:78Z - Y U!!!!'"5"6"""U"U"U"U"U"KU"U"U"U"KU"U"KU"U"U"U"U"U"U"KU"U"U"U"U"U"U"3 443%"""#3#Q####C$m$$$$%E%%%&6&t&&&&%'P''''J(m(()2)r))***I++U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"&U"U"U"U"3 44(++&,_,,,,-./]1q567979999:U:V:;#<<"===>?5?}??^@@AAFBBU"U"U"U"U"U"U"U"U" U"U"U"U"U"KU"U"U"U"U"U"U"U"U"U"KU"U"U"U"U"#U"U"3?=43 4&BBCICCCuDD%EE@FFG(GmGGGGCHaH5IJTJJLKKLmLMbMcMNNN|OOPyPPQQR%SJSSU"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"KU"U"U"U"U"U"U"U"U"U"U"U" U"U"KU"U"U"U"U"U"3U"U".U"U"U" 34,ST_TTUUUDVeVVV WPW?XuXX YCYyYZ![[[@\\\(]A]]]e^^G___`aabbbbbbbU"U"U"U"U"U" U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"%U"U"U"U"U".34,bbbbbccccccdrdxdydddddddddddddddddddd e ee"e#e$eU"U"U"U"U"U"U"U"U"U" %% %% %% %% %% %% %% %% %%U" Cl   B&$e8eeeeeeeefff)f7f8fpffffgJgKg`gkgwgggggViii jjj!j+j,jqF/ɅˆU"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"%U"U"U"U"U"U"U"U"U"U"U"KU"U"U"U"U"43$+ˆH|ć̈9ĉ#Q_NJ̊Ҋ)7Ë׋w \(DMϐm7Ta U"U"U"U"+U"U"#U"U"U"U"U"KU"%U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U" 34+ e֗_%w"27z&=WۤpU" U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"%U" %l  CB&pqrwťƥץ=>?DnobϧMR% UzUzzxvU"vU"vU"xU"%l   l   l   l   CBl   RmrwרߨEJ9īګ21sDJDE&U"U"KU"%U"U"%U"U"KU"%U"U"%U"U"%U"U"%U"U" U"U"U"%U"U"U"U"U"U"U"U".U"U"U"U"U"%U"U"U"U"U"U"U"U"U"%U"43,&,zƷ*.\¸Ƹ.<V_й#0|ֺߺ&DļL|ĽʽfU"KU"U"U"U"%U"U"U"%U"U"U"%U"U"%U"U"%U"U"%U"U"U"%U"U"%U"U"U"%U"U"%U"U"U"U"U"U"KU"%U"U"%U"U" ,fο ;n0Yv$5c U"U"%U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U" U" U"U"  l  " CB`,#& (i B 6,^B ~ N\  U"U"U"U"U"U"U"U"U"U"%U"U"U" U" U"U" U" U"U"U" U" U" U"U"%`,#CBl  " &?T, Jjw EQ#Kx:?U" U"U"U"U" U"U"U" U"U" U"U" U" U"U" U" U"U"U" U"U" U" U"U"U" U"U"U"U"%U"U"U"%U"U"U"KU"%U"U"%U"U"%U","(j}wWl}#)8PiAQxI(_l(U"%U"U"%U"U"U"U"U"U"U"U"U"U"U"%U"U"U"U"U"U"U"U"U"%U"U"%U"U"U"x,,D,B94Yk6:ky9Nl<U"U"U"%U"U"U"U"U"U"U"U"U"%U"U"U"U"U"U"U"U"U"U"U"U"-<2w<   + , / O P S r s v      U"U"U"KU"U"U"%U"U"%U"U"%U"U"%U"U"%U"U"VVVVVVVVVVVVVVl n CB(       # 2 3 6 X Y c       0 7 K O P  ) ; M Q R       7 ? e VVVVVVVVVVU"KU"U"U"U"U"U"U"U"U"%U"U"U"U"U"U"U"U"U"U"U"%U"l n CB'e f          :u-Wu\-.muU"U"U"U"%U"U"U"U"U"U"U"U"U"U"U"U"U"KU"U"U"U"U"U"U"    U"U"U"   l j CBS&45:TUW457MNPefg| U"U"U"U"U"U"U"U"Kl  CB$l S )l j |%;<FQRWmnr~[U"U"U"U"Czl U l U Cl U  B[\e !'5")DU"U"KU"U"U"U"U"U"U"KU"U"U"U"KU"%U"U"U"l U CBl U !DcP^evP4 @ !f"n"x""""""""#$$%%%9%F%G%P%X%b%c%j%U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"%U"U"U"U"U"U"U"U"U"U"U"U"%U"U"U"U"U"U"U"U"U"U"U"U"-j%}%%%%%%%%%&&(&/&>&W&^&y&&&&&&&'B'i'''$(R(((5)a))))*0*K****+U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"KU"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U",+O+p++,,---n---1.2.../K//x000[1112334H5)6677889:&;D<<<<.=>D>U"KU"U"U"U"U"U"U"U"U"U"U"U"U"U"%U"U"U"U"U"U"U"U"U"U"U"U"U"%U"U"U"U"U"U"U"%U"$3+D>>?|?e@A-CmCE6FFFFHII^JJJKjKKiLLMNHNdOO,PPQAQpQQQ,THU)VYVVVV&WWU"U"U"U"U"U"U"U"U"U"U"%U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"KU"%U"U"U"U"%U"U"U"%U"U"3,WX9YpYZ[["[[\\]]^_Z_i____S``^a|abbcde!e2eAekebffgghhhCiii&jdjU"U"U"U"U"KU"%U"U"U"U"%U"U"U"U"KU"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"&U"U"U"U"U"U"U"U"$43,djsjjkdllmmmtn%o.p9pppIq]qqq%sssttuucuzuSvvvKwewJxgxxyyyy{5{{{U"U"U"U"U"U"%U"U"U"U"U"U"%U"U"%U"U"%U"U"U"%U"U"KU"U"%U"U"%U"U"U"%U"U"%U"U"KU"%U"U"U"U"%U"U"%U"U"`,#$+{|R|||F~/Fc܁;Mi$ڃ~4^܅`w-O{\Kj{~k1SU"%U"U"U"%U"U"U"U"U" U"U"KU"%U"U"U"%U"U"%U"U"U"%U"U"%U"U"KU"U"%U"U"%U"U"%U"U"U"%U"KU"U"%U"U"$+S4Y4~ޔ@_tM;`'2V!ٝTUV_hU"U"U"%U"U"&U"U"U"U"%U"U"U"%U"U"U"U"%U"U"U"0U"U"%U"U"U"U"%U"U"U"U"U"U"%U"U"B43'himqvwޡ*gOLU"U"U"U"U"U"3!l    &l (   CB&l (   L QoШa,_lzͫ^zԮrկHIr԰|Ҳ 6 {?U"%U"U"U"U"U"U"U"%U"U"U"U"U"U"U"U"U"U"%U"U"%U"U"U"U"&U"U"U"U"U"U"%U"U"U"U"U"U"U"U"U"U"U"U"$43+?':HI[evƷʷظŹ/HxϺMe Lѽ= +Yt߿U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"%U"%U"U"%U"U"U"U"U"U"U"%U"U"U"U"%U"U"%U"U"%U"U"U"U"U"$,߿^@1 =)*2;<I`ag~U"U"U"U"U"U"U"%U"U"U"U"U"%l 3! )(6?/!yP$1fgt*6#="U"U"U"U"U"%U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"KU"U"%U"U"U"U"U"%U"U"U"%U"U"%U"U"U"D$*./<%&'09T]y62'WU"U"U"%U"U"%U"U"%U"U"U"U"U"%U"U"U"U"U"%U"U"U"U"%U"Dl  C(d}vFo[lup+67>`ajU"U"%U"U"U"%U"U"U"U"U"U"U"U"U"U"U"U"U"U"= = = = F k  )k  D!OPF F F F F F F F F U"l S  )l   D)l  PQT W ".`OV\PYx)/\t3|)U"U" U"U"U"U" U"U"U"KU"U"U"U"%U"U"U"%U"U"U"%U"U"U"U"&U".U"U"U"U"U"U"%U"U"U"%U"U"%$4,4ZPiD  / b } \    " =   HIkBx U"U"%U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"   U" l f" )-$'xybc?@\  l(9FWijKbsDg     U"KU"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"R vB$)l / " '#0=>Yguv0?NOPcR vR vR vR vR vR vR vR vU"U"U"U"U"Cl   B(eu    !!8!K!d!o!p!w!x! "m""##%#$$$U"U"U"U"U"U"U"KU"p  pp          pp    p  U"l " )%SummaryInformation(6:@6:k Rob Torok@K\䉻@@K\䉻/@GMicrosoft Word 6.0*2ࡱ; $$$$%*%5%M%e%%% &G&&& '.'G'c'd'(**---..K.L.....#/$/k/l////00=0>00U"KU"U"U"KU"U"KU"U"U"U"U"U"U"U"U"KU"U"U"U"U"U"U"U"KU"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"&%!,000D1111C2223;3333332434s4t44444.5`555556;6<6{6|66666;7<7E7F7U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U"U":hh:`%&+F7G7P7Q7R7S7T7U"&:hh:`%FK"`"Normal ]a c``` Heading 1>  4 U]bc$h`h Heading 2F  (  4 U]bc d`d Heading 3A x 4. U]b cX`1X Heading 4:  4 b c`A Heading 5 b X`1X Heading 6:  4 b cZ`Z Heading 7:  4 Ubc``` Heading 8@ < 4 V]c` `` Heading 9@ < 4 V]c"A@"Default Paragraph Font"B@" Body Textxc"@" Normal Indent7@!TOC 3VZ`1TOC 2U$`$TOC 1xT" U" @"Index 2c @Index 1.!@R. Index Heading xx( U] @r Header o#,O, Menu Dr Help c.O.Menu Header Dr HelpUc $3@$List 3Q &O& Menu DR Helpc*O*Menu Header DR HelpU@-@@ Macro Text! ` @ ]a OCodeS] @ TOC 4Vc4@List 4 l$/@$List !: +x]c"2@""List 2"xOQ2Address#$C@B$Body Text Indent$7(>@R(Title%< U]ck.Oqb.Order Form Entry &]:Or:Order Form Description' &]c5@List 5(OTable)U^0@^ List BulletC* < 4@@ Signature+$I@$Message Header,n "@ Caption-xxU$J@$Subtitle.<U]c2,@2Table of Authorities/T" .#@.Table of Figures0 T" "@" Footnote Text1c &@! Footnote ReferencehhOBh InstructionM3 x< 4.lO1Bl Instruction 2P4 7 47$@$TOC 5 5T" c$@$TOC 6 6pT" c$@$TOC 7 7LT" c$@$TOC 8 8(T" c$@$TOC 9 9T" c @ Footer :9r )@ Page NumberO! Section Label<OLicense=]c0O0 Order form 3>$<a (O( License 2?^OA2^ Instruction 3=@  4]OA Body Text 3AO" Table headerBO!2 Table dataCU OB Table HeadingD*OR* Subtitle 2E UV]cT4B      !"#$%&'()*+,-./0123456789:;<=>?@AB  !"#$%&'()*+,-./0123456789:;<=>?@AT4 8B       !"#$%&'()*+,-./0123456789:;<=>?@AB s&)V78mDNYagNlv{9QmϤ1JjA6w \"'1e=J9V`tkJu/}Kiz+| P!**T4H &91   = Q~s cw !"#$%&_'(|)*+,-./01234 5C6789w:+;<;<=>? @ A*+,-./KLMNO`astBS\ {#r9yI \ E F ? H /+{ q THUD;'qs:78Z-YU'56 3 Q C!m!!!!"E"""#6#t####%$P$$$$J%m%%&2&r&&'''I(((&)_))))*+,].q2346766667U7V78#99":::;<5<}<<^==>>F???@I@@@uAA%BB@CCD(DmDDDDCEaE5FGTGGLHHImIJbJcJKKK|LLMyMMNNO%PJPPQ_QQRRRDSeSSS TPT?UuUU VCVyVW!XXX@YYY(ZAZZZe[[G\\\]^^___________`````cayaaaaaaa b#b$b8bbbbbbbbccc)c7c8cpccccdJdKd`dkdwdddddVfffg,gGgYglggggggghSiiKjjjkk4kKkLkk'l0l1lNllmpn o(pppbqqq3rUrrrrsrssssttttttuuhu vvvwCwmwwww;xVx_xxxky~yy z*zvzzzzzzzzzzzzzzzN{[{k{z{{{{{{{{F|+}4}}}(~~~7 >qF/ɂ˃H|Ą̅9Ć#Q_LJ̇҇)7È׈w \(DMύm7Ta e֔_%w"27z&=WۡqƢ>obϤMRmrwץߥEJ9Ĩڨ21sDJDE&,zƴ*.\µƵ.<V_ж#0|ַ߷&DĹL|ĺʺfμ ޿;n0Yv$5c B 6,^B ~ N\?T, Jjw EQ#Kx:?"(j}wWl}#)8PiAQxI(_l(,D,B94Yk6:ky9Nl<2w<,Ps 3Y07KOP ) ; M Q R       7 ? e f           : u     - W u   \    -.m5UW5Nfg|<Rn\!'5")DcP^evP4@fnx !!"%"9"F"G"P"X"b"c"j"}"""""""""##(#/#>#W#^#y#######$B$i$$$$%R%%%5&a&&&&'0'K''''(O(p(())*-*n***1+2++.,K,,x---[.../001H2)33445567&8D9999.:;D;;<|<e=>-@m@B6CCCCEFF^GGGHjHHiIIJKHKdLL,MMNANpNNN,QHR)SYSSSS&TTU9VpVWXX"XXYYZZ[\Z\i\\\\S]]^^|^__`ab!b2bAbkbbccddeeeCfff&gdgsgghdiijjjtk%l.m9mmmIn]nnn%pppqqrrcrzrSsssKtetJuguuvvvvx5xxxyRyyyF{|/}F}}c~~;Mi$ڀ~4^܂`w-O{\Kj{~k1S4Y4~ޑ@_tM;`'2V!ٚTUiwޞ*gOL QoХa,_lzͨ^zԫrլHIrԭ|ү 6 {?':HI[evƴʴصŶ/HxϷMe LѺ= +Yt߼^@1ѿ =)*<a6?/!yP$1fgt*6#="/&'09T]y62'Wd}vFo[lup+7aPQT W ".`OV\PYx)/\t3|)4ZPiD/b}\  "  I   B  y c@ l(9FWijKbsDg>vOPceup !!$!!"*"5"M"e""" #G### $.$G$c$d$%''***++K+L+++++#,$,k,l,,,,--=->----D....C///0;0000002131s1t11111.2`222223;3<3{3|33333;4<4T4<$$$34444434$4444434444344443444444443443444443444434344444344444$=??????$3333$3343434433434344343433444$3444343$343444434344334334443434444$34333444334443334$.BBBBBBBBB.BBBBBBBBB$3434$...$BBBBBB$4$4$4$4$$$343434343434$4DDDDDDDDDDDDDDD4BBBBBB44$44$44444333444343334$444444444444$44444DDDDDDDBBBBDD4DTTTTDTTTTTTTT44$444444$44444444444444444444444444444$44444BBBBBBBBBBBB$44444$BBBB)))$BBBB$BBBBBBCBBBBB$44444$$444$$4433444333334$444433344444333$4444$444$44433344443344$$444$4444$4444$44444$444$44$4444$4434343344433434344333334BBBB4334444D3343334D$$$$$D4$4$$$4444$$444)))))))))44$$$$44444DDDDDD444444444444D)))))))4D)))$444444444444$4444$4$$$$-)))$--))))))$$$$$$$BBBBBBBBB$$)))))$!!!$$%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&  =xoY<8 !"#$%&'()* "+BSb$eGj0oy}ˆ pR&f < e |[Dj%+D>Wdj{ShL?߿Px$0F7T7+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_/GI %=?@_{6NPQr#?WYZB^vxy !8Tlop367c?[svw+CFGUq   " > V Y Z q ' ? B C _ { ( @ C D [ w  ! 9 < = U q  * B E F _ { ),-Fbz}~ %()A]uxy7Skno6NQRx*BEFn7ORSq &>ABb~589Pl !$%7SknoqT4: 2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%D2%@2%@ !!T4, _Toc325880458 _Toc325880707 _Toc325881438 _Toc325881813 _Toc325881842 _Toc325947696 _Toc325953190 _Toc325961262 _Toc325963048 _Toc325963228 _Toc325964867 _Toc326033744 _Toc327086356 _Toc327086722 _Toc327087102 _Toc327088049 _Toc327173854 _Toc364663522 _Toc327086407 _Toc327086773 _Toc327087153 _Toc327088100 _Toc327173855 _Toc364663523 _Toc364663524 _Toc325880460 _Toc325880709 _Toc325881440 _Toc325881844 _Toc325947698 _Toc325953192 _Toc325961264 _Toc325963050 _Toc325963230 _Toc325964869 _Toc327086358 _Toc327086724 _Toc327087104 _Toc327088051 _Toc327173857 _Toc364663525 _Toc327086359 _Toc327086725 _Toc327087105 _Toc327088052 _Toc327173858 _Toc364663526 _Toc326033746 _Toc327086360 _Toc327086726 _Toc327087106 _Toc327088053 _Toc327173859 _Toc364663527 _Toc325880461 _Toc325880710 _Toc325881441 _Toc325881814 _Toc325881845 _Toc325947699 _Toc325953193 _Toc325961265 _Toc325963051 _Toc325963231 _Toc325964870 _Toc326033747 _Toc327086361 _Toc327086727 _Toc327087107 _Toc327088054 _Toc327173860 _Toc327086362 _Toc327086728 _Toc327087108 _Toc327088055 _Toc327173861 _Toc364663528 _Toc325947700 _Toc325953194 _Toc325961266 _Toc325963052 _Toc325963232 _Toc325964871 _Toc326033748 _Toc325947704 _Toc325953198 _Toc325961270 _Toc325963056 _Toc325963236 _Toc325964875 _Toc326033752 _Toc327086363 _Toc327086729 _Toc327087109 _Toc327088056 _Toc327173862 _Toc364663529 _Toc325880468 _Toc325880717 _Toc325881448 _Toc325881852 _Toc325947706 _Toc325953200 _Toc325961272 _Toc325963058 _Toc325963238 _Toc325964877 _Toc326033754 _Toc327086365 _Toc327086731 _Toc327087111 _Toc327088058 _Toc327173864 _Toc364663530 _Toc325880469 _Toc325880718 _Toc325881449 _Toc325881853 _Toc325947707 _Toc325953201 _Toc325961273 _Toc325963059 _Toc325963239 _Toc325964878 _Toc326033755 _Toc327086366 _Toc327086732 _Toc327087112 _Toc327088059 _Toc327173865 _Toc364663531 _Toc364663532 _Toc364663533 _Toc325880470 _Toc325880719 _Toc325881450 _Toc325881854 _Toc325947708 _Toc325953202 _Toc325961274 _Toc325963060 _Toc325963240 _Toc325964879 _Toc326033756 _Toc327086367 _Toc327086733 _Toc327087113 _Toc327088060 _Toc327173866 _Toc364663534 _Toc364663535 _Toc327086368 _Toc327086734 _Toc327087114 _Toc327088061 _Toc327173867 _Toc364663536 _Toc325880471 _Toc325880720 _Toc325881451 _Toc325881817 _Toc325881855 _Toc325947709 _Toc325953203 _Toc325961275 _Toc325963061 _Toc325963241 _Toc325964880 _Toc326033757 _Toc327086372 _Toc327086738 _Toc327087118 _Toc327088065 _Toc327173871 _Toc325947702 _Toc325953196 _Toc325961268 _Toc325963054 _Toc325963234 _Toc325964873 _Toc326033750 _Toc327086370 _Toc327086736 _Toc327087116 _Toc327088063 _Toc327173869 _Toc364663537 _Toc364663538 _Toc325880509 _Toc325880758 _Toc325881489 _Toc325881892 _Toc325947746 _Toc325953240 _Toc325880465 _Toc325880714 _Toc325881445 _Toc325881849 _Toc325947703 _Toc325953197 _Toc325961269 _Toc325963055 _Toc325963235 _Toc325964874 _Toc326033751 _Toc327086371 _Toc327086737 _Toc327087117 _Toc327088064 _Toc327173870 _Toc364663539 _Toc364663540 _Toc325880482 _Toc325880731 _Toc325881462 _Toc325881866 _Toc325947720 _Toc325953214 _Toc325961285 _Toc325963071 _Toc325963251 _Toc325964890 _Toc326033767 _Toc327086382 _Toc327086748 _Toc327087128 _Toc327088075 _Toc327173881 _Toc364663541 _Toc325880483 _Toc325880732 _Toc325881463 _Toc325881867 _Toc325947721 _Toc325953215 _Toc325961286 _Toc325963072 _Toc325963252 _Toc325964891 _Toc326033768 _Toc327086383 _Toc327086749 _Toc327087129 _Toc327088076 _Toc327173882 _Toc364663542 _Toc325880484 _Toc325880733 _Toc325881464 _Toc325881868 _Toc325947722 _Toc325953216 _Toc325961287 _Toc325963073 _Toc325963253 _Toc325964892 _Toc326033769 _Toc327086384 _Toc327086750 _Toc327087130 _Toc327088077 _Toc327173883 _Toc364663543 _Toc325880485 _Toc325880734 _Toc325881465 _Toc325881869 _Toc325947723 _Toc325953217 _Toc325961288 _Toc325963074 _Toc325963254 _Toc325964893 _Toc326033770 _Toc327086385 _Toc327086751 _Toc327087131 _Toc327088078 _Toc327173884 _Toc364663544 _Toc325880486 _Toc325880735 _Toc325881466 _Toc325881870 _Toc325947724 _Toc325953218 _Toc325961289 _Toc325963075 _Toc325963255 _Toc325964894 _Toc326033771 _Toc327086386 _Toc327086752 _Toc327087132 _Toc327088079 _Toc327173885 _Toc364663545 _Toc325880487 _Toc325880736 _Toc325881467 _Toc325881871 _Toc325947725 _Toc325953219 _Toc325961290 _Toc325963076 _Toc325963256 _Toc325964895 _Toc326033772 _Toc327086387 _Toc327086753 _Toc327087133 _Toc327088080 _Toc327173886 _Toc364663546 _Toc364663547 _Toc326033758 _Toc327086373 _Toc327086739 _Toc327087119 _Toc327088066 _Toc327173872 _Toc364663548 _Toc325880473 _Toc325880722 _Toc325881453 _Toc325881857 _Toc325947711 _Toc325953205 _Toc325961277 _Toc325963063 _Toc325963243 _Toc325964882 _Toc326033759 _Toc327086374 _Toc327086740 _Toc327087120 _Toc327088067 _Toc327173873 _Toc364663549 _Toc364663550 _Toc325880475 _Toc325880724 _Toc325881455 _Toc325881859 _Toc325947713 _Toc325953207 _Toc325961279 _Toc325963065 _Toc325963245 _Toc325964884 _Toc326033761 _Toc327086376 _Toc327086742 _Toc327087122 _Toc327088069 _Toc327173875 _Toc364663551 _Toc325880476 _Toc325880725 _Toc325881456 _Toc325881860 _Toc325947714 _Toc325953208 _Toc325961280 _Toc325963066 _Toc325963246 _Toc325964885 _Toc326033762 _Toc327086377 _Toc327086743 _Toc327087123 _Toc327088070 _Toc327173876 _Toc364663552 _Toc325880477 _Toc325880726 _Toc325881457 _Toc325881861 _Toc325947715 _Toc325953209 _Toc325961281 _Toc325963067 _Toc325963247 _Toc325964886 _Toc326033763 _Toc327086378 _Toc327086744 _Toc327087124 _Toc327088071 _Toc327173877 _Toc364663553 _Toc325880478 _Toc325880727 _Toc325881458 _Toc325881862 _Toc325947716 _Toc325953210 _Toc325961282 _Toc325963068 _Toc325963248 _Toc325964887 _Toc326033764 _Toc327086379 _Toc327086745 _Toc327087125 _Toc327088072 _Toc327173878 _Toc364663554 _Toc325880479 _Toc325880728 _Toc325881459 _Toc325881863 _Toc325947717 _Toc325953211 _Toc325961283 _Toc325963069 _Toc325963249 _Toc325964888 _Toc326033765 _Toc327086380 _Toc327086746 _Toc327087126 _Toc327088073 _Toc327173879 _Toc364663555 _Toc325880481 _Toc325880730 _Toc325881461 _Toc325881819 _Toc325881865 _Toc325947719 _Toc325953213 _Toc325961284 _Toc325963070 _Toc325963250 _Toc325964889 _Toc326033766 _Toc327086381 _Toc327086747 _Toc327087127 _Toc327088074 _Toc327173880 _Toc364663556 _Toc325880492 _Toc325880741 _Toc325881472 _Toc325881821 _Toc325881876 _Toc325947730 _Toc325953224 _Toc325961295 _Toc325963081 _Toc325963261 _Toc325964900 _Toc326033777 _Toc327086393 _Toc327086759 _Toc327087139 _Toc327088086 _Toc327173892 _Toc325880488 _Toc325880737 _Toc325881468 _Toc325881820 _Toc325881872 _Toc325947726 _Toc325953220 _Toc325961291 _Toc325963077 _Toc325963257 _Toc325964896 _Toc326033773 _Toc364663557 _Toc325880489 _Toc325880738 _Toc325881469 _Toc325881873 _Toc325947727 _Toc325953221 _Toc325961292 _Toc325963078 _Toc325963258 _Toc325964897 _Toc326033774 _Toc325880490 _Toc325880739 _Toc325881470 _Toc325881874 _Toc325947728 _Toc325953222 _Toc325961293 _Toc325963079 _Toc325963259 _Toc325964898 _Toc326033775 _Toc325880491 _Toc325880740 _Toc325881471 _Toc325881875 _Toc325947729 _Toc325953223 _Toc325961294 _Toc325963080 _Toc325963260 _Toc325964899 _Toc326033776 _Toc364663558 _Toc364663559 _Toc364663560 _Toc364663561 _Toc364663562 _Toc364663563 _Toc364663564 _Toc325880493 _Toc325880742 _Toc325881473 _Toc325881877 _Toc325947731 _Toc325953225 _Toc325961296 _Toc325963082 _Toc325963262 _Toc325964901 _Toc326033778 _Toc327086394 _Toc327086760 _Toc327087140 _Toc327088087 _Toc327173893 _Toc364663565 _Toc364663566 _Toc325880494 _Toc325880743 _Toc325881474 _Toc325881878 _Toc325947732 _Toc325953226 _Toc325961297 _Toc325963083 _Toc325963263 _Toc325964902 _Toc326033779 _Toc327086395 _Toc327086761 _Toc327087141 _Toc327088088 _Toc327173894 _Toc364663567 _Toc364663568 _Toc325880506 _Toc325880755 _Toc325881486 _Toc325881823 _Toc325881889 _Toc325947743 _Toc325953237 _Toc325961308 _Toc325963094 _Toc325963274 _Toc325964913 _Toc326033790 _Toc327086405 _Toc327086771 _Toc327087151 _Toc327088098 _Toc327173904 _Toc364663569 _Toc364663570 _Toc325880507 _Toc325880756 _Toc325881487 _Toc325881890 _Toc325947744 _Toc325953238 _Toc325880480 _Toc325880729 _Toc325881460 _Toc325881818 _Toc325881864 _Toc325947718 _Toc325953212 _Toc325961309 _Toc325963095 _Toc325963275 _Toc325964914 _Toc326033791 _Toc327086406 _Toc327086772 _Toc327087152 _Toc327088099 _Toc327173905 _Toc364663571 _Toc364663572 _Toc325880508 _Toc325880757 _Toc325881488 _Toc325881891 _Toc325947745 _Toc325953239 _Toc325961311 _Toc325963097 _Toc325963277 _Toc325964916 _Toc326033793 _Toc325880510 _Toc325880759 _Toc325881490 _Toc325881893 _Toc325947747 _Toc325953241 _Toc325961313 _Toc325963099 _Toc325963279 _Toc325964918 _Toc326033795 _Toc327086409 _Toc327086775 _Toc327087155 _Toc327088102 _Toc327173907 _Toc364663573 _Toc325961312 _Toc325963098 _Toc325963278 _Toc325964917 _Toc326033794 _Toc327086410 _Toc327086776 _Toc327087156 _Toc327088103 _Toc327173908 _Toc364663574 _Toc327086411 _Toc327086777 _Toc327087157 _Toc327088104 _Toc327173909 _Toc325880511 _Toc325880760 _Toc325881491 _Toc325881824 _Toc325881894 _Toc325947748 _Toc325953242 _Toc325961314 _Toc325963100 _Toc325963280 _Toc325964919 _Toc326033796 _Toc327086412 _Toc327086778 _Toc327087158 _Toc327088105 _Toc327173910 _Toc325880497 _Toc325880746 _Toc325881477 _Toc3258818 22 _Toc325881881 _Toc325947735 _Toc325953229 _Toc325961300 _Toc325963086 _Toc325963266 _Toc325964905 _Toc326033782 _Toc327086397 _Toc327086763 _Toc327087143 _Toc327088090 _Toc327173896 _Toc364663575 _Toc325880498 _Toc325880747 _Toc325881478 _Toc325881882 _Toc325947736 _Toc325953230 _Toc325961301 _Toc325963087 _Toc325963267 _Toc325964906 _Toc326033783 _Toc327086398 _Toc327086764 _Toc327087144 _Toc327088091 _Toc327173897 _Toc364663576 _Toc327086399 _Toc327086765 _Toc327087145 _Toc327088092 _Toc327173898 _Toc364663577 _Toc327086400 _Toc327086766 _Toc327087146 _Toc327088093 _Toc327173899 _Toc364663578 _Toc325880501 _Toc325880750 _Toc325881481 _Toc325881885 _Toc325880503 _Toc325880752 _Toc325881483 _Toc325881887 _Toc325947741 _Toc325953235 _Toc325961306 _Toc325963092 _Toc325963272 _Toc325964911 _Toc326033788 _Toc327086403 _Toc327086769 _Toc327087149 _Toc327088096 _Toc327173902 _Toc364663579 _Toc325880504 _Toc325880753 _Toc325881484 _Toc325881888 _Toc325947742 _Toc325953236 _Toc325961307 _Toc325963093 _Toc325963273 _Toc325964912 _Toc326033789 _Toc327086404 _Toc327086770 _Toc327087150 _Toc327088097 _Toc327173903 _Toc364663580 _Toc325947739 _Toc325953233 _Toc325961304 _Toc325963090 _Toc325963270 _Toc325964909 _Toc326033786 _Toc327086401 _Toc327086767 _Toc327087147 _Toc327088094 _Toc327173900 _Toc364663581 _Toc325880502 _Toc325880751 _Toc325881482 _Toc325881886 _Toc325947740 _Toc325953234 _Toc325961305 _Toc325963091 _Toc325963271 _Toc325964910 _Toc326033787 _Toc327086402 _Toc327086768 _Toc327087148 _Toc327088095 _Toc327173901 _Toc364663582 _Toc364663583 _Toc325880512 _Toc325880761 _Toc325881492 _Toc325881895 _Toc325947749 _Toc325953243 _Toc325961315 _Toc325963101 _Toc325963281 _Toc325964920 _Toc326033797 _Toc327086413 _Toc327086779 _Toc327087159 _Toc327088106 _Toc327173911 _Toc364663584 _Toc325880513 _Toc325880762 _Toc325881493 _Toc325881896 _Toc325947750 _Toc325953244 _Toc325961316 _Toc325963102 _Toc325963282 _Toc325964921 _Toc326033798 _Toc327086414 _Toc327086780 _Toc327087160 _Toc327088107 _Toc327173912 _Toc364663585 _Toc364663586 _Toc325880764 _Toc325881495 _Toc325881898 _Toc325947752 _Toc325953246 _Toc325964923 _Toc326033800 _Toc327086416 _Toc327086782 _Toc327087162 _Toc327088109 _Toc327173914 _Toc364663587sssssssssssss*******66666666666666666666666U7U7U7U7U7U7U7U7U7U7U7U7U7U7U7U7U7U7U78:::::::::::::::::CECECECECECECECECECECECECECECECECEKCV[[[[[[[[[[[[[[[[^gNlNlNlNlNlNlppppppppppppppppppppppppppppppu+}+}+}+}+}+}QLJLJLJLJLJLJLJLJLJLJLJLJLJLJLJLJLJmmmmmmmmmmmmmmmmmץץץץץץץץץץץץץץץץץEEEEEEEEEEEsssss&|||||||||||||||||:jwwwwwww7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7  ggggggggggggggggg##################''''''''''''''''''''''''''''''O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(O(pNXZ\qJu2};;;;;;;;;;;;;;;;;`~~~~~~~~~~~~~~~~~YYYYYYYYYYYYYYYYYY"                 \\\\\\      IIIIIIIIIIIIITTTTTTTTTTTTTTTTTcccccccccccccccce!!!!!!!!!!!!!!!!!'*************U4 %&'()*+,-. !"#$/012345<=>?@ABCDEFGHIJKL6789:;MNOPQRSTUVWXYZ[\]^_`abcdefghijlmnopqrstuvwxyz{k|}~)*+,-./0123456789      !"#$%&'(:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$&'()*+,-./0123456%7JKLMNO89:;<=>?@ABCDEFGHIPmnopqrstuvwQRSTUVWXYZ[\]^_`abcdefghijklxyz{|}~      !"#$%&'()*+,-./01)))))6*****************666666666666U7U7U7U7U7U7U7U7U7U7U7U7U7U7U7U7U79999999999999:::::::::::::::::`EKKKKKKKKKKKKKKKKK[V^ggggggggggggggggghlhlhlhlhlhlhlhlhlhlhlhl|lppppppppppppp2u}}}}}}================E^ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇqqqqqqqqqqqqqqqqqޥޥޥޥޥޥޥޥޥޥޥޥޥޥޥޥޥ+++++++++++++++++>>>>>>>>>>>>>>>>>||||||||||||||||||                 {{{{{{{{{{{{{{{{{&&&&&&&&&&&&&&&&&#''''''''''''''''''''''''''''''n(NNNNNNNNNNNN Xg\g\g\g\g\g\g\g\g\g\g\h\qfufufufufufufufufufufufuE}E}E}E}E}E}E}E}E}E}E}E}E}E}E}E}E}E}Lv~~~~~~~~~~~~~~~~ĶYYYYYYYYYYYYYYYYm-----------.................}}}}}}      IIIIbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbttttttttttttttttt#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!'*************U4 Rob TorokA:\TRUMPWSK.DOC Rob Torok(C:\WINDOWS\DESKTOP\ROB'SW~1\TRUMPWSK.DOC Rob Torok(C:\WINDOWS\DESKTOP\ROB'SW~1\TRUMPWSK.DOC Rob Torok(C:\WINDOWS\DESKTOP\ROB'SW~1\TRUMPWSK.DOC Rob Torok(C:\WINDOWS\DESKTOP\ROB'SW~1\TRUMPWSK.DOC Rob Torok(C:\WINDOWS\DESKTOP\ROB'SW~1\TRUMPWSK.DOC Rob Torok(C:\WINDOWS\DESKTOP\ROB'SW~1\TRUMPWSK.DOC Rob Torok(C:\WINDOWS\DESKTOP\ROB'SW~1\TRUMPWSK.DOC Rob TorokA:\TRUMPWSK.DOC Rob TorokC:\DRHELP\TRUMPWSK\TWSK30W6.DOC@TI microLaser PS35LPT1:PSCRIPTTI microLaser PS35 WD[ 5d, XZZeTI microLaser PS35 WD[ 5d, XZZerrrrmTimes New Roman Symbol &Arial Tms Rmn Times5Courier New"Helvetica"h]sf]sf/*I/*I$c)C:\MSOFFICE\WINWORD\TEMPLATE\TRUMPWSK.DOTTrumpet Winsock Help Rob Torok Rob Torokࡱ;