Internet Access Programs ------------------------ This directory contains programs you can use on an old PC to connect to the Internet. They are not Tandy-specific, though they will work on the Tandy 1000's. These programs were mostly submitted by Marc Williams , who tested them on a Tandy 1000HX (7.16MHz V20). I tested them on a 1000TL (8MHz 80286). Contents ------------------------------------------------------ What You Need What You Need to Know Modem Configuration Static vs. Dynamic IP SLIP or PPP? What You Need to Find Out Nettamer and Integrated Dialers Packet Drivers (in General) PPP Packet Drivers SLIP Packet Drivers Other Packet Drivers Applications (in General) BOOTP, RARP, and Reading from the Screen Application Suites Mail Clients FTP Clients WWW Browsers News Readers IRC Clients Miscellaneous Applications Other Links/Sites What You Need ------------------------------------------------- It is assumed that you have an XT-class 8088, 8086, or 80286 PC running bare DOS (no Windows) and that you will be connecting by SLIP or PPP to a local Internet service provider. Most of these applications will also work if you're so fortunate as to be connected to an Internet-accessible LAN via Ethernet (see below), but that's not my focus here. You need to have 640k DOS RAM, a hard drive, and at least a 2400 baud modem (or the lowest speed your provider supports, if higher; faster is, of course, better). If you're running DOS 5.0 or later and can configure your system to load stuff in upper memory blocks (perhaps with a hardware LIM 4.x EMS card), it will help a lot - many of these applications are seriously memory-hungry. In any case, DOS 3.3 or later is good to have, since a couple applications require it and the improved batch programming helps a lot. You also need a fair amount of patience, since setting up DOS for the Internet is like herding cats. What You Need to Know ----------------------------------------- You need to know how to create batch files in DOS, how to create directories and dearchive files, and how to modify your AUTOEXEC.BAT and CONFIG.SYS files. If you don't know those things, it's time to dust off your DOS manual. You need to know how much memory you have, what commands your modem supports (dust off your modem manual too), what port and IRQ your modem is on, what DOS version you have, and what your video card is. It helps if you have had some experience with setting up Internet on some other system (maybe Windows) already, or know someone who has. If you're not comfortable writing batch files, dialing scripts, and so forth, the best thing to do is get a shell account on your provider's machine, which is a much easier way to get on the Internet with an old machine. The only software you need for that is a communications program (Qmodem, Procomm, and Telix are a some good ones). The comm program should support VT100 emulation. The provider will have text-based programs you can use for WWW (Lynx), telnet, ftp, gopher, and other services. You don't need any special information for a shell account (maybe a book on Unix would help); it works like any BBS. Modem Configuration ------------------------------------------- Taking things step by step, the first step is to get your modem to work. That might be obvious, but over half of the postings to the Arachne mailing list (see Arachne, below) have been about modem-related problems. Before you try to dial your ISP and connect to them, you need to verify that you've got your modem set up right by calling into a regular BBS with some standard communications software. Your modem probably came with a communications program, and your modem's manufacturer probably has a BBS whose number is in the manual, so try calling them. (If you don't know the number of a BBS to call, Cardinal's BBS is 1-717-293-3074. If you don't have communications software, check a large DOS software site like http://www.simtel.net/simtel.net/ .) You will need to give an init string for your modem when you set up the dialing script for your packet driver or its dialer. For newer modems, "AT&F0" will work fine; that just resets the modem to the factory defaults, which should be fine for Internetting. My modem is older, and its factory defaults are kind of screwy. I've got its CMOS set up for the correct settings, however, so I give "ATZ" for my init string, which reads the settings from CMOS. You can set up your modem's CMOS to your liking using terminal mode in your communications program (if your modem has CMOS); check your modem's manual. Generally, you need to set up your modem to enable hardware (RTS/CTS) flow control (&K3), to hang up when DTR is dropped (&D2), and to allow DCD to follow the true state (&C1). You want to get result codes (Q0) and specify that they should be text, not numbers (V1). If your modem provides hardware error correction and data compression, you want to enable them as well. See your modem manual; modem AT commands are not entirely standard. (If you have an old modem without data compression, error correction, or flow control, that is fine - just they are good to use if you have them.) There are a few special cases to note. First, if you have a "plug and play" (sometimes called "plug and pray" :-) modem, you will need to configure its driver in AUTOEXEC.BAT or CONFIG.SYS. In addition, the BIOS in an XT will not be able to detect a plug and play modem, so you need to specify the modem's I/O port and IRQ when you configure your packet driver and its dialer (or any other communications software), rather than just saying "COM1:" or "COM2:". For example, if you have your mouse on COM1: and your modem on COM2: is plug and play, you will need to specify I/O port 2F8 and IRQ 3 instead of just giving a COM: port when you configure your dialer and packet driver. Second, if you already have two serial port devices and you install the modem as the third one, the BIOS on many older machines will not detect the modem on the third COM: port. Again, you will have to explicitly specify the I/O port address and IRQ setting when you configure your dialer and packet driver (or any other communications software). Third, if you have a Rockwell RPI or Rockwell DPI modem, you will need to disable data compression, error correction, and flow control on it (using the init string). Note that for most modems you want those things enabled for greater throughput; Rockwell RPI modems are an exception. They are designed to implement data compression in software, making them cheaper than other modems of the same speed. If you bought one of these "cheapies," you're going to pay for it now :-). To do data compression, Rockwell RPI modems require special software. Under DOS, that software is Quick Link II or Comit. Under Windows, there is a "Rockwell RPI applet" that you have to run (or use Quick Link II for Windows). None of that is going to help you with DOS software like packet drivers that don't support Rockwell RPI. Your modem will still work, but you won't be able to use its data compression, error correction, or flow control features. To determine if your modem is Rockwell RPI, type "ATI3" in terminal mode of your communications program. If the modem returns a string containing the word "RPI", it's an RPI modem. See this page for more gripes about RPI modems: http://www.columbia.edu/kermit/faq-c-rpi.html Finally, it is possible that your modem will work with regular communications software at some given speed, but it won't work for Internet at the same speed. For example, if you have a 14.4k modem with V.42bis compression, you would normally set up your software to run it at 57.6k. That might work fine for BBSing, but it might not work for Internet because Internet is more work for the processor. This depends on the speed of your system, the type of UART chip the modem has, and the packet driver you select. Under no circumstances, though, should the modem's connect speed (the DCE rate, set via the init string) be greater than the packet driver speed (the DTE rate, configured in the dialer and packet driver). Static vs. Dynamic IP ----------------------------------------- Every machine on the Internet has a numeric address called its "IP address," for example, my machine is 204.117.9.33. If you get the same IP address every time you dial in to your provider, as I do, that is called "static IP address assignment." It costs your ISP about $10 a month to reserve an IP address (well, probably a bit less, since they buy in bulk), so it is more economical for them to get a limited set of addresses and share them out. That way, they don't need an address for every user, only an address for every phone line, since not all users are connected all the time, and users who are not connected do not need IP addresses. If your ISP is allocating addresses that way, you will get a different one each time you call, which is called "dynamic IP address assignment." Now, remember that *every* machine on the Internet has an IP address, not just your machine - and that includes the machine you dial into when you call. That machine, which belongs to your ISP, is called your "gateway" machine. On some providers, not only is *your* IP address dynamic, but your *gateway's* address is too. That could happen if your provider uses more than one networked machine to answer calls from users. Dynamic IP with a dynamic gateway is the most complicated situation to handle. Some ISP's are now assigning nameservers dynamically. That is not going to work for DOS. Make them tell you the IP address of one of their servers. SLIP or PPP? -------------------------------------------------- Whether you want to use SLIP or PPP depends on you and on your provider. PPP may be easier to set up, particularly if you use Nettamer (see below), but the SLIP packet drivers take much less RAM (about 6k versus 68k or more), leaving more for your applications to use. Web browsers in particular work better with more RAM, and if you use Etherppp or Klos PPP as your packet driver you might not have enough RAM left to browse the Web at all. Of course, your provider may offer only SLIP or only PPP, so you may not have a choice. Static IP is the simplest situation, and if you have that you can use either SLIP or PPP and your choice of packet driver. All the applications can be set up by simply filling in the values your ISP provides. Static IP, where everything is fixed, is the least problem-prone situation for setting up DOS Internet applications. Dynamic IP with a static gateway is next. Here you will have to find ways to pass your IP address to the various applications you use; of course, it *is* possible to manually modify the configuration of each and every application each and every time you connect, but you *really* don't want to do that, do you ;-)? You can use a combination of DOS environment variables, batch files, and RARP or BOOTP (see below) to pass the IP address to the applications. You can use either SLIP or PPP, but setup is more complicated than in the static IP case. Dynamic IP with a dynamic gateway is the worst case. Here you not only have to pass *your* IP address to your applications, but your *gateway's* IP address as well. The only convenient way to handle this situation is to get a PPP account and use Dospppd as your packet driver, or use Nettamer. If you have a dynamic gateway, it sometimes works to pretend that you have a static one and give the gateway you *usually* get when configuring applications. Don't just give a random number for the gateway, though; it needs to be a machine that actually exists. What You Need to Find Out ------------------------------------- Ask your provider for your: Name of your machine (ex. mypc.foo.bar.net) (static IP only) IP address of your machine (ex. 127.0.0.1) (static IP only) Username (ex. myname) (email address would be myname@mypc.foo.bar.net) Netmask (ex. 255.255.255.0) (mainly needed for Ethernet, but you should come up with something plausible to fill in) Broadcast address (ex. 127.0.0.255) (mainly for Ethernet, but again you need to come up with something plausible) Gateway name (ex. mygate.foo.bar.net) (machine you dial into) (if gateway is static) Gateway IP address (ex. 127.0.0.2) (machine you dial into) (if gateway is static) Nameserver IP address (ex. 127.0.0.3) SMTP server name (ex. mailserv.foo.bar.net) (for outgoing mail) POP server name (ex. mailserv.foo.bar.net) (for incoming mail) NNTP server name (ex. newsserv.foo.bar.net) (for news) POP and NNTP userids and passwords, if different from your usual ones Time server IP address (ex. 127.0.0.2) (may be same as gateway) File to get by ftp listing newsgroups carried by the NNTP server If using PPP, whether your provider uses PAP or CHAP (or neither) for authentication, and the userid and password for that, if so If using SLIP, whether your provider uses regular SLIP, compressed SLIP (CSLIP), or adaptive SLIP Login sequence for your PPP or SLIP account If your provider tells you to get lost when you call their tech support line with these questions, you need to find another ISP. Few ISP's support DOS directly, but they should be able to furnish you with the above information if they know what they're doing and care about their customers. Not everybody has Windows or Mac, and people who are running Linux or FreeBSD need this information as much as you do. You can usually figure out the login sequence for your ISP by just calling them with a regular communications program and seeing what you get; you will use that information to write a dialing script for your packet driver or its dialer. If your provider does not have a file available listing the newsgroups they carry, it is possible to get such a list via telnet. See file cutcp-b.txt in this directory. SLIP and CSLIP (SLIP with Van Jacobson compression) are different methods of connecting to your ISP and use different packet drivers. You need to know which kind your ISP uses so you can select the right packet driver. If your provider has adaptive SLIP, though, that means that you can use either SLIP or CSLIP and they will adjust on their end. You might not need all this, depending on which applications you pick. Nevertheless, you should find out as much as you can since you can mess up the 'net if you get your settings wrong (which would make people very mad at you - particularly getting the IP address or machine name wrong with static IP). It helps if your provider has a fair amount of patience as well :-), but don't expect a lot of help from them since most providers only support Windows and Mac nowadays. If you want to know what some of the stuff above is, get tcpdocs.zip. TCPINTRO.DOC is a basic introduction to TCP/IP, the Internet protocol suite. TCPADMIN.DOC contains more information for the terminally curious. TCPIP1.FAQ, TCPIP2.FAQ, TCPIP3.FAQ, TCPIP4.FAQ, and TCPIP5.FAQ are parts 1, 2, 3, 4 and 5 of the comp.protocols.tcp-ip.ibmpc FAQ. This is an old version from 1995; I can't find a newer one. A lot of the stuff in the FAQ is about Windows, but there is some on DOS as well. Finally, don't imagine that you can get by without reading documentation. *No* DOS Internet application works right out of the box. You will need to study the docs that come with each program to get things to work right. I've written some .txt files that will hopefully be helpful as well. Nettamer and Integrated Dialers ------------------------------- The easiest way to proceed is to use Nettamer, which requires a PPP account (it will not work with SLIP or an Ethernet card). Nettamer is an all-in-one program that needs no packet driver and supports ftp, telnet, mail, news, WWW, ping, and finger (telnet and WWW leave a bit to be desired). Get n1092-xt.zip, n1092-xt.txt and ntfaq.txt for Nettamer. This above is not the newest version, which is at: http://www.nettamer.net/ In addition to Nettamer, the Bobcat and Arachne distributions (see below) come with dialers and packet drivers. I do *not* recommend that you use them, though you can try them if you want. There are three reasons for that. First, it is difficult enough to get dialed up and connected without worrying about how to configure a complicated application at the same time. Second, if you use Bobcat or Arachne to dial your ISP and load your packet driver, you are pretty much locked in to using Bobcat or Arachne for all your Internet work. Third, the batch files that Bobcat and Arachne use for dialing and packet driver loading require DOS 5.0 or later (Bobcat comes with some alternate batch files for DOS 3), though the programs themselves will work with DOS 3.3. So I say, take the long way around; the view is better :-). Bobcat and Arachne use Dospppd for PPP and Slipper or Cslipper for SLIP, if you use their internal dialing capability. Those are pretty good packet driver choices. Packet Drivers (in General) ----------------------------------- If Nettamer doesn't meet your needs, or if you are using SLIP or an Ethernet card, you need to get and install a packet driver, then get and install the applications you want. Some packet drivers, such as Etherppp, include an internal dialer that will use a script you write to log into your ISP. Others, such as Dospppd and Umslip, come with an external dialer that you configure in much the same way. Some packet drivers, however, do not come with a dialer and assume that you are already dialed in and connected before you load them. For those programs, you will need to get a dialer. Any communications program can be used as a dialer if it is capable of dialing the phone, logging you in, and exiting while leaving DTR up (i.e., leaving the connection open). I personally prefer to use CHAT0.EXE, which comes with Dospppd. Another alternative would be PHONE.EXE, which comes with Umslip. I also have two general-purpose dialers in this directory. If you use Bobcat to dial the phone (see above), it will use Netdial, which is much simpler to write a script for than CHAT0.EXE (though of course Netdial is less powerful). Netdial uses the same script syntax as Etherppp's internal dialer. Get nd130.zip and nd130.txt for Netdial. Comtool is a minimal command-line dialer that doesn't use a script; you specify everything on the command line. It might work for you if your login sequence is simple. Get comtool.zip for Comtool. If you use PHONE.EXE as the dialer for your SLIP account (you can't use it with PPP, AFAIK), you need to get tcpdocs.zip. There is a section in TCPIP1.FAQ on using packet drivers other than UMSLIP.COM with PHONE.EXE. PPP Packet Drivers -------------------------------------------- There are three packet drivers choices for PPP. The best PPP packet driver around is probably Dospppd. It is a more-or-less direct port of the excellent Linux pppd program, including the chat dialer. It emulates either class 1 (Ethernet) or class 6 (SLIP). Dospppd takes about half as much RAM as either Etherppp or Klos, appears to be much faster, and works with every application I tested it with. Setting up this one will be easier if you've used its Linux cousin, or know someone who has (though the included documentation is quite good). Get dosppp06.zip and dosppp06.txt for Dospppd. One of the best features of Dospppd, if you have dynamic IP, is that it automatically creates a batch file named IP-UP.BAT at connect time that can be used to set environment variables for your local and gateway IP addresses. Dospppd supports BOOTP, but not RARP. If you find it difficult to select an init string or write a Chat script for Dospppd, you might try Alfredo Cole's Dospppd setup package. Get setup.zip and cole.txt for that. Before Toni Lopez wrote Dospppd, I used to use Etherppp; get ethernew.zip and ethernew.txt. Etherppp emulates Ethernet (class 1). Etherppp works well enough for most applications, but it doesn't support modems faster than 14.4k. Etherppp supports both BOOTP and RARP. Marc Williams has switched to Dospppd also, but he started out using Quakeppp. It is no longer available, but a newer version of the Klos packet driver in Quakeppp can be downloaded from: ftp://ftp.klos.com/ http://www.klos.com/ The packet driver is named PPPSHARE. Klos's PPP can also emulate Ethernet. You should also get klosppp.txt from my site for instructions on setting up Klos PPP. Klos works best if you have a newer modem with a 16550 UART, or if you have a 386 or above. Klos PPP requires DOS 3.3 or later. Recent versions of Klos PPP won't work on my machine any more, but last I heard it supported BOOTP, though that was problem-prone. There is a program included for configuring WATTCP applications that may or may not work. I don't know about RARP. Note: if you are connecting via PPP and your provider requires CHAP authentication, you can't use Etherppp. You will need to get either Dospppd (preferable) or the *demo* version of Klos PPP, named PPPDEMO and available at the Klos sites above. It is time-limited to 15 minutes of connect time, so if decide to use it you will ultimately want to buy the full version of Klos. (Nettamer supports CHAP also, if you use that.) SLIP Packet Drivers ------------------------------------------- There are several packet driver choices for SLIP also. Umslip is a class 6 (SLIP) driver; get sliparc.zip and sliparc.txt for Umslip. Umslip comes with a dialer, which other SLIP drivers do not, but it has nothing else to recommend it. Several applications require a class 1 packet driver and will not work with class 6. Slipper and Cslipper can emulate class 1 and are compatible with more applications. SLIPPER.EXE is the packet driver for regular SLIP, and CSLIPPER.EXE is the driver for compressed SLIP (CSLIP). They are both in the same archive; get slippr15.zip and slippr15.txt for them. They do not come with a dialer, so you need to get one (see above). Slipper and Cslipper support BOOTP, but there is no configuration file to set the nameserver or netmask. It appears that for BOOTP to work with these drivers, your ISP must have server-side BOOTP support on their end. (Cisco servers can provide BOOTP over a SLIP link.) Marc has used Cslipper successfully. Frank Molzahn has written a pair of very small packet drivers for SLIP and CSLIP. They emulate class 1 and support RARP but not BOOTP (the RARP here is an emulation; you need to use Ipread to get the IP address to configure it). They don't come with a dialer. Frank is requesting feedback on the drivers if you try them; his email address is in the documentation. Get csl_b04.zip and csl_b04.txt for Frank Molzahn's SLIP drivers. These programs are still officially under development, so check Frank's site for the latest: http://home.cc.umanitoba.ca/~molzahn/cslip.html Other Packet Drivers ------------------------------------------ If you're connected to a local area network with an actual Ethernet card in your machine, you can probably find a packet driver for it in the Crynwr/Clarkson packet driver set. As noted above, I'm not going to dwell much on Ethernet setup - ask your LAN administrator for help. Get pktd11.zip for the Crynwr packet drivers. Crynwr's Web site is at: http://www.crynwr.com/ Applications (in General) ------------------------------------- After you've figured out how to dial out and get your packet driver to load, you select the applications you want and set them up. This is the time when you really wish you had static IP, but you can get dynamic IP to work with any application, it's just a little more trouble. For dynamic IP, you will generally have to set DOS environment variables in batch files. When you do that, you may get the message, "Out of environment space" from DOS. If that happens, you need to edit your CONFIG.SYS file and use the SHELL= command to increase the environment space, like this: SHELL=C:\DOS\COMMAND.COM C:\DOS\ /E:1024 /P Check your DOS manual and make sure that you know what that means; it should work as is for most people, but it depends on where you have COMMAND.COM installed. Whenever you modify CONFIG.SYS, for this or any other reason, always check the changes using a bootable floppy before you change CONFIG.SYS on your hard drive. Whether you have static or dynamic IP, you may also need to modify CONFIG.SYS to increase the maximum number of open files. You use a line like this to do that: FILES=20 Perhaps a little about how DOS Internet works is in order. The Internet uses a layered model, where each layer of software runs on top of and uses services provided by the layer below. The lowest layer is the hardware itself, in your case, your modem, the phone line, and your ISP's modem. On top of that, you have a driver for the hardware, in your case, your packet driver. So far it is the same as on any other operating system. Next comes the TCP/IP stack. This is where it gets different. Technically, IP runs on top of the hardware driver, and TCP runs on top of IP. Generally, though, IP and TCP are integrated into the same piece of software, called a TCP/IP stack. Under Windows, the TCP/IP stack is usually Trumpet Winsock. Under Linux, the TCP/IP stack is integrated into the operating system kernel. Under DOS, however, the TCP/IP stack may either be integrated into the application or be a separate TSR that you must load. To run an Internet application, you must first configure its TCP/IP stack, telling the application or its TSR what your IP address is, your nameserver, your gateway, your netmask, and other things. Hence, how you configure an application mainly depends on the TCP/IP stack it uses, and applications that use the same stack are configured similarly. The four major TCP/IP stacks used by DOS applications are WATTCP, Trumpet TCP, the University of Minnesota stack, and the NCSA/CUTCP stack. Over half of all DOS Internet programs use the WATTCP stack. In their case, the stack is integrated into the application. To configure them, you edit a file usually called WATTCP.CFG (for Doslynx it is called DOSLYNX.CFG, and for Arachne, LANTCP.CFG). WATTCP does not support RARP, and BOOTP does not work with it over a SLIP or PPP link (because of problems with the netmask). To configure these applications for dynamic IP you will have to set environment variables for your IP address and if necessary your gateway address as well, then create a batch file that uses those variables to generate files that can be included into WATTCP.CFG. To illustrate: I load Dospppd as my packet driver, and it generates the file IP-UP.BAT. I then run IP-UP.BAT, which sets the following DOS environment variables: MYIP (my local IP address) REMIP (the IP address of my gateway) NETMASK (my netmask) PEERMRU (the largest PPP packet the gateway will accept) To configure WATTCP applications, I need MYIP and (if my gateway is dynamic also) REMIP; the others don't matter. I make a batch file like this and run it next: echo my_ip=%MYIP% > ipaddr.cfg echo gateway=%REMIP% > gateway.cfg That creates two files, IPADDR.CFG and GATEWAY.CFG, which look like this (for me): my_ip=204.117.9.33 (for IPADDR.CFG) and gateway=199.191.1.70 (for GATEWAY.CFG). Now when I edit my WATTCP.CFG file and it asks me to set the my_ip parameter, I comment out that line and put this instead: include=ipaddr.cfg Similarly, where it asks me to set the gateway, I comment that out and put this: include=gateway.cfg Now, assuming I've configured the rest of WATTCP.CFG and whatever else that particular application may require, I can run WATTCP applications in my dynamic IP setup. Of course, if I had static IP (as I really do) there would be no need for me to go through all that rigamarole. All I would have to do is just type my static IP and gateway addresses into WATTCP.CFG along with the other stuff in there, and I'd be ready to go. I've constructed what I call "the ultimate WATTCP.CFG file" containing all the variables required or used by the various applications; get mywattcp.zip to look at it. The Trumpet TCP/IP stack, unlike WATTCP, is generally loaded as a separate TSR (NTCPDRV.EXE). The applications then use the TSR to connect to the Internet. Trumpet IRC (IRC 1.01) and Ping, however, do not use the TSR; the Trumpet TCP stack is integrated into them. In either case, DOS environment variables are used for configuration: IP (your IP address) NETMASK (your netmask) GATEWAY (your gateway's IP address) DNS (your nameserver's IP address) MSS (largest packet you will agree to receive) RWIN (size of buffer for incoming packets) DOMAIN (your domain - optional, see below) TZ (your time zone - optional, see below) If you have static IP, you can just set these variables in AUTOEXEC.BAT and forget about it. In any case, your netmask, nameserver, mss, rwin, domain and timezone should be constants, so you can set *them* in AUTOEXEC.BAT. MSS and RWIN should be set to 512. This prevents packet fragmentation and is necessary with Frank Molzahn's SLIP drivers. As noted above, if you use Dospppd and you run the IP-UP.BAT it generates, it will set MYIP, NETMASK, and REMIP for you. To convert MYIP and REMIP to IP and GATEWAY as Trumpet TCP requires, you can make a batch file like this: set ip=%MYIP% set gateway=%REMIP% DOMAIN is your domain. Normally, that is the part of your machine name after the first dot. For example, my PC is jhayes.buckeyeweb.com. I would set DOMAIN to "buckeyeweb.com". You don't really need to set DOMAIN, however, and it is probably better if you don't (speeds up DNS queries). TZ is your time zone. This is a three-letter code, followed by a number indicating the offset from Greenwich Mean Time, optionally followed by a three-letter code for daylight savings time (if it's summer). It is not terribly important, and you can leave it out. If you want to set it, however, this is for the east coast of the U.S.: SET TZ=EST5EDT The Trumpet newsreader naturally uses the Trumpet TCP stack, but it does not use the TSR or the environment variables; instead, you configure it from inside the application. A configuration file, NEWS.PRM, is generated. To use the newsreader with dynamic IP, you need to make a batch file for it specifying command-line options to override the settings in the file, like this: news -myip=%MYIP% -gateway=%REMIP% Finally, it could be said that Trumpet applications support BOOTP, but only if the IP and MYIP environment variables are *not* set (the -myip=bootp command-line option is ignored). I find that sort of behavior too screwy to deal with and just use the variables. The University of Minnesota applications are Minuet, POPmail, and PC Gopher III. You configure them from inside the application, which contains the TCP/IP stack. How you configure them for dynamic IP depends on the application. First, you can leave the IP address, Net mask, Gateway, and Name Server settings blank in the dialog box - in the case of PC Gopher III, there is a Use BOOTP box that must be checked (by default it is). That will cause a University of Minnesota application to use BOOTP, which will work with Dospppd and sometimes Slipper, Cslipper, or Umslip, but not with other BOOTP emulations (like Etherppp's). There is a bug in the BOOTP support of UMinn applications which requires a workaround in the BOOTP server. Otherwise, for Minuet only, if you have dynamic IP and BOOTP doesn't work, leave the IP address, Net mask, and Gateway blank, but fill in the Name Server. Minuet will get the local IP address from the MYIP environment variable and assume a point-to-point connection so that the netmask and gateway are not needed (everything goes out the PPP or SLIP link). Of course, if you have IP set instead of MYIP, you can set MYIP in a batch file like this: set myip=%IP% For PC Gopher III only, if you have dynamic IP and BOOTP doesn't work, then leave the IP address, Net mask, Gateways, and Nameservers blank in the dialog box, and *uncheck* the Use BOOTP box. Exit Gopher, and edit GOPHER.INI by hand to include these settings: pc_ip = %MYIP nameserver_1 = 204.254.98.2 (Use your nameserver's IP address.) This will get your IP address from the MYIP environment variable, as for Minuet. The gateway and netmask do not need to be set; PC Gopher III will default to a point-to-point link. Using BOOTP with Dospppd appears to be the only way to configure POPmail for dynamic IP. Minuet will work for both gopher and email, however. Finally, we have the NCSA and CUTCP applications. They use an integral TCP/IP stack and are configured by editing a file usually named CONFIG.TEL. (CUTCP's is slightly different from NCSA's.) To configure them for dynamic IP, you can use either BOOTP or RARP, depending on which your packet driver supports. BOOTP is probably preferable, since if you use that you don't need to configure the netmask, gateway, or nameserver in the file. Set myip=BOOTP or myip=RARP in CONFIG.TEL. CUTCP (but not NCSA) also supports include files and environment variables to set the local IP address. The environment variable can be set like this: set $cutcp1=myip~%MYIP% You also need to set DOS environment variables to point to the CONFIG.TEL files (whether or not you have dynamic IP), for example: SET CONFIG.TEL=E:\INTERNET\TEL2308B\CONFIG.TEL SET CONFIGTEL=E:\INTERNET\CUTCP-B\CONFIG.TEL (The first line is for NCSA, the second for CUTCP.) You can just put those two lines in AUTOEXEC.BAT. CUTCP, but not NCSA, will also find CONFIG.TEL in the current directory if CONFIGTEL is not set. Some applications (Bobcat and Arachne, for example) require that you be in the directory where you installed them to run them. Others (Dospppd, CUTCP) will run from any directory if you put them in the PATH and configure them correctly. I always change to the directory where I've installed a program before I run it. You can automate such directory changes with batch files, of course. BOOTP, RARP, and Reading from the Screen ---------------------- By now you must be wondering what the hell I'm talking about with "BOOTP" and "RARP." They are protocols that can be used to pass information about the local TCP/IP parameters from the packet driver to the application. Both protocols originated with diskless workstations on an Ethernet, and both normally require a class 1 (Ethernet emulation) packet driver to work. Both the packet driver and the application must support the protocol for you to use it. BOOTP and RARP can be useful if you have dynamic IP. With BOOTP, the packet driver provides the application with the IP addresses of the PC, the gateway, the nameserver, and the netmask. With RARP, the packet driver provides the PC's IP address. Dospppd creates IP-UP.BAT to set the MYIP environment variable for dynamic IP configuration. But how do you set the variable if you're not using Dospppd? If you have RARP, Iprarp and Rarpset can get the PC's IP address from the packet driver by RARP. Iprarp creates a batch file that sets a DOS environment variable to the IP address; Rarpset directly sets an environment variable. Get ipcfg010.zip and ipcfg.txt for Iprarp, and get rarpset.zip and ipcfg.txt for Rarpset. If you are using Klos PPP, it comes with a program PPPWAT.EXE that can create or modify WATTCP.CFG for your dynamic IP configuration. If you have such an automatically generated WATTCP.CFG file (and WATTCP apps work with it), Watbat can extract values from the file and create a batch file to set corresponding DOS environment variables for your other apps. Get watbat.zip for Watbat. Ipread is another program that can be useful with dynamic addressing, particularly if your packet driver doesn't support RARP. It reads the IP address from the screen at connect time and creates a batch file that sets a DOS environment variable to that address. Get ipcfg010.zip and ipcfg.txt for Ipread. If you use BOOTP to configure your applications, remember that the BOOTP support provided by the PPP packet drivers is an *emulation*. In particular, the packet drivers will not know where your nameserver is if you do not tell them, so be sure to configure that, for example by including the "nameserver" line in CONFIG.PPP with Etherppp, or the "namsrv" line in PPPD.CFG with Dospppd. With Etherppp, but not Dospppd, you also need to configure the gateway, using the "gateway" line in CONFIG.PPP. It is a good idea to explicitly specify the netmask as well. Similarly, the RARP support in Frank Molzahn's drivers is an emulation, and you need to set the IP address on the command line for it. You can use Ipread to automate the process. Note that BOOTP doesn't seem to work that way with Slipper, Cslipper, or Umslip. Those programs must be getting the local address, gateway, netmask, and nameserver from the ISP somehow, since there is no configuration required for them. Application Suites -------------------------------------------- A good application to start with is Minuet; it may be all you need. Minuet provides ftp, telnet, mail, news, WWW (graphical if you have EGA or VGA, but that works best if you have a 386 or better), gopher, finger, ping, and nslookup, with context-sensitive online help, mouse support, and many other features. It supports both class 1 and 6 packet drivers. Note: the news module in Minuet won't work if your provider carries a huge number of newsgroups or if you have a compressed drive. Get minuarc.zip, minufaq.txt, and minuarc.txt for Minuet. Etherppp or Dospppd might work better with Minuet than Klos. NCSA Telnet provides telnet, ftp, finger, whois, rsh, rexec, rcp, lpr, lpq, and lprm. rcp and ftp can operate in server mode when telnet is running. The telnet offers a complete, configurable VT100 emulation including Tektronics 4014 graphics mode on Hercules, CGA, EGA, or VGA. You can have multiple telnet sessions going simultaneously. Note: these applications can't resolve domain names, and you have to specify IP addresses, either on the command line or in the configuration file. NCSA Telnet supports class 1 packet drivers only, so it won't work with Umslip. Get tel2308b.zip, tel2308b.txt, tel23asc.zip, and tel23asc.txt for NCSA Telnet. CUTCP Telnet is an offshoot of the NCSA Telnet package and is set up similarly. It provides telnet, tn3270, ftp, ping, lpr, lpq, and lprm, and it seems to deal with domain names better than NCSA Telnet. Like that package, CUTCP Telnet offers a complete VT100 emulation and supports incoming ftp during a telnet session. It supports both class 1 and 6 packet drivers. Get cutcp-b.zip and cutcp-b.txt for CUTCP Telnet. The documentation for NCSA Telnet will also be helpful with this one - get tel23asc.zip and tel23asc.txt as well. Trumpet TCP (not to be confused with the Trumpet newsreader, from the same people) is a set of Internet applications using an included TSR to interface with the packet driver. Both class 1 and class 6 are supported. The applications are: telnet, ftp, finger, ping, archie, whois, hopchk (traceroute), and ichat (similar to Unix talk, apparently, but incompatible). The archie in this package is the only working DOS archie client I've found, but the other stuff doesn't work all that well. Dospppd and Klos PPP work better with these than Etherppp. Get tcp201.zip, ntcpdrv.zip, and tcp201.txt for Trumpet TCP. The Trumpet TCP apps work best with Slipper or Cslipper. The WATTCP applications are the "example" apps that come with the Waterloo TCP development package, plus ftp. They include a fortune cookie client, two time clients, finger, lpr, lpq, ping, rexec, talk, a phonebook client, a POP mail retriever, a program that sets up a TCP connection to mimic a serial port (so that you could use a regular communcations program as a telnet client, for example), and of course ftp. Get wattcp.txt and wattcp.zip for the Waterloo TCP applications. Mail Clients -------------------------------------------------- POPmail is a full-featured email program, with menus, online help, scrollable windows, and mouse support. POPmail requires DOS 3.0 or later. Get popml322.zip and popml322.txt for POPmail. Pegasus Mail has got to be the ultimate DOS email client. (It includes basic MIME support and can control an automated mailing list, among other things.) Pegasus Mail has menus (but does not support a mouse) and comes with a great deal of documentation. It requires a class 1 packet driver and DOS 3.0 or later. Get pmail331.zip, pmpop110.zip, and pmail331.txt for Pegasus Mail. There is an official Web site for Pegasus Mail: http://www.pmail.com/ I don't have the latest Pegasus Mail, but there is no advantage to the newest one if you're not on a Novell network, and it takes more memory than the version I have. If you have problems retrieving mail from your POP server, you can try using Smtpop with Pegasus. Smtpop is somewhat more sophisticated but less convenient than the default setup. Get smtpop12.zip and smtpop.txt for Smtpop. Popgate is another transport agent you can try. It runs from inside Pegasus like Pmpop does, but Popgate is more complicated to set up. Get popgt10d.zip and popgt10d.txt for Popgate. FTP Clients --------------------------------------------------- Wattcp FTP is a command-line ftp client. It has a scripting capability, can resolve domain names, and displays the number of bytes transferred during a GET or PUT. Get ftp07.zip and ftp07.txt for Wattcp FTP. This is a very reliable and relatively easy-to-configure application, which makes it a good one to test your packet driver with. WWW Browsers -------------------------------------------------- Doslynx is a text-based Web browser; it requires DOS 3.0 or later. Inline .gif's can be displayed if you have a graphics card (Hercules, CGA, EGA, or VGA). It has windows, menus, and mouse support. Get exe_16a.zip and exe_16a.txt for Doslynx. The Etherppp packet driver is prone to frequent lockups with Doslynx; better to use Dospppd or Klos PPP with this one. Bobcat is a good text-based WWW browser, successor to Doslynx, and very similar to Unix Lynx. It requires DOS 3.3 or later. Klos PPP or Dospppd work better with it than Etherppp. Bobcat is highly configurable, but setup can be somewhat involved. Get bcat-e06.exe and bcat-e06.txt for Bobcat. The main program (LYNX.EXE) requires more memory than the one in version 5 did, though version 6 is better behaved in low-memory situations generally. Get lynx05.zip also for version 5 LYNX.EXE. Bobcat is under active development; if I'm out of date, you can get the latest version from: http://www.fdisk.com/doslynx/bobcat.htm Arachne is a graphical WWW browser, and yes, it will run on an XT, albeit slowly. It requires DOS 3.3 or later. You must have EGA or better video and a mouse. At least some EMS is strongly recommended, and for best results, 640x480x256 SVGA or better is required. Get arcn14b2.exe and arcn14b2.txt for Arachne. Arachne almost requires a hard drive cache; if you don't have one, but you have some EMS to use for one, get adcsh122.zip. Arachne is under active development; if I'm out of date, you can get the latest version from: http://arachne.browser.org/ There are also some Arachne plugins (telnet, etc.) to be found there. One such plugin is extedit.exe. It provides some alternate mail menus for Arachne and permits the use of an external editor. This one you have to install yourself, though - I'm not allowed to have APM files on my site. News Readers -------------------------------------------------- Trumpet is a nice news reader that supports both class 1 and class 6, and you can get it to work with sites that carry huge numbers of groups (with a little fiddling). It has windows and menus and supports a mouse. Get trmp106b.zip and trmp106b.txt for Trumpet. The newsreader has not been updated in a while, but if you want to visit Trumpet's site, the URL is: http://www.trumpet.com.au/ Despite what they say, the newsreader *does* work with PPP. Trumpet doesn't contain any capability of dealing with uuencoded or MIME-encoded messages, so if you're interested in binary newsgroups, you'll need decoders. For a uudecoder, get uuexe656.zip. To decode MIME under DOS, get mpack15d.zip. IRC Clients --------------------------------------------------- IRC is an Internet Relay Chat client; Internet Relay Chat is a way of conducting multiuser discussions over the Internet (like forums on a BBS). It supports both class 1 and class 6 packet drivers. The program has menus, scrollable windows, and mouse support. Get irc101.zip and irc101.txt for IRC. The #dos channel on Efnet is a good place to discuss DOS Internet stuff. Mark Williams is a frequent visitor there; his nick is Senshi. Voice is another Internet Relay Chat client. You might like this one better if you're used to ircII on Unix; it can also connect to more sites than IRC101. Get voice11b.zip and voice11b.txt for Voice. jpIRC is the best DOS IRC client around. It includes ident and CTCP PING support, which enables it to connect to many sites that IRC101 and Voice will not. It can also receive (but not send) files by /dcc and check perodically for incoming mail, and you can shell out of it. jpIRC is a Trumpet TCP application, so you need to get Trumpet TCP set up first (see above). As a Trumpet TCP application, it supports both class 1 and 6. Get jpirc.zip and jpirc.txt for jpIRC. Miscellaneous Applications ------------------------------------ Ping is a ping client (as you might have guessed). It didn't come with any documentation, but it appears to be a Trumpet TCP application with integral stack (i.e., you don't need NTCPDRV.EXE for it). It supports both class 1 and 6 packet drivers. Get ping.exe and ping.txt for Ping; ping.exe is the actual program, not an archive. This one is pretty simple and makes a good program to test your packet driver with. Nslookup is a simple application that looks up the IP address for a domain name or vice versa. It didn't come with any documentation. Get nslookup.zip and nslookup.txt for Nslookup. BSD Nslookup/Nsquery is a direct port of those applications from Berkeley Unix. They require a class 1 packet driver. While they can be used in the same way as the Nslookup above, they do much more, though you need to be pretty well-informed to use the advanced features. Get nslb01a.zip and nslb01a.txt for BSD Nslookup/Nsquery. PC Gopher III is a gopher client with menus, scrollable windows, and mouse support. It supports both class 1 and class 6 packet drivers, but it requires DOS 3.3 or later. Get pcg3bin.zip, pcg3doc.zip, and pcg3note.txt for PC Gopher III. Talk is a DOS version of the Unix talk program for 2-way interactive communication over the Internet. Get talk-13.zip for Talk. It is a WATTCP application and is set up similarly. Pcfsp is an FSP client. FSP is sometimes used in place of FTP to transfer files over the Internet. Get pcfsp105.txt and pcfsp105.zip for Pcfsp. MudCaller is a MUD client (i.e., telnet with macros for connecting to a MUD). It doesn't seem to work very well. Get slip_mud.zip and slip_mud.txt if you want to try it anyway. Jeff Patterson (author of jpIRC) has also written some clients for telnet, nslookup, and finger. Like jpIRC, they are Trumpet TCP applications, so you need to set up Trumpet TCP first. The telnet doesn't work for me, but nslookup and finger do (these programs don't come with any documentation). Get tn102.zip and tn102.txt for Jeff Patterson's clients. Trout is a traceroute (hopcheck) client for DOS, essentially a clone of Unix traceroute. It requires a class 1 packet driver. Get trtb01b.zip and trtb01b.txt for Trout. If you are interested in Web authoring, two tools you can use are Htget and Knots. Htget is a command-line HTTP retriever; get htget102.zip and htget102.txt for it. Knots is a graphical HTML viewer. It only supports a small subset of HTML codes, but it will work with any graphics card, even CGA or Hercules. It uses an "FAT" file to convert URL links to local filenames. Get knots2_0.zip for Knots. Note that Knots is not a browser - if you need a browser, use Doslynx, Bobcat or Arachne instead. Other Links/Sites --------------------------------------------- I also have some Advanced and Untested Applications, if you want to do something bizarre like telnet to your PC or mount remote NFS drives - or for programs I just haven't tried yet. You're on your own with these: ftp://ftp.oldskool.org/pub/tvdog/internet/advanced/ Also check out Nigel's (unfinished) List of PPP & Internet Applications for DOS at: http://www.tropinet.com/ppp.html And see the FDISK.COM DOS Internet page at: http://www.fdisk.com/doslynx/ Another site worth checking out is Dan Komaromi's page on setting up Internet email for DOS: http://www.komaromi.com/dos_email/ See UKA PPP at: http://mvmpc200.ciw.uni-karlsruhe.de/~mvmpc9/public/uka_ppp/welcome.htm If you're looking for KA9Q, these people have a version that they claim will run on an 8086: ftp://ftp.demon.co.uk/pub/demon/ibmpc/dos/files/old_versions/ While not precisely Internet-related, Eko Priono's 386 software emulator can be useful. It requires a 286. It may permit you to run some applications that normally require a 386: ftp://ftp.oldskool.org/pub/tvdog/tandy1000/utilities/em3134b1.zip Jeffrey L. Hayes