Also check my homepage (http://huizen.dds.nl/~jacco2/freetcp.html) for the latest update.
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.
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 licenced 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 licenced 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 licenced 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 licenced owner and you...
A copy of TCP/IP 2.0 was donated to me so I myself am using IFNDIS.SYS legally.
I stole this disclaimer from Microsoft. They are very good at making disclaimers :-). See the disclaimer on my homepage.
In short, here's what you'll have to do:
Another suggestion: if you print these instructions on paper you have a much better overview.
If you haven't done it already, install the Internet Access Kit (also called Internet Connection for OS/2) from the BonusPak.
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/v2.0os2/lateststack/. Extract it to a directory by executing the program (or use UNZIP.EXE). 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 ftp://ftp.cdrom.com/pub/os2/network/tcpip/tcp20c4.exe. 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.
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 in ftp://ftp.cdrom.com/pub/os2/network/ndis/, ftp://hobbes.nmsu.edu/old/os2/network/ndis/ or elsewhere.
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 (ftp://ftp.3com.com/pub/SOFTWARE-LIBRARY/FILES-BY-PRODUCT-FAMILY/ADAPTERS/SHIPPING-DRIVERS/3C5X9X.EXE). 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 ftp://hobbes.nmsu.edu/old/os2/network/lansrv/lmos22.zip or ftp://ftp.leo.org/pub/comp/os/os2/lanserver/lmos22.zip
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: ftp://hobbes.nmsu.edu/old/os2/network/ndis/pmac.zip.
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.
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 End to 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.
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:
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.
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.
...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.
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).
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.nlChange 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.
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.
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\RESOLVwhere 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\ETCis 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\HOSTSA 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 myPCnameyou 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=1to 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.
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 (ftp://ftp.cdrom.com/pub/os2/shellutl/4os2pkg.zip)! I don't know if this is a bug in CMD.EXE...
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:
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 r>
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 3C5X9If 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 --
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 at http://huizen.dds.nl/~jacco2/lanman.html. 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 http://huizen.dds.nl/~jacco2/os2/lanman.html.
But what if you do need LAN access and SLIP/PPP access at the same time? I notice a trend that computers are getting so cheap that many households now have two or more computers, all connected by a network! Or suppose you're in a dorm. You and your roommate are connected through an Ethernet network. You have one modem with which you connect to your ISP and both of you want to use it access the Internet. There are two possibilities:
The second case requires some extra software. What you want to do is to fool your ISP into thinking that only one machine is using the account, while in fact a whole Ethernet LAN may be using the connection. The ISP should not be able to detect any difference (except perhaps for a higher load!) and they definitely should not charge extra.
A proxy server is probably the easiest solution because it is a normal TCP/IP application which you can run. The disadvantages are that proxy servers are not 'transparent' to the machines which share the Internet connection. That means that you need to use special, proxy-enabled, clients. The WebExplorer is one of those clients, but the FTP included with Warp for example is not proxy-enabled. You need to use NeoLogic Netsuite's FTP then. Another disadvantage is that you need to configure each and every client to use the proxy server. In the WebExplorer you have to choose 'Configure' in the menu, followed by 'Servers' and then you have to fill in the proxy server address such as http://192.168.0.10:80/ (note the port number and the slash at the end!). Proxy servers normally only support a handful of protocols: HTTP, SOCKS, FTP and a couple more. Proxy servers are available for several operating systems. I've successfully used the CERN-HTTPD proxy ( ftp://ftp.leo.org/pub/comp/os/os2/tcpip/www/cern_os2_105.zip) on FAT, even though the docs say that HPFS is required. IBM's Internet Connections Server ( http://www.software.ibm.com/is/sw-servers/) includes a proxy server and it is free too, but since it is a full-blown professional Webserver it may be a bit overkill and require too much resources. It doesn't matter on which operating system the proxy server runs. A well-known proxy server is WinGate, which runs on Windows95, NT and older versions on Windows for Workgroups. What is special is that this one includes proxy agents for FTP and Telnet too. It can also dial out to the ISP automatically when one of the machines on the network wants to access the Internet (I don't think the CERN-HTTPD proxy can do that). However, the 'intransparancy' shows: if you want to Telnet from one of the clients on the LAN, you first have to Telnet to the machine on which WinGate is running. Then you get a WinGate Telnet prompt. From that prompt you Telnet to the actual destination. It works, but it isn't very user friendly. Another disadvantage is that although WinGate is free for 2 users (in total), the prices go up rapidly for 5, 10 or even more users...
A different approach is 'Network Address Translation' (NAT), also called 'IP-Masquerading'. With this scheme, the machine with the modem receives packets from the other machines on the LAN and forwards them to the ISP. The difference with the normal routing I described in the previous case is that the machine with the modem changes the packets on the fly by substituting its own address. So to the ISP it seems as if all packets come from one machine, with only one IP address being used. The big advantage is that all this happens on the level of the TCP/IP stack (and not in an application on top of it, such as in the case of the proxy servers), which means it works very transparently. Almost every protocol will work, even ICMP (ping) and IRC, which proxy servers do not support. You don't need to configure every client on the LAN and you don't need special proxy-enabled versions so you can use any client you want. As far as the machines on the LAN are concerned, they think they are talking to a normal gateway (see also 'Edit LANSTART.CMD'). And as far as your ISP is concerned, those guys think they are talking to just one machine.
The problem is that an especially adapted TCP/IP stack is required for the machine with the modem. This limits the choice of operating systems down to DOS and Linux for that machine (the other machines can use any operating system or TCP/IP implementation). Recent kernel versions of Linux have an option called IP-Masquerading. You need to enable this option and recompile the kernel. The big plus is that it's free. Linux' networking capabilities are very powerful but it's a bit tricky to set it up. Another advantage is that you can still use that Linux machine for Internet access while it is forwarding the packets for all the other machines on the LAN. That is not the case with the IPRoute ( http://www.mischler.com/iproute/), a DOS application. It completely takes over the machine and turns it in a dedicated router. However, it doesn't require a powerful machine as Linux does: a 386 (or even 286) will do. You may have one lying around in the closet. IPRoute is shareware and costs $50. It's fairly easy to set up.
As far as I know, these are not needed for parallel network cards.
It could be that the CSD file you have is in a different format than the ones I found on the net. Look above for the location of a CSD file which is known to work. You can also try to uncompress the CSD file manually and see if you can find the file you need: IFNDIS.SYS.
Until recently I didn't worry too much about performance since I used
FreeTCP to access the Internet through an Ethernet card: in that case the
Internet is the bottleneck, and not FreeTCP. Besides, I was glad I could
get it to work
at all. However, if you want to access local FTP/Web/etc.
servers on the LAN, the performance isn't that spectacular. \TCPIP\BIN\INET.SYS
seems to be the culprit. I think IBM crippled the version for the IAK deliberately.
Solution: use the latest stack and not TCP20C4.EXE. I mentioned
the stack above.
As you can read in DOCS\WARPTCP.TXT,
the INET.SYS included with the IAK will "break the full client/server functionality
of Ultimail/2". So if you want to receive email over the LAN using
UltiMail/2 Lite, you might need to install the files from the latest stack.
Several people have reported crashes with their vendor supplied (old)
driver. If your driver crashes, TRAPs etc, try to get a later version.
I mentioned two FTP sites above where you can find
more NDIS drivers. If the vendor is on the Internet, bug them about a new
driver. If you have a cheap NE2000 clone, look no further. A good driver
has been made by National Semiconductors: NS2000.OS2. I included it in
the directory C:\FREETCP\BIN
Can you reach the other machines if you use numerical IP addresses (e.g.,
165.113.58.253)
but not if you use alphanumerical IP addresses (e.g.,
ftp.cdrom.com?
Then this is most likely a Domain Name Server (DNS) problem. Try to PING
your DNS (using its numerical IP address of course). If you don't get a
response then the IP address of the DNS is incorrect. Is there someone
who can tell you which one to use? If you do get a response from the DNS,
check the file \TCPIP\ETC\RESOLV. If you haven't got one ("Cannot resolve
name" or "Unknown server" errors) or the contents of the file turn out
to be not what you want, look above on how to create
RESOLV yourself. Double check your configuration files.
The TCP/IP support in DOS boxes is based on some IBM TCP/IP for DOS
standard. There are very few applications for that standard (\TCPIP\DOS\BIN\PING.EXE
is one of them). It is possible however to run one packet driver based
application in a DOS box. However, as far as I know only that particular
app will have access to the network card. OS/2 TCP/IP applications will
not work then.
Yes you can! Jay Cotton (jay@kali.net)
has written a shareware driver for OS/2 called Kali/2, which allows you
to use virtually any IPX-network based program over a TCP/IP network. Kali/2
is one of those few applications which support that IBM TCP/IP for DOS
standard. Kali has been used to play Descent, Doom, Doom II, Heretic, Hexen,
Command & Conquer, Apache, Rise of the Triad, Terminal Velocity, Warcraft,
VR Pool, Super Karts, Mortal Combat 3, and other games over the Internet
with opponents from all over the world. For more information see http://www.kali.net
or download Kali/2 directly from
ftp://ftp.kali.net/pub/kali/kalios2.zip
This is actually out of scope for FreeTCP, but the solution is easy.
You need to install a fix, PN71501, which contains an update for TCP32DLL.DLL.
See the installation instructions above, about installing
updates. If you have installed the latest WebExplorer, the fix is automatically
used. Also, download the WebExplorer FAQ, WXFAQXX.ZIP in the directory
ftp://hobbes.nmsu.edu/old/os2/newsltr,
where XX is the version number.
First make sure that OS/2 TCP/IP programs work. If these don't work,
WinSock won't work either. Again, double check your
configuration files, see above under "Check configuration files for OS/2
and DOS/Windows".
This isn't a FreeTCP thing either, but it gets asked often enough to
deserve an answer. See http://www.xs4all.nl/~ronvwier/OS2/
for more information.
Although I have a licenced copy of NFS, I'm not supporting NFS for FreeTCP.
The rationale is this: FreeTCP enables you to use the licenced software
you already have (in the IAK) with the hardware you already have (Ethernet
card). Only one extra file is needed. Still, it is a grey area. With the
NFS CSD, you are really adding new functionality you didn't pay for. One
user confirmed it is indeed possible to use the TCP/IP and NFS CSDs for
NFS support. But do yourself a favour and ask your sysadmin to install
Samba (http://www.samba.org) on the
Unix server. It's free, it's faster than NFS, it's easier to use, there's
an abundance of PC clients, etc. Or else, buy the
NFS
add-on from IBM.
Yes.
You were probably using the 'IBM Internet Dialer', a light blue icon.
This is not the one you need. Look in the folder 'Internet Utilities'.
There you'll find the icon 'Dial Other Internet Providers'. That's the
one. Continue from here.
If it takes you more than a couple of hours (or even days) then don't
hesitate to contact me directly. Be sure to
double
check your configuration files first. Please mention "FreeTCP" on the
subject line. Include the relevant files: your CONFIG.SYS, PROTOCOL.INI
and LANSTART.CMD. Also mention what network card you have and what driver
you use.
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://huizen.dds.nl/~jacco2/os2/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
Any trademarks referenced in this document are the property of their respective owners.
Jacco de Leeuw J.C. van Wessemstraat 54 1501 VM Zaandam The Netherlands Internet: jacco2@dds.nl WWW homepage:http://huizen.dds.nl/~jacco2A 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.