1) general info

 LSppp is a small MSDOS PPP packet driver.  It is compatible with the
 needs of WATTCP and trumpet stacks.  The resident size is approximately
 28K.

 LSppp loads as a class one ethernet driver and handles all
 aspects of the connection from dialing onward.  Optionally, an external
 dialer may be used to dial an ISP prior to running LSppp; it will
 detect the carrier and go immediately into internet communications
 setup.

 LSppp is capable of auto-configuring WATTCP through the bootp mechanism
 and will do so automatically.  However, for this to work properly LSppp
 will have to be supplied with name server information.  LSppp will
 attempt to automatically load name server information from the ISP
 if none is specified on the command line, however, this is an optional
 feature your ISP may not support.  To see if it is supported run LSppp
 without specifying the name server switch (/N) and see if it places
 DNS addresses in the IP-UP.bat file

 LSppp does not use configuration files; all parameters are placed on
 the command line or optionally in the LSPPP environment variable.
 LSPPP will search the environment variable for valid command switches
 first, then modify this information with command switches specified on
 the command line.  Configuration options include user name and
 password, number to dial, nameserver information, and various options
 to set up a communications port to use or customize the timeout
 mechanisms.

 The current version does not have a lot of backwards compatability for
 old versions of the protocols.  If you have problems running it use the
 undocumented /z switch and send the resulting LSPPP.LOG file to the
 author for analysis.  Note that to get a log file you MUST use the /z
 switch; the /l switch is now used for local mode

 Van jacobsen compression and the CHAP protocol have recently been added
 to LSPPP.  Other less used protocols (including MSCHAP) are not
 currently supported.

 Note that the undocumented /l option has been changed to the
 undocumented /z option.  Use of the new /l option will in general cause
 internet connections to not work.

2) Disclaimer and license

    LSPPP - DOS PPP Packet Driver
    Copyright (C) 1997-2003  David Lindauer

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

    (for GNU General public license see file COPYING)

    you may contact the author at:  mailto::[email protected]

    or by snail mail at:

    David Lindauer
    850 Washburn Ave.  Apt  99
    Louisville, KY 40222


3) Configuration

When dialing the modem sends the following configuration string:

ATZ

Also if /dm:# is specified the modem will be told to mute the speaker.

At any time before LSPPP goes resident, you may press 'esc' to end the
session and hang up.

Configuration options are as follows:

/a:$    set async map
       set an asynchronous control map.  Characters in the map will be
       treated as purely control characters and will be escaped during
       transmission.  For example if the modem uses XON and XOFF you
       would specify a map of 0x000A0000.
       The default is a map of zero, meaning no characters are escaped.

/b:$    Comm port

       Set a base i/o port.  For example /b03f8
       default: /b:03f8

/d[r][m][f][l][e]:* Dial [redial] phone number

       Set the phone number to dial.  The redial option is not
       supported yet.  The 'm' option tells lsppp to mute the speaker.
       The 'f' option forces it to dial even when it thinks it is
       already connected (useful with winmodems).  The 'l' option
       causes lsppp to initially attempt a terminal-mode login before
       attempting to connect with the PPP protocol.  The 'e' option
       causes lsppp to dial with 'ATX3D' instead of 'ATD', which
       should be useful in Europe where no dial tone exists.
        Example:  /d:5551214
        Example:  /d:P5551214 this does pulse dialing
       default: LSPPP does not dial

/h or /?

       Displays the help text

/i      Comm IRQ (0-15)

       Set the interrupt vector to use
       example : /i:4
       default:  /i:4

/l      Local mode

       Forces LSPPP to not dial (local mode connection)
       Also turns off use of modem control signals

/m:#,#  set MRUs

 sets the maximum recieve unit for both sides of the link.
 The first number is what the number which this client can transmit
 which will be passed to the TCP stack; the second number is the
 amount this client can receive.

 default: /m:576,576

/n:#    Comm port

       Set the com port (1-4).  Automatically sets the /b and /i
       options based on the setting.

       example: /n:1
       default: /n:1

/p  ppp driver interface

 set the driver to use the native PPP packet interface.  By default
 LSPPP will use the non-native class 1 ethernet interface.  Using the
 native PPP interface has slightly less overhead than using the class 1
 interface, for those TCP stacks that support it.

/u      Unload TSR
       unloads the tsr

/x      xon/xoff

       use the xon/xoff protocol instead of modem control signals

/A:#,#    PAP timeout and count

       Set the timeout and count governing password authentication.
       The timeout is in seconds and is the time between retries; when
       count retries have been done LSPPP will give up.  default:
       /A:3,10

/B:#    Baud rate

       Set the baud rate
       example: /B:57600
       default: /B:19200

/D:#,#,#  Dial timeout & count & delay

       Set the timeout and retries for dialing.  This is the time
       LSPPP will wait for a connection (in seconds) and the number of
       retries to make before LSPPP gives up entirely.  The third
       parameter is optional and is the number of seconds after
       dialing before it tries to connect to the ISP.

  default:  /D:45,1,0

/F:#[,#]  UART Fifo buffering

 Set the buffering level of the Uart's receive and possibly transmit
 fifo (if present).  Valid values for receive fifo are are 1,4,8, and 14.
 If the transmit fifo setting is present, valid values are 1-16

 default: no fifo usage

/I:#,#  IPCP timeout & count

       Set the timeout and count governing IP configuration.
       The timeout is in seconds and is the time between retries; when
       count retries have been done LSPPP will give up.
       default: /I:3,10


/L:#,#  LCP timeout & count

       Set the timeout and count governing initial link configuration.
       The timeout is in seconds and is the time between retries; when
       count retries have been done LSPPP will give up.
       default: /L:3,10

/M:*    Modem init string

       Specify a string to use to initialize the modem when dialing.
       A typical example is AT&F to initialize defaults.  Note that
       the dialer will always send ATZ prior to sending the initialize
       string, which resets the modem.  Also the 'm' parameter on the
       dialer can be used to automatically send ATM0 (mutes the modem)
       in addition to this initialize string

 default:  no initialization string used


/N:@[,@]        DNS address

       Set the DNS name server address[s].  First address is primary
       and second address is secondary.  If no name servers are
       specified LSPPP will attempt to auto-configure them from the
       server.
       example:  /N:198.77.33.2,198.77.33.1
       default: /N:0.0.0.0,0.0.0.0 (autoconfigure)
/P:*    passwd

       Set the login password
       example: /P:truely
       default: no login password

/S:@    Suggest address

       Suggest an IP address for the server to assign to LSPPP
       example: /S:199.62.66.44
       default: no address suggested

/U:*    User name

       Set the login user name
       example: /U:dinosaur
       default: user name

/V:$    Packet driver vector

       Set the packet driver vector to use
       example: /V:60
       default: LSPPP searches for a free vector


An example of a valid command line is:

lsppp /dm:5551214 /n:3 /B:57600 /N:101.202.101.4 /U:myname /P:mypass

which uses COM3 to log into an ISP at 57600 BPS with account 'myname'
and password 'mypass'.  A nameserver is specified and the speaker will
be muted.

If we had performed the following to set the LSPPP environment
variable:

set LSPPP=/n:3 /B:57600 /U:myname /P:mypass

Then typing

lsppp /dm:5551214 /N:101.202.101.4

would have the same effect as the first commmand line since LSPPP will
read the environment varible before reading the command line.  Of
course you can put the number to dial and nameserver in the environment
too.

LSPPP will also read from the file LSPPP.CFG which is in the same directory
as LSPPP.EXE.  Format parameters the same as before on as many lines as
you want.