________________________________________________ Instructions for Installing the Trumpet Winsock. Trumpet Winsock will only run on your PC under the following conditions. You must have either a packet driver available for use by network programs, or if you wish to use SLIP, a free comms port. Additionally, packet drivers can only be used reliably under enhanced mode using winpkt. Standard mode can be used, but care must be taken to avoid system crashes. NDIS and ODI can be supported using packet driver shims. PKTMUX may also be used instead of winpkt, but must be version 1.2c or later. If you already have some kind of TCP/IP networking package installed, it is most likely that the Trumpet Winsock will not run and you will have to massage your system configuration to install the Trumpet Winsock, possibly even to the extent of uninstalling that networking package. There may also be a Winsock available for your package in which case the Trumpet Winsock will not be required. ______________________________________________ Installing Trumpet Winsock over Packet Driver. Firstly, if you don't know what a packet driver is, it is normally a small piece of software which sits in between your network card and your tcp program. This provides a standard interface that many programs can use in a similar manner to bios calls. In fact, the application uses software interrupts to communicate with the packet driver. Why is it called a packet driver? This is because modern networks send information using packets of information rather than sending information one byte or character at a time. For example, ethernet sends information in frames of up to 1514 bytes long. The reason for sending things in packets is that information can be transmitted much more efficiently in packets. Central to the concept of the packet driver is the vector which is used to communicate with it. The 80x86 family of processors allows programs to communicate with the operating system through what is called a "software interrupt", which always have 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 operating system under MS-DOS. Usually the vectors are in hexadecimal, making the range expressed as 0x00 to 0xFF. The 0x in front of the number means that we are using hexadecimal numbers instead of decimal numbers. They may also be expressed in the notation 00H to FFH, or $00 to $FF. If you are dealing with packet drivers, hexadecimal notation is much more common, but occasionally they are expressed in decimal. Examples of software interrupts in use on PC's are 0x10 for the video bios, or 0x21 for calls to DOS. Packet drivers are only allowed to have a software interrupt vector in the range 0x60 to 0x7F. Normally, you will pick 0x60 as the default place to install your packet driver, but certain machine configurations may make that vector unavailable. Just choose one that is free - the packet driver should tell you if you can use it or not. The Trumpet Winsock also uses a special virtual packet driver "wrapper" which enables your packet driver to function correctly in Windows. While the packet driver is an efficient way to communicate with your network card, it will not work correctly from Windows without a little assistance. The program "winpkt" was written by some clever people on the Internet to allow a packet driver to work correctly within Windows by making sure that packets get directed to the correct "virtual machine" under Windows enhanced mode. A "virtual machine" can be either the entire Windows session, or any dos session active within windows. Refer to the Windows documentation for more details. In addition to this, you will need to have some understanding of IRQ vectors and I/O addresses that may be relevant to installing your network card. ______________________________________ Where do I obtain packet drivers from? These days, packet drivers are usually provided with your network card, but a comprehensive collection of public domain packet driver can be obtained from a packet driver collection called the "Crynwr Packet Driver Collection." Information on where to get this packet driver collection from is provided as an appendix to this document. ________________________________ Actually Installing the Winsock. Before you do anything, copy the files winsock.dll, tcpman.exe, winpkt.com, hosts, services and protocol to a suitable directory. eg. c:\trumpet the essential files: winsock.dll the guts of tcp/ip driver tcpman.exe interface program for setting up the winsock winpkt.com virtual packet driver interface for windows hosts list of host names services list of internet services protocol list of internet protocols Modify the path line in your autoexec.bat to contain a reference to that directory. eg. path c:\dos;c:\windows;c:\trumpet Make sure it is active by rebooting or executing autoexec.bat again. The most basic setup of packet driver and winpkt would look something like this : ne2000 0x60 2 0x300 winpkt 0x60 The first line installs an NE2000 packet driver on vector 0x60 using IRQ 2 and I/O address 0x300 The second line installs the winpkt virtual packet driver using the same vector that the ne2000 packet driver was installed on. Your mileage will of course vary. Some example configurations are described later in this document. Choose the one which suits you the best and modify it to your requirements. Now you are ready to start windows. Start it up!! From windows, start up tcpman. From the file manager, go File/Run, and then "tcpman". If this fails, the path is probably not set up correctly, so fix it. Later on, you can install it as an icon to use it directly. Assuming you are a first time user, a setup screen will appear giving you a number of options to fill in. You will need to fill in a few details to enable the tcp package to function. Fill in the following details. 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. IP address your internet IP address, "bootp", or "rarp". lower case please. Netmask your internet network mask. (eg. 255.255.0.0) Default Gateway your default internet gateway. (IP address) Name server your name server IP address for DNS searches. You may provide more than one address by separating the addresses with spaces. (IP addresses only) Time server at present unused - future winsock api's may support this. (IP addresses only) Domain suffix a space separated list of domain suffixes to be used when resolving names in the DNS system. Packet Vector either leave this as 00 to search for the packet driver, or the vector that you installed the packet driver under. The number is required in hexadecimal without the leading "0x". In our example, you would provide "60". (numeric) MTU Maximum Transmission Unit. (numeric) TCP RWIN TCP Receive Window (numeric) TCP MSS TCP Maximum Segment Size (numeric) The rest of the details should be greyed out and you need not try to fill them in. The Internal slip check box should not be checked. The first four parameters and the packet vector are required for successful functioning of the winsock, while the rest can be tailored to suit your needs. When you are done, click on and if all goes well, the Trumpet Winsock will be initialized. You are now ready to start using the winsock. __________________________________ What to do if something goes wrong Firstly... The Trumpet Winsock requires that your have the correct combination of tcpman.exe, winsock.dll and winpkt.com. When upgrading to a new release, replace each of these files to be sure that everything is up to date. If you get the messages about not finding a packet driver or unable to load tcp, then check that the packet driver loaded properly, that winpkt managed to find it, and that the correct vector was chosen from tcpman. At the moment, only ethernet and slip packet driver types are supported. Token ring is only available via the ibmtoken packet driver, and should work, but is untested by the author. ODI is supported via the ODIPKT shim, and NDIS via the DIS_PKT shim. examples are provided later on. Also, examples are provided of installation using NetWare. Possible causes for tcpman load errors specific to packet drivers. unable to bind protocol 0806 another tcp stack is using the packet driver.. remove it. winpkt or pktdrv not found couldn't find the correct packet driver. Also check the vector number in TCPMAN. unable to allocate network buffers critical error... try to free up some special driver memory by removing windows device drivers. network buffers low not critical but unadvisable.. see above If winpkt can't load (No packet driver found), check your packet driver vector number. Some drivers may choose a default vector which is not at 0x60. e.g. ODIPKT default is 0x69 Anything else... contact me.. I'll try to figure out what's wrong, but first browse the samples provided. _____________________________________________ Installing Trumpet Winsock over Internal SLIP SLIP is a simple protocol which allows an Async serial connection to send Internet Protocol (IP). You usually need to have access to a server which can understand SLIP. Usually, SLIP is accessed via a phone line, and with the advent of high speed modems, TCP/IP is a reality over a dial-up connection. The Trumpet Winsock has facilities for managing a SLIP connection as well as the ability to use dialling scripts for logging in and out of your SLIP server. ________________________________ Actually Installing the Winsock. Before you do anything, copy the files winsock.dll, tcpman.exe, hosts, services and protocol to a suitable directory. eg. c:\trumpet the essential files: winsock.dll the guts of tcp/ip driver tcpman.exe interface program for setting up the winsock hosts list of host names services list of internet services protocol list of internet protocols Modify the path line in your autoexec.bat to contain a reference to that directory. eg. path c:\dos;c:\windows;c:\trumpet Make sure it is active by rebooting or executing autoexec.bat again. Now you are ready to start windows. Start it up!! From windows, start up tcpman. From the file manager, go File/Run, and then "tcpman". If this fails, the path is probably not set up correctly, so fix it. Later on, you can install it as an icon to use it directly. Assuming you are a first time user, a setup screen will appear giving you a number of options to fill in. You will need to fill in a few details to enable the tcp package to function. Fill in the following details. 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. Firstly, click on Internal Slip. Some of the parameters will be greyed and others ungreyed. IP address your internet ip address, "bootp", or "rarp". lower case only. Name server your name server IP address for DNS searches. You may provide more than one address by separating the addresses with spaces. (IP addresses only). Time server at present unused - future winsock api's may support this. (IP addresses only). Domain suffix a space separated list of domain suffixes to be used when resolving names in the DNS system. MTU Maximum Transmission Unit. Related to TCP MSS... usually TCP MSS + 40. (Numeric) TCP RWIN TCP Receive Window. It is recommended that this value be roughly 3 to 4 times the value of TCP MSS. (Numeric) TCP MSS TCP Maximum Segment Size, It is recommended that this be a smallish value when using SLIP - say 512 bytes for SLIP and lower for CSLIP. CSLIP is able to compress data more efficiently when it is less than 255. (numeric) Slip port your comms port number ..1=com1, 2=com2 etc. (numeric) baud rate the speed you wish to run at. (numeric) hardware handshake recommended for external modems. compressed slip if your server will support it. You may also have to adjust mtu, mss & rwin. to be suitable. The rest of the details should be greyed out and you need not try to fill them in. When you are done, click on and if all goes well, the Trumpet Winsock will be initialised. You are now ready to start using the winsock. _________________________ Logging in to the server. You can use either the manual login or the automatic scripting to access your server. For the time being, choose manual and log into your server with the appropriate commands. Use the key to get out. If you wish to use another terminal program to dial in to the server, don't forget to issue AT&D0, or disable DTR dropping when exiting the program, or the connection will be severed when the application closes the comms port. Try out pingw to see if all is well. ________ Problems Check your baud rates... if using hardware hand shaking with an external modem, make sure the cable is correctly wired. Internal modems may not require hardware hand shaking because the comms ports are actually simulated and are If all else fails... contact me !! Once you have determined your login sequence, you can set up a login script. A sample script is provided along with a listing of a typical session. ___________________ Automatic dialling. Minimal scripting is supported, and the script commands are input wait for string received. output send string. display display string on display. wait { DSR | CTS | RLSD} wait for DSR or CTS or RLSD trace ( on | off ) echo (on | off) password message box for password username message box for username address parse ip address set (DTR | RTS) (on | off) sleep exec program will be started up concurrently using winexec(). online enter slip mode. commands depending on received characters will not work correctly after this command is issued since the winsock will interpret data as SLIP frames. Useful before an exec command which uses the winsock. # means start comment except inside string string arguments \l line feed \r return \n cr/lf pair \f form feed \t tab \b backspace \nnn ascii value in decimal \i ip address \p password \u username \c comm port number (as you have configured it) a sample script is given for logging in to our Xylogics terminal server. output atz\13 input 10 OK\n #output atd242284\13 output atd241644\13 input 30 CONNECT input 30 \n wait 30 dsr output \13 input 30 username: output tattam\13 input 30 password: password Enter your password output \p\13 input 30 > output who\13 input 30 > output slip\13 input 30 Your address is address 30 input 30 \n display \n display Connected. Your IP address is \i.\n exec pingw tasman Here's a log of a typical session. Names have been blanked out for security. Trumpet Winsock Version 1.00 Alpha #18 Copyright (c) 1993 by Peter R. Tattam All Rights Reserved. SLIP ENABLED Internal SLIP driver COM3 Baud rate = 38400 Hardware handshaking My ip = 131.217.8.4 netmask = 255.255.0.0 gateway = 131.217.250.1 Executing script c:\dev\tcpip\winsock\login.cmd SLIP DISABLED atz OK atd241644 CONNECT 38400 Annex Command Line Interpreter * Copyright 1991 Xylogics, Inc. Checking authorization, Please wait... Annex username: xxxxxx Annex password: Permission granted University of Tasmania AARNet Terminal Server SLIP users: Use a maximum segment size (MSS) of 209 and a maximum transmission unit (MTU) of 255. Async AppleTalk users: Configure MacTCP to use the Computing Centre zone. *** Note change in procedures for starting async AppleTalk. *** After typing atalk you will be prompted for your password *** again. AARNET TS5 >who Port What User Location When Idle Address 2 CLI xxxxxxxx --- 8:01pm [local] +1 'telnet tasman.cc' 3 CLI xxxxxxxx --- 8:15pm [local] +1 'rlogin franklin.cc' 4 SLIP modem4 --- 8:19pm ants 5 CLI xxxxxxxx --- 8:34pm [local] 6 CLI xxxxxxxx --- 7:19pm [local] +1 'rlogin baudin.cc' 17 SLIP modem18 --- 6:39pm ants AARNET TS5 >slip Switching to SLIP. Annex address is 131.217.250.10. Your address is 131.217.8.5. Connected. Your IP address is 131.217.8.5. Script completed SLIP ENABLED ___________________________ For problems, contact me at peter@psychnet.psychol.utas.edu.au, or tattam@postoffice.utas.edu.au ________________________________________ Sample Configurations for Packet Driver. 1. Plain ne2000 packet driver using winpkt. ne2000 0x60 2 0x300 winpkt 0x60 2. Ne2000 packet driver with Novell NetWare access using winpkt. Important is the specification of the -n switch of the packet driver. Some packet drivers don't support this switch. In that case, you may be forced to use ODI instead. An example could be the Xircom Pocket Adapter. ne2000 -n 0x60 2 0x300 winpkt 0x60 pdipx netx path c:\dos;c:\network\win31 f: login 3. Ne2000 packet driver with Novell Netware access using pktmux. Notice that winpkt is not required since pktmux does a similar job. ne2000 -n 0x60 2 0x300 pktmux 4 pktdrv pktdrv pktdrv pktdrv pdipx netx path c:\dos;c:\network\win31 f: login 4. ODI setup with NetWare access. You will need ODIPKT. The latest known release is 2.4 It is important that ODIPKT reference the correct protocol for IP access. This can be specified as the first parameter to ODIPKT (0=1st, 1=2nd and so forth) Here's a sample of my network attach batch file. @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 Also, your net.cfg must be suitably configured. Here are the relevant excerpts from my net.cfg 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 The ordering of the frame protocols is important for the default setup of odipkt. Also, users should be aware that there are two versions of odipkt, one released I believe by FTP Software, and the public domain one. I refer to the public domain version. Also note that there are two programs with the same name of "ne2000.com". One is a packet driver and is referred to in an earlier section. The one referred to in this section is actually an ODI driver and won't function as a packet driver at all. 5. NDIS & Windows for Workgroups setup. (courtesy of Peter Whisker, WhiskerP@LGWCT.LOGICA.COM) Installation of Trumpet Winsock makes use of the DIS_PKT9.DOS or DIS_PKT.DOS shims which provide a Packet Driver interface the NDIS. The version I have tested is found on a number of sites as DISPKT11.ZIP, and contains DIS_PKT.DOS dated 28/4/93. The example is based upon an actual configuration using DEC Pathworks version 4.1 (DECNET version) with a DEPCA Ethernet card. This installation assumes that you have NDIS up and running and have a valid PROTOCOL.INI file. You need to perform three basic steps: Load the DIS_PKT driver in CONFIG.SYS following the load of PROTMAN.SYS: DEVICEHIGH=\DECNET\PROTMAN.SYS /I:C:\DECNET DEVICEHIGH=\DECNET\DEPCA.DOS DEVICEHIGH=\DECNET\DIS_PKT.DOS Add a few lines to PROTOCOL.INI (here labelled [PKTDRV]) in order to bind it to the Ethernet driver. In this example, DIS_PKT.DOS is configured with packet vector 60. [DEPCA.DOS] DRIVERNAME = DEPCA$ . . . [PKTDRV] DRIVERNAME = PKTDRV BINDINGS = DEPCA.DOS INTVEC = 0x60 In AUTOEXEC.BAT, load WINPKT or PKTMUX as described in examples 2 and 3 above. This should be done _____ after the NETBIND command in your NDIS startup has been executed. In the case of Pathworks, this command is normally contained in STARTNET.BAT. For example: call \decnet\startnet.bat winpkt 0x60 6. Some more packet driver installations courtesy of Ashok Aiyar (ashok@biochemistry.bioc.crwu.edu) ___________________________________________ Configuration for Cabletron Network Cards. The packet driver provided by Cabletron is a little confusing as it doesn't use the same parameters as packet-drivers that use the Crynwr skeleton. Typically the Cabletron driver is loaded as: "csipd_e /s:62 /h:7 /p:300" In this example the software interrupt is 0x62. Load WinPKT.COM as "winpkt 0x62" Release 11 of the Crynwr packet drivers includes a driver for Cabletron cards written by Kai Getrost using the Crynwr skeleton that uses the same parameters as the other Crynwr drivers. This driver (CTRONDNI.COM) seems to work well with E1020/1040 and E2020 Cabletron cards. Indeed I see a performance gain over the Cabletron driver. Your mileage may vary. _____________________ C/SLIPPER with PKTMUX. Although the Trumpet Winsock has built in support for C/SLIP, there are situations when in addition to Winsock applications there is a need to run packet driver applications simultaenously over a SLIP link. For such situations, PKTMUX is of utility. Example: CSLIPPER vec=65 com1 irq=04H baud=57600 ether PKTMUX 4 65 /4 .... (support for a maximum of 4 virtual packet drivers) PKTDRV 60 65 Configure the Trumpet Winsock to use the virtual packet driver at 0x60. All other virtual packet drivers (PKTDRV) can be loaded in the DOS Windows in which they are used. They need not be loaded before entering Windows. (Ed. Note... You may also require the use of a special comms buffer to enhance the buffering capabilities of Windows when using slipper/cslipper. An FAQ on doing this is available from biochemistry.bioc.cwru.edu via gopher or FTP. It is not needed when using the internal SLIP functions of the Winsock) __________ Extra Info You may use environment variables or command line options to override some of the network parameters. They have the same names as the saved parameters in trmpwsk.ini. This file normally resides in the winsock directory rather than the windows directory since this facilitates setting up the winsock in a networked environment. IP addresses can be overridden by using the environment variables, or the command line. example of command line. tcpman -ip=123.231.213.123 -netmask=255.255.255.0 example of environment variable set ip=123.231.213.123 set netmask=255.255.255.0 Here's a list of parameters. ip/myip your ip address or 'bootp' or 'rarp' (lower case only) netmask your netmask. e.g. 255.255.0.0 gateway/mygatewayyour gateway (IP address) dns list of DNS IP addresses time list of time server IP addresses domain list of domain name suffixes vector packet driver vector in hex mtu Maximum Transmission Unit rwin TCP Receive Window. mss TCP Maximum Segment Size slip-enabled 0 = off, 1 = on slip-port port number (1-9) slip-baudrate baud rate in decimal slip-handshake 0 = off, 1 = on slip-compressed 0 = off, 1 = on ___________________________________ The Crynwr packet driver collection Availability The Crynwr packet driver collection is available by mail, by FTP, by email, by UUCP and by modem. The drivers are distributed in three files: drivers.zip, which contains executables and documentation, drivers1.zip, which contains the first half of the .ASM files, and drivers2.zip, which contains the second half of the .ASM files. Mail: Columbia University distributes packet drivers by mail. The formats are 9-track 1600 bpi tapes in ANSI, tar, or OS SL format, or PC diskettes (360K 5.25" and 720K 3.5"). The exact terms and conditions have yet to be worked out, please call (212) 854-3703 for ordering information, or write to: Kermit Distribution, Dept PD Columbia University Center for Computing Activities 612 West 115th Street New York, NY 10025 or send e-mail to kermit@watsun.cc.columbia.edu (Internet) or KERMIT@CUVMA (BITNET/EARN). FTP/email: The packet driver collection has its own directory devoted to it, pd1:. The drivers are there, along with many free programs that use the packet drivers. SIMTEL20 files are also available from mirror sites OAK.Oakland.Edu (141.210.10.117), wuarchive.wustl.edu (128.252.135.4), ftp.uu.net (192.48.96.9), nic.funet.fi (128.214.6.100), src.doc.ic.ac.uk (146.169.3.7) or rana.cc.deakin.oz.au (128.184.1.4), or by e-mail through the BITNET/EARN file servers. Modem: If you cannot access them via FTP or e-mail, most SIMTEL20 MSDOS files, including the PC-Blue collection, are also available for downloading from Detroit Download Central (313) 885-3956. DDC has multiple lines which support 300/1200/2400/9600/14400 bps (103/212/V22bis/HST/V32bis/V42bis/MNP). This is a subscription system with an average hourly cost of 17 cents. It is also accessable on Telenet via PC Pursuit and on Tymnet via StarLink outdial. New files uploaded to SIMTEL20 are usually available on DDC within 24 hours. CD-ROM: Public, private or corporate institutions and libraries interested in the SIMTEL20 MSDOS collection in CD-ROM format bundled with library card-catalog type access and duplication software can contact Coyote Data, Ltd. by mail at 1142 N. Main, Rochester, MI 48307 or by FAX at (313) 651-4071. UUCP: The packet driver files are available from UUNET's 1-900- GOT-SRCS, in uunet!~/systems/msdos/simtel20/pktdrvr. See UUNET.DOC for details. _________________________________ Trumpet General Discussion Group. You may also join the new Trumpet mailing list by sending a message to listproc@petros.psychol.utas.edu.au with just one line in the body. subscribe trumpet-user Your Full Name Where "Your Full Name" should be replaced by your actual full name. The list is called trumpet-user@petros.psychol.utas.edu.au and is running on a 486/50 FreeBSD system. Hopefully it will cope ;-) You can ask questions, or discuss any aspect of any Trumpet program on this group. Feedback is always welcome. ________________ Bugs or Comments Send to peter@psychnet.psychol.utas.edu.au (preferred) or tattam@postoffice.utas.edu.au For bug reports, please send a copy of config.sys, autoexec.bat, trumpwsk.ini, and any other relevant network configurations. In the case of ODI, also send net.cfg. I'll do my best to sort out your problem.