Notes on Etherppp ----------------- Few Internet applications understand PPP packets - Minuet, for example, does not. Etherppp (PPP.EXE) is a PPP packet driver that emulates Ethernet for use with applications that don't support PPP (*every* app supports Ethernet). Etherppp works best with older modems (14.4k and below); use Klos PPP or Dospppd for newer, faster ones. PPP.EXE uses two configuration files (DIAL.PPP and CONFIG.PPP) and several command-line options. See the READ.ME file in the Etherppp package to find out about DIAL.PPP. See ETHERCMD.TXT in the Etherppp package to find out about CONFIG.PPP. Here are some of the command-line options; see READ.ME for more information: /b 0x2e8 Comm port base address for nonstandard setup. You can use /c instead of /b and /i if you have your modem on a standard COM: port. /c 1 Use this if the modem is on a standard COM: port. Values can be 1, 2, 3, or 4. If the modem's IRQ or base address are different from a standard COM: port, you need to use /b and /i to specify them. /d script Run dialup script DIAL.PPP. Note: this is "/d script" verbatim, not "/d " - the name of the script is hard-coded. If PAP is being used for authentication, you can specify a dialing string instead, ex. "/d atdt5551212". Using a dialing string instead of a script will only work if the provider connects you right up without requesting username, password, protocol, etc. /f 0 This option supposedly disables FIFO checking. It doesn't work any more in version 1.9.49 and will cause the command line to be ignored, so don't use it. /h 0 Don't use hardware flow control (RTS/CTS). PPP.EXE probably won't work if you try this. Old modems without flow control will work fine anyway. /i 5 IRQ line for nonstandard setup. You can use /c instead of /b and /i if you have your modem on a standard COM: port. /k 1 Specify packet type to use. Valid values are 1 (Ethernet) or 15 (PPP). Most applications do not support PPP packets, so you should leave this one alone (default is Ethernet). /p 0x60 Set the packet driver interrupt. There is no need to use this option unless you want to use two packet drivers. 0x60 is the default. /s 2400 Set modem speed to 2400 baud. /u The docs say this is for specifying your PAP username and password, but in fact it unloads the driver ("ppp /u" is the same as "termin 0x60"). If you need to specify the PAP username and password, do so in CONFIG.PPP. PPP.EXE does not appear to support CHAP authentication. /v This sets "verbose mode," displaying the progress of the connection. In the last version that I had, it didn't work. Now it does. According to S. Shrividya , the order in which you specify command-line options is significant - some options may be disregarded if the order is wrong: What I found best was this order: ppp /c /v /s 19200 /d script /q 1 When I changed the order and put /s 19200 in the end, it would not accept it and would always dial with the default speed(9600). I did not realize this till I had to connect to a modem which accepted ONLY high speed connections. Everything failed and I spent a lot of time trying to get this to work. If you got Etherppp from ftp.agate.net:/users/01935/internet some time ago, it may have been version 1.9.37. This is the newest one, v1.9.49. 1.9.37 is still out there on the 'net if you want it (try archie - filename etherppp.zip), and it is much easier to find than this version. Unfortunately, it seems that the documentation doesn't change when the program does, so the command-line parameters don't all work as advertised. An invalid command line doesn't always get you a syntax message; PPP.EXE often responds to invalid command-line syntax by ignoring all the parameters (even the valid ones). When you do get a syntax message, take it with a grain of salt - it hasn't been updated either. The "ppp trace" command in CONFIG.PPP does not seem to do anything. Using "/d script" on the command line, the script executed will be DIAL.PPP in the directory where PPP.EXE was installed (under DOS 3.0 or later) or in the current directory (earlier DOSes). CONFIG.PPP will automatically be executed if it exists and will be in the same place. In other words, DIAL.PPP and CONFIG.PPP need to be in the same directory with PPP.EXE, you can't change their names, and under DOS 2.x you need to change to the directory where PPP.EXE was installed to run it. PPP.EXE takes 126624 bytes of conventional RAM when loaded. If you have too many TSR's and device drivers in your CONFIG.SYS and AUTOEXEC.BAT, you might not have enough RAM left to run Internet applications, so get rid of stuff you can do without (I just have a mouse driver and an EMS driver loaded on my Tandy 1000TL). PPP.EXE can be loaded high with DOS 5.0 or later, if you have a 386, or an older machine with an LIM 4.x EMS card. It is recommended that you load it high if you can, since it actually performs better (i.e., fewer lockups). Obviously you don't want to type all those command-line options each time. The solution to this is to create a batch file PPPOPEN.BAT that will open the PPP connection. Here is the PPPOPEN.BAT I use to connect to Agate with a 2400-baud modem on COM4:, IRQ 5. For DOS 2.x you would need to add a line to change to the directory where you installed Etherppp: e:\internet\ethernew\ppp /i 5 /b 0x2e8 /s 2400 /d script /v Here is an example DIAL.PPP script. The timings are conservative; shorter waits on the "recv" commands are probably acceptable. This depends on your provider's login sequence, of course: ------- DIAL.PPP script example begins ---------- send "atz\r" recv 10000 "OK" recv 1000 send "atdt990-0714\r" recv 60000 "CONNECT" recv 10000 send "\r" recv 30000 "ogin:" recv 1000 send "username\r" recv 30000 "ssword:" recv 1000 send "password\r" recv 30000 "beginning...." ------- DIAL.PPP script example ends ------------ The modem needs to be set up to hang up the modem when DTR is dropped (&D2). If it uses data compression or error correction, they should be enabled. If it provides hardware flow control, enable that. DCD should follow the true state (&C1). PPP.EXE will not load if it cannot set up a connection. In version 1.9.49, it is now possible to break the PPP connection without rebooting (1.9.37 required a hard reset). The first way is to enter "ppp /u" at the DOS prompt (this is an undocumented option, BTW). The other way is to enter "termin 0x60". These two do the same thing: break the PPP connection, hang up the phone, and unload the packet driver. If you use TERMIN.COM, you should probably use the version in the Etherppp package and not the one in the Umslip package. If you forget to close the connection when you're done, you'll be unpleasantly surprised by your service provider's bill :-). Here is the PPPCLOSE.BAT I use to end a session: e:\internet\ethernew\ppp /u Consult ETHERCMD.TXT for information on writing a CONFIG.PPP script; I can't say that I entirely understand it myself. Here is a script used to work for me (before I changed providers): ------- CONFIG.PPP script example begins -------- ppp trace 0 gateway 199.191.1.70 nameserver 199.191.1.80 ppp ipcp local compress tcp 16 1 ppp ipcp local address 127.0.0.1 ppp ipcp open ppp lcp local accm 0 ppp lcp local acfc on ppp lcp local pfc on ppp lcp local magic on ppp lcp open ------- CONFIG.PPP script example ends ---------- You can also try the built-in CONFIG.PPP. If it's no-go with that, here is a recommended generic CONFIG.PPP script, according to the PPP FAQ. In addition to what was in the FAQ, you also need to have "gateway" and "nameserver" lines, which I've added below. Change them to correspond to your gateway and nameserver. Note: If you have dynamic IP and get a different gateway each time, just put in the gateway you *usually* get; it will probably still work: ------- generic CONFIG.PPP script begins ---------- gateway 127.0.0.2 nameserver 127.0.0.3 ppp ipcp local compress allow ppp ipcp open ppp lcp local accm 0 ppp lcp local acfc on ppp lcp local pfc on ppp lcp local magic allow ppp lcp open ------- generic CONFIG.PPP script ends ------------ The two programs INST.EXE and PKTSTAT.COM display information about the link (after you're connected, of course), such as the number of packets sent and received and the number dropped.