I have been posting monthly "how-to-setup a SLIP client on a PC" posts for a 
few months.  Lots of work, and imminent graduation have come in the way of 
posting one of these for March or earlier this month -- for which I apologize.

This file includes information on writing a script for University of Minnesota
PHONE, and also a batch file hack that lets you use other packet drivers with 
PHONE. 

For additions, modifications and corrections, I can be reached at
<ashok@biochemistry.cwru.edu>

Best wishes,
Ashok

-- begin SLIP.TXT --
Based on my experiences on setting up SLIP under DOS and Windows,  here
are my comments on setting up SLIP in this environment.  I thank the
Trumpet beta testers and the CWRU SLIP beta testers for their comments.

----------------------------------------------------------------------
Configuring your Modem:

a) Turn off DTR (AT&D0&W)
   I have to disable DTR because the communication program that I use
   to dial my SLIP server (QMODEM) drops DTR when I exit the program
   and therefore hangs up the line.  If you use a program like Kermit
   or Conex to establish the SLIP connection, then this need not be done.
   These programs do not necessarily hangup the line when you exit.

   NOTE: If you use Univ. of Minn. PHONE to dial and establish a
         SLIP connection, you do not need to turn off DTR.

b) Dial and establish the SLIP connection first.  This can be done
   automatically if you use a program like PHONE (from the University of
   Minnesota) which will dial and establish a SLIP connection then load the
   SLIP packet driver.  The PHONE scripting language is simple and
   phone scripts can be easily written to configure PHONE to work with
   other SLIP server.  In addition, while the only packet driver
   that PHONE works with is UMSLIP (currently), it is easy to write a
   batch file hack that lets PHONE work with other packet drivers.
   There is a section on PHONE in the document with both script and
   batch file examples.

----------------------------------------------------------------------
Configuring the SLIP drivers:

There are five SLIP packet drivers commonly available
CSLIPPER.EXE    Peter Tattam's compressed SLIP driver
SLIPPER.EXE     Peter Tattam's SLIP driver
SLIP8250.COM    Crynwr driver (I like Phil Burn's modified driver)
ETHERSL.COM     Crynwr driver (ethernet simulation over SLIP)
UMSLIP.COM      Univ. of Minnesota driver (based on SLIP8250)

Of these four, I vastly prefer C/SLIPPER.EXE over SLIP8250.COM or
ETHERSL.COM for the following reasons:

a) It is much faster even though my modem has just a 16450 UART
b) While using EtherSLIP/SLIP8250/UMSLIP, myself and several others
   have noticed that the PC clock gets messed up after performing a
   long FTP transfer.
c) It supports PKTMUX when used in ethernet simulation mode
d) When used in Ethernet simulation mode C/SLIPPER seem to work with
   every TCP/IP application that I have tested it with.

Instructions for C/SLIPPER.EXE (and you do not use PHONE)
a) Load SLIPPER in your AUTOEXEC.BAT file according to instructions:
   For instance if you have a v.32bis modem on COM1
   slipper com1 vec=62 baud=57600
b) If you use DOS TCP/IP applications in Win 3.1 DOS boxes, then use the
   double-ended packet driver shim WinPKT.COM -- this creates a virtual
   packet driver at 0x60.  DOS applications in native mode, DOS
   applications in Windows 3.1 DOS boxes and Windows applications can all
   use this virtual driver at 0x60.
   winpkt.com 0x60 0x62
c) If you use QVT/Net, load PKTINT.COM next.  QVT/net is configured in
   QVTNET.INI to use the interrupt at 0x60.
   pktint.com

Instructions for SLIP8250.COM:
a) Try getting a version 10 SLIP driver.  Philip Burns of Northwestern
   University has a modified SLIP8250.COM driver that is better at hardware
   handshaking.  This driver is distributed along with NuPOP.
b) Load the driver AFTER establishing the SLIP connection.  My modem is a
   V.32bis modem on COM1, so here is how I would load the driver.
   slip8250 -w 0x62 -h 4 SLIP 0x03f8 57600
c) As discussed above if you use DOS TCP/IP applications in Windows 3.x
   DOS boxes, you probably want to use WINPKT.COM
   winpkt.com 0x60 0x62
d) If you use WinQVT/net, load PKTINT.COM
   pktint.com

Instructions for ETHERSL.COM:
If you choose to use ETHERSL.COM instead of SLIP8250.COM, the
instructions are exactly the same with one crucial difference.  You
will have to DELETE the line "device=*vcd" from the [386Enh] section
of SYSTEM.INI.  This will interfere with running regular Windows Comm
applications (such as Crosstalk), and you will get lots of dropped
characters etc. in these applications.  This is therefore not
recommended.  ETHERSLIP would be loaded as:
   ethersl -w 0x62 -h 4 0x03f8 57600
----------------------------------------------------------------------
Configuring Windows 3.1:

a) Make the following modifications to the SYSTEM.INI file [386Enh]
   section.
   i) List all your COM ports, with their addresses and interrupts.
       COM1Base=03F8
       COM1Irq=4
       COM2Base=02F8
       COM2Irq=3
       COM3Base=03E8
       COM3Irq=5
       This can also be done from within Windows - Control Panel,
       but double-clicking on the "Ports" icon.
   ii) Give the port to which your modem is attached a generous COM buffer
       COM1Buffer=10000
   iii) Change the COM port AutoAssign value for the COM port that you wish
       to use for your modem to ZERO.  This is the amount of time that
       Windows waits in seconds before handing control of that COM port to
       another application.  If you use WinQVT/net and then want to switch
       from one session to another, and this value is at the default value
       of 2 seconds, you are will get a GPF and Windows will crash.
       COM1AutoAssign=0
       This can also be done from within Windows - Control Panel.
       Double-click on 386 Enhanced, and under "Device Contention", set
       the device contention for the COM port your modem is on to
       "Never Warn"
----------------------------------------------------------------------
Additional notes:
----------------------------------------------------------------------
What to do if you are assigned a different IP address for each
SLIP session?

I am fortunate in that our campus SLIP server assigns each user
a permanent IP address, so I do not have worry about editing QVTNET.INI
each time that I establish a SLIP connection.

If you are assigned a new IP address on every occasion that you dial in,
please try to use BOOTP aware software, and let BOOTP do the
configuration for you.  However, QVTnet is not BOOTP aware and RARP
will not work over a SLIP connection.  To get QVTNet working in a
situation such as this, you must do the following:

Edit the QVTNET.INI file.  Let the [net] section look like this:

[net]
name=
ip=
netmask=255.255.255.0 (or whatever is appropriate for you)
arptime=20
packet_vector=60 (or whatever is appropriate)

Save the changes, and then *write-protect* this file
"attrib +r qvtnet.ini"

Start your slip connection, and *remember* the name and IP address
that you are assigned.  Each time you start QVT/net 3.1x, the
general configuration dialog box will open.  Enter the name and
IP address and you were assigned for that session, click on [OK],
and you should be up and running.  The changes you make will not
be saved, as QVTNET.INI is write-protected.

A more elegant solution to the problem of dynamic SLIP IP address
assignment is provided by Victor Menayang (victor@ccwf.cc.utexas.edu)
Victor uses the program bootpq to semi-automate qvtnet preparation.
Bootpq is used to inquire the assigned IP, which is then saved to a
file called "myip".  Another file "noip" is essentially a complete
QVTNET.INI file that lacks the IP address.  In the final step "myip"
and "noip" are copied into a single QVTNET.INI file.  An example of
Victor's batch file is provided below:
=====================================================
slipper com2
pktint.com
bootpq -i "ip=\"%%s\""  >> myip
bootpq -i "My IP# is: %s"
copy /q net + myip + noip e:\com\qvtnet\qvtnet.ini
del /q myip
@echo off
echo .
echo Ready to run WinQVTnet
=====================================================
For questions and more details about bootpq, please contact Victor
Menayang (victor@ccwf.cc.utexas.edu)

QPC Software is attempting to add BOOTP capability to WinQVT/net.
----------------------------------------------------------------------
How do you use PKTMUX over SLIP?

PKTMUX will not work over the SLIP8250.COM packet driver, and crashes
immediately if used with ETHERSL.COM

PKTMUX will work with C/SLIPPER.EXE, when C/SLIPPER is used in ethernet
simulation mode.  An example of this configuration is shown below:

The latest release of PKTMUX is 1.2c; and it is important that you
use this version, if you want to use virtual packet drivers with
applications like Trumpet for Windows (to be released very shortly).

[from AUTOEXEC.BAT]

lh c/slipper com1 vec=65 baud=57600 ether         (packet driver)
lh pktmux 5 65 /5       (pktmux loaded for 5 virtual packet drivers)
lh pktdrv 7f 65         (first virtual packet driver used for QVT/net)
lh pktint.com           (QVT/net pktint.com)
pktdrv 63 65            (PKTDRV for use in native DOS or WinTrumpet)

Additional virtual packet drivers can be loaded directly from within
Windows 3.1 DOS boxes.  For example, my PIF file to load POPmail is
directed to the file "popmail.bat".  This is what popmail.bat reads
like:

pktdrv 60 65            loads a virtual packet driver at 0x60
cd \popmail
popmail
cd \
pktdrv 60 /u            unloads the packet driver at 0x60
exit                    causes the DOS window to close

I have similar batch files that load other DOS TCP/IP applications
like PC Gopher.  It is my experience that PKTMUX works fine
even if the virtual packet drivers in two independent virtual DOS
sessions, are loaded at the same software interrupt.  For example
within two different DOS boxes -- one for POPmail and the other for
Gopher, the virtual packet driver (pktdrv) is loaded at 0x60 in each
instance.
----------------------------------------------------------------------
How much does PKTMUX degrade the performance of C/SLIPPER?

I have a V.32bis/V.42bis modem in a 386-33 running Windows 3.1 with
a reasonably fast video card (ATI Graphics Ultra).  Under these
conditions, when I have three virtual packet drivers loaded and
being used as follows:
a) Driver at 0x7f -- QVTNet FTP client session
b) Driver at 0x60 in one DOS Window -- CUTCP tn3270 session
c) Driver at 0x60 in another DOS Window -- Trumpet for DOS

I get FTP transfer rates of 0.8 - 1.0 kb/sec while transferring
compressed files.  This rate is comparable to that which I get with
SLIP8250 loaded as a packet driver, and where a single TCP/IP session
is active.  If CSLIPPER is used a packet driver and a single session
is active, I get transfer rates of 1.3 - 1.4 kb/sec on the same
files.

While there is about 40% degradation in the performance of SLIPPER,
for me the benefits of being able to use PKTMUX outweigh the
performance hit.
----------------------------------------------------------------------
C/SLIPPER and ethernet simulation mode

In ethernet simulation mode, C/SLIPPER ver 1.3 works with all the
applications that I have tested it with.  One or two applications
that required ethernet simulation balked at C/SLIPPER 1.2, but even
these rare problems have been resolved with ver 1.3

When SLIPPER is used in ethernet simulation mode, and used with PKTMUX,
I get some an error message in the QVTNet Console window that reads
"IP:incorrect packet type" or "IP:bad version number".  This does not
seem to prevent QVTnet from functioning, although I cannot comment on
loss of performance.
----------------------------------------------------------------------
What can you do if your DOS TCP/IP application does not work with
C/SLIPPER in ethernet simulation mode?

In the rare event that you find a package that does not work with
C/SLIPPER in ethernet simulation mode, first contact the author --
Peter Tattam -- PETER@psychnet.psychol.utas.edu.au, and let him
know.  Chances are that he can fix it.

In the meanwhile, you can try the following.  I do not know if it is
kosher, but it worked when I had problems with C/SLIPPER ver 1.2

(C/SLIPPER is loaded at 0x62 as described above under the PKTMUX section)

I load ETHERSL.COM at 0x60, run the application and then terminate
ETHERSL.COM

This also works within Windows 3.1 virtual DOS boxes.  However a
packet driver like ETHERSL can be used in only one virtual DOS box
at a time.

So for example, here is my batch file to run Grateful Med (a
medical reference retrieval program developed at the National Library
of Medicine).

ethersl -w 0x60 -h 4 0x03f8 57600       loads ETHERSLIP
cd \gm6
search
cd \
termin 0x60                             terminates ETHERSLIP
exit            closes the DOS box and returns me to Windows

If you use this method, be cautious about one thing -- don't have
any active PKTMUX DOS sessions open at the same time.  After closing
the ETHERSL window, you can run your PKTMUX DOS sessions with no
problem.  BTW, the example above -- Grateful Med, works with no
problems with C/SLIPPER ver 1.3
----------------------------------------------------------------------
PHONE Script Files:

The documentation that accompany PHONE, provide good instructions on
writing script files to get PHONE to dial SLIP servers other than
the University of Minnesota server.  For example here is a script
that I use to dial a CISCO server at the University that I attend.

Background:  To start a SLIP connection, I dial our terminal server,
and login with a username and password.  After doing so, I start a SLIP
session with the following command "slip username-slip.dialin.cwru.edu",
followed by my password -- again.

Here then is the relevant portion of the PHONE.CMD script file -
#
# CWRU-TS2 SLIP login script by Ashok Aiyar 3/26/93
# Last revised 3/28/93
Procedure    Host.CWRU.Login
TimeOut 60      'CWRU-TS2 terminal server is not responding'
Message         "CWRU-TS2 SLIP login script -- Version 1.1"
Message         'Waiting for SLIP server to respond'
Quiet ON
Expect 'Verification'
Message         'Request for User Verification Received from CWRU-TS2'
Message         'Sending your user name and password'
Quiet OFF
Expect   'Username:'
Send '%u<'
Expect   'Password:'
Private
Send '%p<'
Reject    'Access denied'   'Your user name or password was not accepted'
TimeOut 30    'SLIP server did not respond to your validation request'
Expect 'CWRU-TS2>'
Send 'SLIP<'
TimeOut 10    'SLIP server did not respond to SLIP command'
Expect 'IP hostname or address:'
Send '%u-slip.dialin.cwru.edu<'
TimeOut 10 'SLIP server did not respond to hostname'
Reject    'Bad IP address'   'Incorrect Hostname'
Expect 'Password:'
Send '%p<'
Reject    'Access denied'    'Password not accepted.'
TimeOut 10
Expect 'Header Compression will match your system'
Message 'Login to CWRU SLIP server successful'
Wait 1.0
EndProcedure   Host.CWRU.Login
#
#
Procedure      Host.CWRU.LogOut
# Nothing special needs to be done to logout
EndProcedure   Host.CWRU.LogOut
#
#   End of Script file
#
----------------------------------------------------------------------
How to use packet drivers other than UMSLIP with PHONE?

The quick answer -- there is no "clean" way.  Below is a batch file
hack that I wrote to use PHONE with other packet drivers.  In this
example, the packet driver is Peter Tattam's CSLIPPER.  To use a
batch file like this, you must know the parameters with which you
plan to use the packet driver -- i.e interrupt vector, baud rate,
port address, and IRQ.  This batch file requires UMSLIP.COM,
CSLIPPER.EXE, and TERMIN.COM to be in the same directory
or in your path ...

All that the BATCH file does is to let you dial the SLIP connection
using PHONE, load the appropriate packet driver, hangup the
connection, and unload the driver when you are done ...

-- being CWRUSLIP.BAT --
@echo off
rem   this batch file is an ugly hack of U. of Minn. "SLIP.BAT"
rem   awaiting a version of C/SLIPPER that can directly interact
rem   with PHONE
rem   CWRUSLIP.BAT file is used with PHONE.EXE to start a SLIP
rem   connection on CWRU-TS2
rem   last modified 3/28/93 -- Ashok Aiyar

@echo off
cls
goto start

:start
if %1. == ?.         goto help
if %1. == help.      goto help
if %1. == setup.     goto setup
if %1. == dial.      goto forceD
if %1. == hangup.    goto forceH
if %1. == quit.      goto forceH
if %1. == HELP.      goto help
if %1. == SETUP.     goto setup
if %1. == DIAL.      goto forceD
if %1. == QUIT.      goto forceH
goto bogus
goto unload

:forceH
termin 0x60
umslip >nul
phone force hangup
goto unload

:slipper
termin 0x60
REM  the following line must be changed to reflect the COM port,
REM  IRQ, baud rate, and software interrupt
lh c:\packet\cslipper com1 vec=60 baud=57600 ether
goto end

:forceD
termin 0x60
umslip >nul
phone force dial
goto slipper

:setup
termin 0x60
umslip >nul
phone setup
goto help

:unload
termin 0x60
goto end

:bogus
echo %1 is not a valid command.
echo Try "cwruslip help" for a list of valid commands
echo.

:help
echo --------------------------------------------------------------
echo           Case Western Reserve University SLIP Setup
echo                  using Univ. of Minnesota PHONE
echo --------------------------------------------------------------
echo cwruslip setup     modem settings, phone number, username etc.
echo.
echo cwruslip dial      DIAL and establish the SLIP connection
echo cwruslip quit      HANGUP the phone and unload the driver
echo cwruslip help      this screen
echo.

:end
-- end CWRUSLIP.BAT --
----------------------------------------------------------------------
Where to Get What.....

Peter Tattam's programs are archived at ftp.utas.edu.au (C/SLIPPER,
and the Trumpet set of programs).

WinQVT/net is generally archived at most Windows FTP sites,
including ftp.cica.indiana.edu

NCSA Telnet is archived at ftp.ncsa.uiuc.edu

NuPOP is archived at ftp.acns.nwu.edu

POPmail/PC, SLIPDISK, PHONE, and PC Gopher are archived at
boombox.micro.umn.edu
----------------------------------------------------------------------
-- end SLIP.TXT --


