FreeTCP v2.00

With the contents of this FreeTCP zip file, you can use the Internet Access Kit (IAK) included with regular (non-Connect) Warp on your Local Area Network. In order words: it allows you to use your Ethernet adapter (Token Ring cards too), which is normally impossible with this version of Warp.

Index


Introduction

With FreeTCP you won't have to buy extra networking software such as Warp 4, Warp Connect  or Lantastic (not sold anymore) if you want to make use of your Ethernet card (FreeTCP should work with Token Ring cards too). Although Connect and Lantastic are not bad at all, you may not want to spend more money. And perhaps you don't even need the full functionality of these products (such as Peer-to-Peer connectivity and TCP/IP server daemons, so that people can logon to your PC running TELNETD etc.). The solution contained in this archive works great for people on a budget, such as students with Ethernet in their dorms.

What we want to do is pass TCP/IP packets to the network driver instead of the serial port. PC-Lube & Tune gives a graphical display of it. Warp needs a couple of files to make this happen. Some of these files -- buried in several ZIP and Self Extracting archives -- can be found on Microsofts' FTP server (of all places!), others are up on Hobbes or Walnut Creek. In FreeTCP.ZIP you'll find the most relevant files so you won't have to go through the hassle of downloading, extracting, installing and deleting a couple of megabytes.


Legal matters

Before you continue with this documentation, please read the following and then decide if you want to use FreeTCP at all.

To my knowledge, the software included does NOT violate any licence agreements or copyright laws. You can check that for yourself since I've included the original licences in \FREETCP\LICENCES. There's no need for FTP site administrators or BBS sysops to delete this archive.

But there's a catch.

You need one other file which isn't included in FREETCP.ZIP: IFNDIS.SYS. This is a bugfix (CSD in IBM lingo) for IBM TCP/IP 2.0. The CSD can be found on almost every OS/2 FTP site or OS/2 BBS around the globe (I'll give exact locations later on). But you're only allowed to use it if you are a licensed owner of that software. At least, that is what my common sense tells me. The licence on IBM's FTP site (there was no licence included with the CSD itself) is not very clear. Again, FREETCP.ZIP itself is not illegal.

If you are a licensed owner of IBM TCP/IP 2.0, Warp Connect, Lantastic etc., FREETCP.ZIP is probably not very useful to you. After all, you're already able to connect to your LAN.

If you are not a licensed owner and you do NOT want to violate any copyright laws, then don't use this archive file. You are not violating any laws by having this archive file, but it is useless without the CSD. I do respect your honesty. If you still want to get on the net, buy Warp Connect (or else download Linux for example, it's free).

If you are not a licensed owner and you...

...then this stuff is for you. It's strictly your own decision if you want to use/download the CSD or not. I do not encourage or discourage you to do so.

A copy of TCP/IP 2.0 was donated to me so I myself am using IFNDIS.SYS legally.

Disclaimer

JACCO DE LEEUW DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. JACCO DE LEEUW SHALL NOT BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING DIRECT, INDIRECT, CONSEQUENTIAL, INCIDENTAL, LOST PROFITS OR INFORMATION, BUSINESS INTERRUPTION, OR OTHER PECUNIARY LOSS, EVEN IF JACCO DE LEEUW HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. BECAUSE SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE LIMITATION MAY NOT APPLY TO YOU.

I stole this disclaimer from Microsoft. They are very good at making disclaimers :-). See the disclaimer on my homepage.

Back to top


Changes from the previous release

These instructions are now in HTML (Web) format. An ASCII version is still included but you'll find the HTML version much easier to use. You need an HTML browser (WebExplorer, Netscape, Lynx, etc.) though. The instructions have been updates but the included binaries haven't. So if you already have FreeTCP working you won't need to change anything. However, I found there's a big performance gain if you also use a couple of other files from the CSD (see below).

Back to top


Installation

For simplicity, I assume in the following that your boot partition is C: and you put the contents of this archive in C:\FREETCP. Change that if your situation is different. Use Info-ZIP's UNZIP, or PKWare's PKUNZIP2 with parameter -D, to unzip the archive with the original paths.

In short, here's what you'll have to do:

  1. Install the Internet Access Kit (IAK), if not already done.
  2. Get IFNDIS.SYS
  3. Get an NDIS driver for your network card and put it in C:\FREETCP\BIN
  4. Configure the interrupt, DMA, I/O address etc. for your network card in C:\FREETCP\BIN\PROTOCOL.INI
  5. Add C:\FREETCP\CONFIG.ADD to your \CONFIG.SYS and edit it
  6. Edit C:\FREETCP\BIN\LANSTART.CMD
  7. Make a shadow of C:\FREETCP\BIN\LANSTART.CMD in your startup folder
  8. Reboot (keep an eye on error messages during startup)
  9. Add an entry in the Dialer ('Dial Other Providers')
  10. "Dial" your entry so that the correct configuration files will be set up
  11. Start using TCP/IP apps and get on the net!
If you are setting up this stuff for the first time, I suggest you skip steps 7, 9..11 and put a REM before the line RUN=C:\FREETCP\BIN\NETBIND.EXE in your CONFIG.SYS. This allows you to open an OS/2 window and execute NETBIND.EXE and LANSTART.CMD manually. Should something go wrong then, there's more chance you will see an error message. If you don't get any errors, you can continue with the steps you skipped.

Back to top


  1. Install the IAK 
  2. If you haven't done it already, install the Internet Access Kit (also called Internet Connection for OS/2) from the BonusPak.

    Back to installation overview


  3. Get IFNDIS.SYS There's one file missing in this archive and FreeTCP won't work without it: IFNDIS.SYS. It's about 32 Kb big and you can find it in so-called CSDs (= bugfixes) for IBM TCP/IP 2.0. The official CSD involves 4 files/disks of which only the last one is needed. This file is called TCP20C4.EXE and it is about 1 Mb.  
  4. The files TCP20Cx.EXE contain the most complete update (e.g. new versions of the IBM TCP/IP 2.0 applications are also included) but they do not contain the most recent version of the TCP/IP implementation ('stack'). This update is available seperately and it is significantly smaller, only about 300 Kb. If you don't mind using 6 controversial files instead of just one (IFNDIS.SYS), you can download and install this latest version of the TCP/IP stack. The most important advantages of this one are that the TCP/IP performance is more than 8 times better and SET USE_HOSTS_FIRST=1 is supported (see below for more on this).

    First, where to get those CSDs and how to install the files you need? I'll start with the latest TCP/IP stack. You can find it on ftp://ftp.software.ibm.com/ps/products/tcpip/fixes/v2.0os2/latest/stack/. Extract the executable to a directory by executing the program. The resulting files have to be copied to TCP/IP system directories. A problem is that some of these system files are in use when Warp is booted (you get a SYS0005). You have to reboot and start OS/2 in command line mode by pressing Alt+F1 when the white dot appears in the top left corner. When the menu is displayed press C. Now it is possible to copy the files you extracted from the archive file. You have to copy IFNDIS.SYS and INET.SYS to \TCPIP\BIN. And SO32DLL.DLL, TCP32DLL.DLL and TCPIPDLL.DLL go to \TCPIP\DLL. Reboot when the files have been installed.

    Only if you prefer to use only the IFNDIS.SYS from TCP20C4.EXE instead, read the following. You can find the file for example on http://hobbes.nmsu.edu/cgi-bin/h-search?key=tcp20c4. See the end of this document for more FTP locations. You can find the CSD sometimes on OS/2 shareware CDs, for instance on the March '95 Hobbes CD it's located in \32BIT\TCPIP\TCP20C4.EXE. Sometimes the files are called TCP20Cx.ZIP such as on the "OS/2 Software Hits" CD that IBM gave away in Europe. Next, you'll have to extract the only file needed, IFNDIS.SYS. I've written a command file, EXTRACT.CMD located in C:\FREETCP\BIN, which should do the trick for you (Info-Zip's UNZIP.EXE needs to be in the path). EXTRACT.CMD needs one parameter, the (path and) filename of TCP20C4.EXE. For instance, if you have the Hobbes CD on F:, go to the directory C:\FREETCP\BIN and execute EXTRACT F:\32BIT\TCPIP\TCP20C4.EXE. This will put IFNDIS.SYS in the current directory. If the CSD is called TCP20C4.ZIP use EXTRACT2.CMD.

    Back to installation overview


  5. Get an NDIS driver 
  6. An NDIS driver is a piece of software which provides a standard interface to network cards. This means that makers of networking software can write to the NDIS standard and do not have to worry about each and every network card.

    You'll need an OS/2 NDIS driver for your network card. You can use the one which was supplied with your card (if you're lucky). You can recognize the driver by its *.OS2 extension. In most cases, it is located in the directory \MSLANMAN.OS2 (or one of its subdirectories) on the driver disk supplied with your network card. Or if you downloaded a zipfile with drivers from the Internet, look in that zipfile. Copy the driver to C:\FREETCP\BIN. If you can't find a driver, you may look for one on Hobbes or elsewhere. You can also use Chuck McKinnis' NICPAK, which is a collection of various NIC (Network Interface Card) drivers and a tool for detecting and installing them. If you run OS/2 within a PC emulator such as VMWare or VirtualPC, you may need to use the Intel / DEC 21140 driver.

    For your convenience, I decided to include drivers for the 2 most popular network cards, the NE2000-compatibles (ftp://hobbes.nmsu.edu/old/os2/drivers/ne2000wc.zip) and the 3Com EtherLink III. Especially NE2000 clones are inexpensive and very common among home users, students, etc. Vendor supplied OS/2 drivers for NE2000 clones are often buggy and/or slow. Since many people have reported success with the driver included in this FreeTCP distribution, I recommend using this one instead. You won't have to waste time struggling with your own driver and looking for a better one. You can find both drivers in C:\FREETCP\BIN\

    DON'T use the NE2000 driver included in the Microsoft LAN Manager archive (NE2000.OS2, devicename MS2000$) since it is buggy as hell! (What else would you expect, huh? :-). There are known problems with LAN Manager and some network cards (mainly Token Ring). Since FreeTCP uses a couple of files from the LAN Manager, these problems might apply for FreeTCP as well. For a list, see Hobbes for instance.

    Token Ring cards should be supported. I received one report from a guy who said he got it working. If it works for you too, please let me know.

    I haven't tried the Parallel port NDIS driver, but I guess it could be used to connect two machines without network cards. You can find it on Hobbes.

    Back to installation overview


  7. Edit PROTOCOL.INI 
  8. You have to configure some settings (interrupt, DMA, I/O address etc.) for your network card in C:\FREETCP\BIN\PROTOCOL.INI. The one I included with FreeTCP has 4 "sections": [PROTMAN_XIF], [TCPIP_XIF], [NS2000_NIF] and [ELNK3_NIF].

    You'll have to add a section for your own particular network card. If you use the driver for the EtherLink III or the driver for the NE2000-compatibles (both already included in C:\FREETCP\BIN), you don't have to add a section to the PROTOCOL.INI. They are already there: [NS2000_NIF] and [ELNK3_NIF].

    If you had to use your own OS/2 NDIS driver then you do need to add a new section to the PROTOCOL.INI. Look on the driver disk supplied with your network card (or in the zipfile if you downloaded the driver from Internet). One of the subdirectories of LANMAN.OS2 should contain an example PROTOCOL.INI file which you can use as a starting point. Don't copy it in whole over the PROTOCOL.INI I included in C:\FREETCP\BIN. You only have to copy and paste the relevant section which deals with the network card itself.

    Now edit the section for your network card in C:\FREETCP\BIN\PROTOCOL.INI. If you have an NE2000 clone for example, you'll need to specifify the Interrupt (IRQ) and the I/O base address. In the PROTOCOL.INI included with this archive, I have set these to IRQ 10 and IOBASE 300 in the [NS2000_NIF] section. Of course, they have to agree with the settings of your network card. In many cases, you set the IRQ and I/O base with jumpers on the card. Newer cards do not have jumpers on them, you have to use a DOS configuration program to change settings.

    If you have an EtherLink III however, generally you don't have to edit the [ELNK3_NIF] section since this card is 'self-configuring'. It finds the IRQ and I/O base on its own.

    The example PROTOCOL.INI on your network card's driver disk usually contains a description of all the "keywords" you can use for the network card's section. You can change the settings if it is needed. Since every network card is different, I can't really tell what to do, but in many cases the default settings should work.

    Next, you have to tell the 'Protocol Manager' to which NDIS driver the TCP/IP stack has to forward or receive packets to/from: it has to "bind" the [TCPIP_XIF] section to the NDIS driver section of your choice. The PROTOCOL.INI I included with FreeTCP is configured to use the EtherLink III driver. If you want to use the driver for NE2000-compatibles, just change the [TCPIP_XIF] section as follows:

    [TCPIP_XIF]
      DRIVERNAME = TCPIP$
      BINDINGS = "NS2000_NIF"
    If the section for your network card is called [BLAHBLAH_NIF], then change the BINDINGS line in the [TCPIP_XIF] section to: BINDINGS = "BLAHBLAH_NIF"

    You don't have to change the [PROTMAN_XIF] section.

    Back to installation overview


  9. Edit CONFIG.SYS 
  10. Before you continue, please make a safety backup of your OS/2 CONFIG.SYS. An error in the CONFIG.SYS should not keep the system from booting. In most cases, you will be able to press Enter and then the boot process continues. However, it's better to be safe than sorry. So, should you not be able to boot normally, you can restore the backup copy of your CONFIG.SYS. (You do that by pressing Alt+F1 when the small white block appears at the upper left corner of the screen, just before the OS/2 logo appears. Then you get the Recovery Choices screen. Press 'C' to go to an OS/2 command line. Now you can COPY the backup CONFIG.SYS over the current CONFIG.SYS).

    Ok, you need to edit the CONFIG.SYS of OS/2. As a starting point, have a look at C:\FREETCP\CONFIG.ADD. You can copy lines to your own CONFIG.SYS and then edit them from there.

    First of all, C:\FREETCP\BIN should be added to both your PATH and DPATH. Next, copy everything between the lines marked Begin and Endto your CONFIG.SYS. Modify them if you installed FreeTCP in a different path than C:\FREETCP. You might want to REM out the line with the RUN=C:\FREETCP\BIN\NETBIND.EXE so that you can run it from a command line instead. This allows you to see error messages. Later on, when everything works, you can remove the REM again.

    In the CONFIG.ADD example, the INET.SYS from the IAK is loaded. See step 1 about this.

    Next, put in a DEVICE= entry for your OS/2 NDIS driver. In CONFIG.ADD, the EtherLink III driver (ELNK3.OS2) is used. If you want to use the driver for the NE2000-compatibles, change that line to DEVICE=C:\FREETCP\BIN\NS2000.OS2

    REM out the two lines in your original CONFIG.SYS where INET.SYS and IFNDISNL.SYS are being loaded. (Or leave INET.SYS as it is but don't copy it from CONFIG.ADD. Just don't load it twice).

    Leave the SET TMP= and SET ETC= as they are in your CONFIG.SYS. I.e. don't copy them from CONFIG.ADD

    The next 3 lines handle the TCP/IP support for DOS and Windows sessions. They are already in your CONFIG.SYS. Unfortunately very few DOS TCP/IP apps are supported, I've only used \TCPIP\DOS\BIN\PING.EXE. But the 3 lines are also required for Winsock apps. Put a REM in front of the 3 lines if you're not interested in running DOS/Win TCP/IP applications. Commenting them saves some memory in DOS/Windows boxes. You should not REM out CNTRL.EXE, it has nothing to do with DOS drivers. See http://pclt.cis.yale.edu/pclt/winworld/os2logic.htm for what it does.

    Look for the explanation of the line

    SET USE_HOSTS_FIRST=1

    below, under "Check configuration files". Make up a name for the PC you're using in the line SET HOSTNAME= (let's assume it's "myPCname"). Again, see below.

    Back to installation overview


  11. Edit LANSTART.CMD 
  12. You'll need to tell the TCP/IP stack a couple of things about the configuration for your network card. For instance: how is the PC going to be identified on the network it is connected to. If you have a friendly network system administrator, ask him/her what settings you have to use for: IP address, netmask, gateway, Web/FTP/news/POP/etc. server.

    First, you need an IP address. This is a number which has a form similar to this example: 165.113.58.253 I can think of roughly 3 possibilities:

    You need to know your netmask as well. In most cases, it will be 255.255.255.0 Put your two IP numbers in LANSTART.CMD, on the IFCONFIG LAN0 line. But, if your company/university/etc. has a DCHP or BOOTP server, you can replace this IFCONFIG LAN0 line with a simpe BOOTP

    Next, you must get hold of the gateway's IP address which you are going to use. Put this IP address in LANSTART.CMD, on the ROUTE ADD line. The last parameter (the 1) is the hop count. Change it only if you know what you're doing. If your network is not really going to be connected to the Internet (you just want to use FreeTCP to link two PCs, in a crude manner), you don't need this ROUTE ADD command. In that case, just put a REM in front of it.

    The IFCONFIG LO 127.0.0.1 line is there for the "loopback" device. The 127.0.0.1 is a special address. It makes sure your PC can "see" itself. This is often used by people who do not really have a network card or who want to test out TCP/IP server software by accessing it locally. This line isn't supposed to interfere with anything so you should be able to leave it as it is.

    Back to installation overview


  13. Run LANSTART.CMD at startup 
  14. You can do this by dragging a shadow of LANSTART.CMD to your Startup folder (use the Drives object to locate the folder C:\FREETCP\BIN, press Ctrl and Shift and drag the LANSTART.CMD with the right hand mouse button to the Startup folder located in the System folder). Or you could copy LANSTART.CMD to the root of your boot partition and rename it to STARTUP.CMD. I suggest to do this after you have figured out everything. The first time you should run LANSTART.CMD from a command line so that you can see the error messages, if there are any.

    Back to installation overview


  15. Reboot 
  16. ...and watch any errors you get. When the little white OS/2 block occurs at the top left corner, you might want to press Alt+F2 so that you can see the drivers being loaded. If an error occurs, you immediately see which driver caused it. If you don't run NETBIND.EXE from the CONFIG.SYS and don't start LANSTART.CMD from the Startup folder, you can open a command window and execute these commands manually, and notice any error which might occur.

    Back to installation overview


  17. Add Entry in Dialer 
  18. Since TCP/IP originates from Unix, the IAK uses several obscure Unix-like configuration files. IBM tried to overcome this by making an application which writes most of the configuration files: the Dialer ('Dial Other Internet Providers', to be exact). You can find it in the folder IBM Information Superhighway -> IBM Internet Connection for OS/2 -> Internet Utilities. Please note: the 'IBM Internet Dialer' is not the one you need. Click on "Add entry" with the relevant information. You can skip (or enter whatever you want) the fields which have to do with modems (such as phone number, login sequence, MTU size, etc.)

     The Domain Name Server (DNS) is important and so is your Domain Name. For the field "Your Host Name" use the hostname you entered in the CONFIG.SYS on the SET HOSTNAME= line. See above.

    I'm not going to explain how to fill in all this information, because that has been done better elsewhere (press F1 in the Dialer or look on PC-Lube & Tune's Web site).

    Back to installation overview


  19. "Dial" entry 
  20. This is a step which has confused users of FreeTCP before. Why should you have to "dial" if you are going to use the Ethernet card instead of a modem? Well, that's only because the Dialer sets up a couple of configuration files, mainly HOSTS and RESOLV (explained later). It might be possible to get around without using the Dialer, but it's better to be safe than sorry...

    OK, start the Dialer and click on Dial to 'dial' the entry you just added for the LAN. Nothing much should happen. This is not a problem. Perhaps the modem tries to dial out. In that case click on 'Hangup'. Perhaps you get the error "modem not responding". That's not a problem either. The Dialer is only used in this step of FreeTCP to set up a couple of configuration files, it's not supposed to actually dial out. 

    Now close the Dialer. See if the file \TCPIP\ETC\RESOLV was created and if it contains the correct settings. If not, you will have to make one yourself. It's very simple, mine looks like this:

    nameserver 145.20.1.50
    domain wins.uva.nl
    Change this for your situation: fill in the DNS and the domain name you have to use. If you don't need a DNS (for instance, if you are not connected to the 'real' Internet but you are just connecting two machines), then you can do without a RESOLV file. Below (under "Check configuration files") I'll explain what this file is all about.

    Bear in mind that you don't have to use the Dialer every time you want to use the LAN. You've got to 'dial' only once to write the configuration files. That's all.

    Back to installation overview


  21. Try it out! 
  22. If you got this far, don't you sit there waiting! Try it out! Start with a simple case, such as by using PING.EXE in a command window. Ping your gateway machine or your Domain Name Server (DNS) for example. If that works, you can use "Retrieve Software Updates" to download the latest versions of the applications in the IAK, such as the WebExplorer. You might want to use other email software such as PMMail or Netsuite instead of Ultimail/2 'Lite'.

    The IAK includes many TCP/IP applications such as news, email, Gopher, Telnet, FTP etc. You have to configure these as you would normally do for a dial-up link. The Dialer does not set up all the configuration for the applications included with the IAK. Especially Ultimail/2 needs a lot more configuring.

    Back to installation overview

Back to top


Check configuration files for OS/2 and DOS/Windows

Hopefully FreeTCP works for you by now. To be sure that it works in all cases (meaning, in DOS/Windows sessions too) you need to check a couple of configuration files.

OS/2 uses a file called RESOLV to find a Domain Name Server (DNS). A DNS translates an Internet address which a human can understand (such as ftp.cdrom.com) into a numerical Internet address a computer can understand (such as 165.113.58.253). The domain name for your machine can also be specified in RESOLV. For instance, mine is wins.uva.nl. See above for an example of the RESOLV file.

Make sure that there are identical copies of RESOLV on your system (one for OS/2 applications and one for DOS/Windows applications): 

     C:\TCPIP\ETC\RESOLV
     C:\TCPIP\DOS\ETC\RESOLV
where C: is of course the drive on which you installed the IAK. If RESOLV is found in only one such location, copy it to the other. If found in both places, but not identical, replace the older file with the most recent one.

Recheck in your OS/2 CONFIG.SYS that a line similar to

SET ETC=C:\TCPIP\ETC
is specified. Otherwise OS/2 cannot find the RESOLV file and thus it cannot find hostnames.

There are two HOSTS files, one for OS/2 applications and one for DOS/Windows applications: 

     C:\TCPIP\ETC\HOSTS
     C:\TCPIP\DOS\ETC\HOSTS
A HOSTS file is a simple set of lines. Each line contains a numerical IP address for a host and a alphanumerical hostname under which this host is known to your PC. See C:\TCPIP\DOS\ETC\HOSTS for an example.

You need to add an entry for your own PC to the HOSTS file if you want to run TCP/IP server programs on your PC (such as an FTP or a Web server) and you want to access that server from that PC itself through the loopback device. With the lines

127.0.0.1   localhost
192.168.0.2 myPCname
you can use the name localhost instead of the loopback IP address 127.0.0.1. With the second line you can access your machine using a hostname you made up. Please note: the last line of the HOSTS and RESOLV files need to end with a Carriage Return/Line Feed, otherwise that line will not be recognized. And that can lead to strange errors which are difficult to trace.

In the instructions above, I mentioned to add the line

SET USE_HOSTS_FIRST=1
to your CONFIG.SYS. It makes sure that first the local file C:\TCPIP\ETC\HOSTS is consulted before the name is looked up on the Domain Name Server. This comes in handy if you have defined a couple of hosts in the HOSTS file which are unknown to the DNS. Without the SET USE_HOSTS_FIRST=1 line, the DNS is consulted before the HOSTS file, which may take time before the DNS realizes it doesn't know a host with that name.

The SET HOSTNAME= line in your CONFIG.SYS is a local name for your PC, meaning that only TCP/IP applications running on your own PC will be able to use it. If you want other people across the network to be able to use the same name to reach your PC, ask them to add this name plus your IP address to their HOSTS file. Or ask your network administrator to include this name on the Domain Name Server. I also read somewhere that if you haven't set a hostname, it may take a while (a timeout) before a connection is set up with some applications. So, just to be sure, add a SET HOSTNAME line to your CONFIG.SYS. It can't do any harm.

Normally, there are two AUTOEXEC.BATs on an OS/2 system: one which is used for DOS sessions under OS/2 and one which is used under 'real' DOS. Find the the AUTOEXEC.BAT file which is used for DOS command prompts under OS/2. It should be on the same partition on which you installed OS/2 (which may not be C:). Add the following line to it, if not already present: 

SET ETC=C:\TCPIP\DOS\ETC
(If you don't want to maintain two sets of RESOLV and HOSTS files, you could consider using SET ETC=C:\TCPIP\ETC in the DOS AUTOEXEC.BAT, because it points to the OS/2 versions of RESOLV and HOSTS). The PATH= line in that AUTOEXEC.BAT should include C:\TCPIP\DOS\BIN. This directory contains files for the DOS and Windows (WinSock) TCP/IP support under OS/2, including a WINSOCK.DLL. It is very important that under WinOS2 this version is used. You have to make sure that under OS/2 in Windows sessions the WINSOCK.DLL included with the IAK is used, and under 'real' DOS + Windows the WINSOCK.DLL from Trumpet/WindowsforWorkgroups/NetManage/whatever. The trick is to put C:\TCPIP\DOS\BIN in front of the PATH in the AUTOEXEC.BAT for DOS sessions. Don't add C:\TCPIP\DOS\BIN to the PATH of the AUTOEXEC.BAT for real DOS. If there is a WINSOCK.DLL or a PING.EXE in C:\WINDOWS or C:\WINDOWS\SYSTEM, move them out of the way to another directory, say C:\TRUMPET or C:\NETWORK. Next, add that directory to the PATH= line in the AUTOEXEC.BAT for real DOS.

Back to top


Bypassing LINKUP.EXE

If you examine the settings of the icons for the TCP/IP apps included with the IAK, you will notice that they first open a program called LINKUP.EXE (located in \TCPIP\BIN). In the parameters field, the actual program is specified. LINKUP's task is to check that a dial-up link (through the modem) has been established. If that's not the case, you get the warning "Not Connected to the Internet" and you'll have to click "Don't connect" before the actual application is loaded. Of course, if you use FreeTCP you'll get this warning every time you start a TCP/IP app, which you may find annoying. Well, I did, so I decided to do something about it. I wrote a REXX script called CREATE.CMD (you can find it in \FREETCP\BIN) which creates new icons for the TCP/IP apps in the IAK. These icons do not call LINKUP.EXE, they call the application directly. However, there is a drawback to this solution. UltiMail/2 is not an .EXE file so I couldn't make a new icon for it. Another drawback is that this solution doesn't support the templates for the PM versions of FTP and Telnet (TELNETPM.EXE and FTPPM.EXE). You can work around all this by finding a replacement for UltiMail/2 (most people are not happy with it anyway) such as PMMail, Neologic Netsuite or Postroad Mailer. You can also specify the destination host manually in TELNETPM.EXE and FTPPM.EXE.

There's another solution which makes uses of a replacement LINKUP.EXE. I've included it in C:\FREETCP\BIN under the name MYLINKUP.EXE. It just starts the program specified as an argument. It does work with UltiMail/2 and the FTPPM and TelnetPM templates. However, CREATE.CMD is much easier to use. It works fine for me personally and I can live with clicking on "Don't connect" for the remaining applications. Still, if you would like to use this replacement LINKUP.EXE, rename the original file \TCPIP\BIN\LINKUP.EXE to something else and copy MYLINKUP.EXE to \TCPIP\BIN\LINKUP.EXE. One other note: I could get my LINKUP.EXE working only when I installed 4OS/2 ! I don't know if this is a bug in CMD.EXE...

Back to top


Using the NetWare Requester and FreeTCP (ODI driver)

The NetWare Requester is used to access Novell NetWare servers using the IPX/SPX protocols. The latest version can be downloaded from Novell. You can also use the Requester to play IPX network games in a DOS box under OS/2. FreeIPX is a subset of the Requester, especially tailored for IPX game playing.

How can you install FreeTCP on top the NetWare Requester? The problem arises from the fact that the Requester expects an ODI interface (driver) while FreeTCP wants an NDIS interface. What is needed is a piece of software (a "shim") which converts the ODI driver to an NDIS interface (or the other way around). There are two different schemes you can use to get the Requester and FreeTCP running concurrently. One is based on using an ODI driver and the ODINSUP shim. The other scheme uses an NDIS driver and the ODI2NDI shim. In the following I assume you already have Requester working. If not, install it first. Since the NetWare Requester comes with several ODI drivers, I'll start with the ODI scheme.

The ODI scheme follows the normal FreeTCP installation routine to a large extend. Steps 3, 4 and 5 have changed:

  1. Install the Internet Access Kit (IAK), if not already done.
  2. Get the CSD and extract the file IFNDIS.SYS from it to C:\FREETCP\BIN
  3. Get an ODI driver for your network card and put it in C:\NETWARE
  4. Check your C:\NET.CFG and edit C:\FREETCP\BIN\PROTOCOL.INI
  5. Add C:\FREETCP\CONFIG.2 to your \CONFIG.SYS and edit it
  6. Edit C:\FREETCP\BIN\LANSTART.CMD
  7. Make a shadow of C:\FREETCP\BIN\LANSTART.CMD in your startup folder
  8. Reboot (keep an eye on error messages during startup)
  9. Add an entry in the Dialer ('Dial Other Providers')
  10. "Dial" your entry so that the correct configuration files will be set up
  11. Start using TCP/IP apps and get on the net!
Get an ODI driver for your network card and put it in C:\NETWARE

An ODI driver is a piece of software which provides a standard interface to network cards. This means that makers of networking software can write to the ODI standard and do not have to worry about each and every network card. ODI is a standard of Novell.

You'll need an OS/2 ODI driver for your network card. Several ODI drivers are included with the Requester. If you're really lucky, one was supplied with your network card. Look for a file with the extension *.SYS in the directory \NETWARE\ODI on the driver disk. Or if you downloaded a zipfile with drivers from the Internet, look in that zipfile. Copy the driver to C:\NETWARE

Check your C:\NET.CFG and edit C:\FREETCP\BIN\PROTOCOL.INI

In NET.CFG (a plain text file) the settings of your network card are specified. You need to add a section to the NET.CFG (if it's not already there) where you tell what network card you use. For instance:

PROTOCOL ODINSUP
    BIND 3C5X9
If you have an NE2000-compatible, change it to BIND NE2000. Now to the C:\FREETCP\BIN\PROTOCOL.INI. I've included an example, PROTOCOL.2. As you can see, it's very simple. The section for the network card is in fact a dummy. Add one for yours. If the ODI driver is called BLAHBLAH.SYS use [BLAHBLAH]. There's one exception to this rule and that is when the ODI driver's name starts with a number. Then place an X before the name, as I did with the entry for the 3C5X9. In the [TCPIP_XIF] section you see the line BINDINGS = "X3C5X9". Replace the "X3C5X9" part with the name of the section (network card) you want to use.

Add CONFIG.ADD to your \CONFIG.SYS and edit it

There's one difference with the normal installation step I already described above: you don't have to load an NDIS driver. For instance, if you have a line DEVICE=C:\FREETCP\BIN\NS2000.OS2, put a REM in front of it. The rest of the FreeTCP lines in your CONFIG.SYS do not have to be changed. Now, locate the lines that the NetWare Requester installed in your CONFIG.SYS. Add a line for the ODINSUP driver below the one for the ODI driver. So, if you have an Etherlink III 3C5x9, it should look like this:

REM -- ODI-Driver Files BEGIN --
DEVICE=C:\NETWARE\3C5X9.SYS
DEVICE=C:\NETWARE\ODINSUP.SYS
REM -- ODI-Driver Files END --

Using the NetWare Requester and FreeTCP (NDIS driver)

The NDIS scheme is almost the same as what I described in the FreeIPX documentation. If you can, read that section for a better understanding. The difference is that you are using the full NetWare Client and not a subset (= FreeIPX). That just means there are a couple more NetWare DEVICE= lines in the CONFIG.SYS. These do not have to be touched. You need to download the ODI2NDI shim. You can download it from here: ntsod2nd.zip. See the FreeIPX documentation for more information on ODI2NDI. Now examine C:\FREETCP\CFG\CONFIG.3 and C:\FREETCP\CFG\PROTOCOL.3. Add the FreeTCP paths to your CONFIG.SYS. The NetWare Requester lines in your CONFIG.SYS need only a slight change, i.e. you need to comment out the ODI driver and put in a line DEVICE=C:\FREETCP\BIN\ODI2NDI.SYS instead. Modify the paths if you installed FreeTCP in a different path than C:\FREETCP. Now to the PROTOCOL.INI in \FREETCP\BIN. Use the example PROTOCOL.3 I included. See this on how to configure the [ODI2NDI_NIF]. The rest of the installation routine is almost the same as what I described in the normal installation instructions, except for the steps you just did of course.

Back to top


About the LAN Manager Client and FreeTCP

Ok, so let's say you want to use FreeTCP (TCP/IP), but you also want to connect to machines running Warp Connect / Windows for Workgroups / NT / Windows 95 etc. If not, then just skip this part.

The best solution would be to buy Warp Connect or any later version of OS/2. However, if you don't want to spend money you could install the free client made by Microsoft. The actual instructions on how to install the LAN Manager Client and how to get it working with FreeTCP are elsewhere. Read them here. Microsoft made sure the Client wouldn't install on Warp. However, a small modification described in these instructions solves this problem.

FreeTCP is actually a subset of the LAN Manager Client. I used the files needed to 'bind' Warp's TCP/IP stack to the Ethernet card. The full LAN Manager can do lots more: for instance, it allows you to see the drive of a Windows for Workgroups machine as a drive letter / drive object. Or to use a printer over the network.

For more information on how to install the LAN Manager Client with FreeTCP on top I refer you to my LanMan page.

Back to top


Using a modem and FreeTCP

It could be that you need both LAN access (FreeTCP) and SLIP/PPP access (the IAK), but not at the same time. This isn't difficult to do. Just add a normal entry for your Internet Service Provider (ISP) to the Dialer. When you click on the 'Dial' button, the Dialer should move the already existing HOSTS and RESOLV files (used by FreeTCP) out of the way. They are replaced with the correct settings for your ISP. Once you click on 'Hangup', the original versions are restored.

Back to top


Need more?

There's one other thing: there are no "servers" included with the IAK. That means, for example, that other people cannot telnet to your machine because there is no "telnetd" running. In theory, it is possible to extract the daemons (including the ones you need to print over the network to a remote printer using the LP protocol) you need from the CSD. Of course, this is illegal. They are quite difficult to set up without docs anyway. Warp Connect is much better at this. On the other hand, there are several freeware/ shareware servers available on Hobbes and Walnut Creek: ftpd, fingerd, gopherd, talkd, httpd, pop3d, etc. With a little bit of tweaking, you might even get "peer to peer"-like functionality with Lynn's Workplace FTP from Hobbes. This will integrate your peer's ftpd (ask your roommate to run Linux, WinQVT or an OS/2 ftpd such as Neologic or Penguin) on the Desktop. If you find an even better solution, I'd like to hear.

Back to top


Troubleshooting

Back to top


Documentation

I've included some background information on the IAK, TCP/IP etc. in C:\FREETCP\DOCS. Not everything is relevant. Most of this stuff is even quite advanced. Just skip the hard bits. Some great stuff on Warp networking (Postscript format) can be found here and on the Web at PC Lube & Tune.This is great technical stuff, also very informative when you are configuring your setup. Recommended.

Back to top


Acknowledgements

Thanks must go to Albert Crosby who made the Mini-FAQ about OS/2 and "Windows Networking" (OS2NET.TXT), bringing my attention to the freely available MS LAN Manager, and Henrik Stroem (WARPTCP.TXT) who posted an article on how to combine IBM TCP/IP and the IAK. If you combine these two pieces of information (and you manage to find the CSD and an old netbind somewhere :-), you come up with an idea like FreeTCP. Some information was taken from http://www.xs4all.nl/~ronvwier/OS2.

I'd also like to thank my "beta testers", who probably wish to remain anonymous...

As you can see from its name, FreeTCP doesn't cost you anything (maybe a couple of frustrating hours to install it :-). However, I'd appreciate a little note if you got it to work.

I've composed FreeTCP from several files I found on the Internet. If you prefer to have the complete works, here are the locations:

Microsoft LAN Manager 2.2c Client for OS/2:

ftp://ftp.microsoft.com/BusSys/Clients/LANMAN.OS2/

Instructions for installing the LAN Manager Client:

http://www.jacco2.dds.nl/lanman.html

IBM TCP/IP 2.0 for OS/2 CSD:

ftp://ftp.cdrom.com/pub/os2/network/tcpip/tcp20* 

ftp://ftp.software.ibm.com/ps/products/tcpip/fixes/v2.0os2/lateststack/stack.exe

ftp://hobbes.nmsu.edu/old/os2/network/tcpip/tcp20*
An old Netbind.exe from Microsoft/3Com: It seems to do the trick though. This one was on Hobbes but apparently some old stuff has been cleaned up. You can still find it with Archie on some other sites. ftp://infoserv.cc.uni-augsburg.de/pub/pc/dos/tcpip/driver/zip/ndis.zip
ftp://ftp.ucs.ubc.ca//pub/old/os2/shadow/all/network/ndis/temp/ndis.zip

Any trademarks referenced in this document are the property of their respective owners.

Back to top


Author

Well, I didn't actually make anything, I just looked and looked until I found the "missing parts". If you want to contact me, see this page.

A couple of times I received email from people who hadn't entered their return email address correctly, so I couldn't email them back with help. Please check your return address (especially if you're using a PC email client) or better yet, include it in the body of your email message.

Jacco de Leeuw

Back to top