File MODEMS.DOC                                                       July 1993

		     MS-DOS KERMIT MODEM DIALING SCRIPTS

		     Christine M. Gianone, Frank da Cruz
			     Columbia University

				 John Klensin
			  United Nations University


The following modem dialing scripts are available for use with the DIAL
command in MS-DOS Kermit 3.12 and later.  Store the desired files in the same
directory as your MSKERMIT.INI file.

The DIAL command is a macro defined in the standard MSKERMIT.INI file on the
MS-DOS Kermit diskette.  It looks up the number (or name) in your dialing
directory, making the appropriate substitution, and passes the phone number to
your dialing script in a variable.  See "Using MS-DOS Kermit" and KERMIT.HLP
(MSKERM.HLP) for details about the DIAL command and the dialing directory.

If you lack the DIAL macro definition, you can define your own simple DIAL
macro (which does not use the dialing directory) as follows:

  DEFINE DIAL TAKE xxx.SCR

where xxx is the modem type, described below.

The default modem type (if you are using the standard MSKERMIT.INI file) is
HAYES.  To select a different type of modem for dialing, do any one of the
following:

  1. Type SET MODEM=xxx at the DOS prompt before starting MS-DOS Kermit, or
  2. Add SET MODEM=xxx to your AUTOEXEC.BAT file and reboot your PC, or
  3. Type DEFINE _MODEM xxx at the MS-DOS Kermit prompt, or
  4. Add DEFINE _MODEM xxx to your MSCUSTOM.INI file.

xxx is name of the modem, corresponding to the part of the dialing script
filename before ".SCR".  For Telebit T3000 modems, for example, the script
file is called T3000.SCR, and "xxx" would be "T3000".  If you obtain these
files over the network, you should rename as shown in the DOS Filename column
below.  Here are the dialing scripts that are supplied with MS-DOS Kermit:

  Modem Type             DOS Filename  Internet               BITNET/EARN/CREN

   Hayes 1200 or 2400     HAYES.SCR     kermit/a/msmhayes.scr    MSMHAYES SCR
*  Hayes Ultra 144        ULTRA144.SCR  kermit/a/msmultra.scr    MSMULTRA SCR
*  Multitech MT1432       MT1432.SCR    kermit/a/msmmt1432.scr   MSMMT1432 SCR
*  Penril Alliance V.32   PENRIL.SCR    kermit/a/msmpenril.scr   MSMPENRIL SCR
*  Practical Peripherals  PP14400.SCR   kermit/a/msmpp14400.scr  MSMPP1440 SCR
   Rolm CBX DCM           ROLM.SCR      kermit/a/msmrolm.scr     MSMROLM SCR
*  SupraFAXmodem V.32bis  SUPRA.SCR     kermit/a/msmsupra.scr    MSMSUPRA SCR
*  Telebit QBlazer V.32   QBLAZER.SCR   kermit/a/msmqblazer.scr  MSMQBLAZER SCR
*  Telebit T3000 V.32bis  T3000.SCR     kermit/a/msmt3000.scr    MSMT3000 SCR
*  US Robotics Sportster  SPORT.SCR     kermit/a/msmsport.scr    MSMSPORT SCR
   Vadic VA2400PA         VA2400PA.SCR  kermit/a/msmva2400.scr   MSMVA2400 SCR

If your modem does not appear in this list, feel free to adapt one of these
scripts to work with your modem (and send your new script back to Columbia so
others can use it too).

WHAT THE DIALING SCRIPTS HAVE IN COMMON

These scripts use your modem's default dialing method, pulse or tone; they do
not specify one or the other, since neither method is supported by all
telephones everywhere.  To force Tone dialing, begin your phone number with T,
for example:

  DIAL T7654321

Similarly, to force pulse dialing, start the phone number with P.

If you give a DIAL command whose telephone number is simply = (equal sign),
the modem will be initialized, but no call will be placed.  In some cases,
the dialing script will also ask the modem to display its configuration.

When dialing a real phone number, you can include special characters in the
phone number to accomplish pauses, wait for secondary dialtone, etc.  See your
modem manual.

If you dial a number that is busy, most of these scripts will wait 30 seconds
and then redial automatically, up to 5 times.  You can cancel the redial
operation by pressing any key after you see the message:

  Line is busy, will dial again in 30 seconds.
  Press any key to cancel...

Each dialing script returns SUCCESS if dialing succeeds and FAILURE if it
doesn't, so you can use an IF FAIL or IF SUCCESS statement after a DIAL
command in a script.
	
THE ROLM DIALING SCRIPT

ROLM.SCR is for the Rolm/Siemens (formerly IBM) Computerized Branch Exchange
(CBX) data communications module (DCM).  It dials at your current speed, and
does not change speeds since the DCM is speed-sensitive.  It does not attempt
to redial if the line is busy.  For Rolm 244PCs, use HAYES.SCR, and always use
Tone dialing.

THE HAYES 1200/2400 AND VADIC 2400PA DIALING SCRIPTS

The Hayes 2400 script, HAYES.SCR, should work on any Hayes-1200, Hayes-2400,
or compatible modem.  It does not change any modem settings (S registers).  It
assumes that the modem changes its interface speed to match the negotiated
modulation speed, if the modulation speed is reported as 1200 or 2400;
otherwise, Kermit does not change speed.

The Vadic 2400PA script, VA2400PA.SCR, works in much the same way, except it
also recognizes a 300 bit-per-second connect message.  The Vadic modem
supports only pulse dialing.

HIGH-SPEED MODEM SCRIPTS

The entries marked with "*" above are for high-speed modems that include
error-correction and data-compression features.  These scripts attempt to use
these modems at a fixed interface speed of 57600 bps (or 38400 bps, if that is
the highest speed supported by the modem), to allow the modem's data
compression to operate at its full effectiveness, and they enable hardware
flow control (RTS/CTS) to prevent loss of data.  Note that flow control will
be fully effective only if the answering modem and computer also have an
effective flow control method between them.

The high-speed modem scripts:

 . Configure the modem to echo commands, issue verbose result codes, and
   hang up upon loss of DTR from the PC (as when you tell Kermit to HANGUP).
   (If Kermit's HANGUP command doesn't work with your modem, you can find
   a workaround in the KERMIT.BWR (MSKERM.BWR) file.)

 . Start out at the highest supported modulation, V.32bis, with downwards
   negotiation enabled (V.32, V.22bis, etc.)  If a lower modulation technique
   is negotiated, the interface speed remains fixed and the modem does "speed
   buffering", for which effective flow control is an absolute requirement.

 . Enable error correction and compression, starting out at the highest
   supported levels (V.42 and V.42bis) and falling back to lower levels
   (usually MNP), or to none at all.

 . Configure to modem to pass BREAK signals through transparently when you
   type Alt-B.

Dialing     Interface   Highest      Error        Data
Script       Speed      Modulation   Correction   Compression
   
PENRIL       38400      V.32(bis?)   V.42->MNP    V.42bis->MNP
PP14400.SCR  57600      V.32bis      V.42->MNP    V.42bis->MNP
QBLAZER.SCR  38400      V.32         V.42->MNP    V.42bis->MNP
SPORT.SCR    57600      V.32bis      V.42->MNP    V.42bis->MNP
SUPRA.SCR    57600      V.32bis      V.42->MNP    V.42bis->MNP
T3000.SCR    57600      V.32bis      V.42->MNP    V.42bis->MNP
ULTRA144.SCR 38400      V.32bis      V.42->MNP    V.42bis->MNP

The Telebit T3000 script should also work on the Telebit WorldBlazer.

The Telebit QBlazer script should also work on the Telebit T1600.

The Hayes Ultra 144 gives you a failure code if the modem reports NO CARRIER:

  0  Normal hangup
  4  Physical carrier loss
  5  Error control was required but was not negotiated
  6  Other error-control modem did not respond to feature negotiation
  7  Other modem is synchronous-only
  8  Modems could not find a common framing technique
  9  Modems could not find a protocol in common
 10  Incorrect feature negotiation message sent by other modem
 11  Timed out waiting for synchronous data
 12  Normal disconnect initiated by other modem
 13  Other modem did not respond after many retransmissions
 14  Protocol violation
 15  Compression failure

For further information, read the script files themselves.  They are ordinary
text files that you can TYPE, PRINT, or view with a text editor such as DOS
5.0 EDIT.

(End of MODEMS.DOC)
