                                MS-DOS KERMIT

        FOR THE IBM PC FAMILY, COMPATIBLES, AND OTHER MS-DOS COMPUTERS

			 Version 3.12, September 1992

This file contains a summary of the commands and features of MS-DOS Kermit
3.11 and 3.12 for the IBM PC, PS/1, PS/2, and compatibles.  For detailed
information, tutorials, installation and cabling hints, troubleshooting
procedures, examples, diagrams, tables, and advanced features, consult "Using
MS-DOS Kermit", second edition, by Christine M.  Gianone, published by Digital
Press, Bedford, MA (1991), order number EY-H893E-DP, Digital Press ISBN
1-55558-082-3, Prentice Hall ISBN 0-13-952276-X, International Edition ISBN
0-13-95304306.  The book includes a 5.25-inch MS-DOS Kermit 3.11 diskette.  To
order, call (USA, toll free) 1-800-343-8321.  It is also available from Kermit
Distribution at Columbia University and in software stores and computer
bookstores.  A German language edition, "MS-DOS Kermit -- das universelle
Kommunikationsprogramm", is published by Verlag Heinz Heise GmbH & Co KG,
Hannover, Germany, translated by Gisbert W. Selke, ISBN 3-88229-006-4.  A
French-language edition is scheduled for publication by Schiefer & Cie,
Versailles, in Fall 1992, and a Chinese edition is in preparation.

  TCP/IP users: Read the section at the end of this file and the TCP/IP
  section in the "beware file" for information that was not available at
  "Using MS-DOS Kermit" press time. 

TERMS AND CONDITIONS

MS-DOS Kermit is a product of Kermit Distribution, Columbia University Center
for Computing Activities.  The principal author of the program is Professor
Joe R. Doupnik of Utah State University, with help from other volunteer
programmers all over the world.  The software is copyright 1982, 1991 by the
Trustees of Columbia University in the City of New York, with portions of the
source code also copyright by other institutions including Waterloo University
(Ontario, Canada) and the (US) National Center for Supercomputing Applications
(NCSA).

The MS-DOS Kermit software may be reproduced and shared without restriction
except that it may not be licensed or sold for profit as a software product.
Vendors of commercial products who wish to include MS-DOS Kermit with their
products must obtain written permission of Columbia University at the address
below.

Kermit software is written by volunteer programmers as a public service, and is
furnished without warranty of any kind.  Neither Columbia University, nor the
individual authors, nor Digital Equipment Corporation, nor Digital Press, nor
any institution or individual that has contributed to the development and
documentation warrant the software in any way.

CONTACT INFORMATION

Technical support: (USA) 212-854-5126, or use the e-mail addresses below.

Kermit programs are available for hundreds of different kinds of computers on a
variety of magnetic media.  For MS-DOS Kermit, there are also sets of diskettes
containing source code, related utilities, collections of key settings files,
technical documentation, etc.  For a catalog of Kermit software and
publications, write to:

  Kermit Distribution, Dept INFO
  Columbia University Center for Computing Activities
  612 West 115th Street
  New York, NY  10025  USA

Or call (212) 854-3703, or send e-mail to:

  Info-Kermit@watsun.cc.columbia.edu (Internet) or KERMIT@CUVMA (BITNET/EARN).

UPDATES

MS-DOS Kermit 3.0 was released in February, 1990, and is fully described in
"Using MS-DOS Kermit", first edition.

MS-DOS Kermit 3.11 was released September, 1991, and is fully described in
"Using MS-DOS Kermit", second edition, with supplementary material on dialing
and TCP/IP included in this file.

MS-DOS Kermit 3.12 was released September, 1992.  It is a maintenance release,
but with several new features added, including:

 . Networking and communications improvements, including ODI support.
 . Japanese Kanji text file transfer translation.
 . Locking shift protocol for file transfer.
 . A new method for transferring files with IBM mainframes.

The new features are described in this file.  Consult the file MSR312.UPD for
more detailed information about the differences between version 3.11 and 3.12.

PROGRAM INSTALLATION

Easy.  For diskette-only systems, make a backup copy of the Kermit diskette,
run Kermit from the backup copy.

For hard-disk systems, make a \KERMIT directory on your hard disk, copy the
Kermit diskette files to it, and add the hard disk \KERMIT directory to your
DOS PATH (modify the PATH= command in your AUTOEXEC.BAT file).

Please do not edit the standard initialization file, MSKERMIT.INI.  Make all
desired communications and network setups and other customizations in your
individual MSCUSTOM.INI file.  A sample is provided.  MSCUSTOM.INI is executed
automatically by MSKERMIT.INI.

If you want to use a dialing directory, create a plain-text dialing directory
file containing your frequently called numbers.  Instructions are given below.

If you plan to run Kermit under Microsoft Windows, copy the KERMIT.PIF file
to your WINDOWS directory, and use the Windows PIF editor to make any desired
changes to it.  To install an icon for Kermit, click on the group where you
want to put it; click on the File menu in the Program Manager, and then
choose New; select Program Item, then OK; fill in Kermit's path name and
description in the dialog box.

Read the KERMIT.BWR (or MSKERM.BWR) file for problem-solving hints.

Read "Using MS-DOS Kermit" for more detailed installation instructions, as
well as for complete instructions on using MS-DOS Kermit.


DIALING AND THE DIALING DIRECTORY

MS-DOS Kermit does not have a built-in DIAL command, but if you installed
Kermit from the distribution disk according to instructions, you'll be able to
use the DIAL macro defined in Kermit's initialization file, MSKERMIT.INI.  DIAL
uses two additional files: HAYES.SCR, a script program for dialing Hayes
modems, and DIALUPS.TXT, your dialing directory.  If you do not have a Hayes or
compatible modem, you can write a new script program for dialing, modelled
after HAYES.SCR (see Chapter 14 of "Using MS-DOS Kermit) and set a DOS
environment variable, MODEM, to be the name of your modem; the dialing script
should have the same name, with a filetype of .SCR.  For example, for dialing
a Rolm CBX, put the following line your AUTOEXEC.BAT file:

  SET MODEM=ROLM

and install a ROLM.SCR file in the same directory as your MSKERMIT.INI file.

If you don't have a dialing script for your type of modem, you can also dial
it "manually" in CONNECT mode.

To use a dialing directory, create a plain text file called DIALUPS.TXT.  The
file contains one line per entry:

  name   number   speed    parity   comments

The "name" is the name you want to use for this entry in your DIAL commands.
"number" is the telephone number; "speed" is the dialing speed in bits per
second, "parity" is the parity to use (even, odd, mark, space, or none).  The
name, number, speed, and parity are separated from each other by one or more
spaces.  Any words after the parity are ignored, so you can use them for
comments.  If trailing fields (speed, parity) are omitted, Kermit's current
values are used (but then you can't have a comment).  If you want to tell
Kermit explicitly to use its current value for speed or parity, use an equal
sign (=).  Examples:

  sprintnet  7654321      2400   mark
  oofanet    6543210      1200   odd    This entry has a comment.
  tymnet     93,876-5432  2400   even   You can put punctuation in the phone #.
  hometone   T5551212     1200   none   T in number forces tone dialing
  homepulse  P5551212     1200   none   P in number forces pulse dialing
  anyspeed   999-9999     =      none   Use current speed, whatever it is.
  anyparity  888-8888     9600   =      Use current parity, whatever it is.
  whocares   777-7777     =      =      Use current speed and parity.
  defaults   987-6543

To use the dialing directory, just type DIAL followed by the name, spelled out
in full (case doesn't matter), for example:

  MS-Kermit>dial tymnet

If you type a name or number that is not in the directory, Kermit dials exactly
the characters you type, for example DIAL 5552370 dials the number 5552370.
DIAL FRED (if FRED is not in the directory) tells Kermit to dial the letters
FRED, which won't accomplish anything useful with most modems.

To view your dialing directory, type LIST.  To view particular entries in your
dialing directory, type LIST XXX, where XXX is a sequence of characters that
appears in the desired entries (usually the name).  In the LIST command, case
is important because it uses the DOS FIND program to list the entries:

  MS-Kermit>list tymnet
  tymnet     93,876-5432  2400   even   You can put punctuation in the phone #.

In your dialing directory, you can include spaces in the name or number by
enclosing it in braces, as in these examples:

  {my computer}  555-4321            2400   none
  your-computer  {9 1 800 555 1234}  1200   odd
  {our computer} {212 701 0000}     19200   space

Now you can type commands like DIAL MY COMPUTER, DIAL OUR COMPUTER.

The DIAL command assumes your dialing directory is stored on your PC as
C:\KERMIT\DIALUPS.TXT.  If you want to keep it someplace else or you need to
use some other name, create a DOS environment variable in your AUTOEXEC.BAT
file:

  SET DIALFILE=C:\PHONES\DIALING.DIR

If you want to use the directory sometimes but not others, define a separate
macro for dialing without it:

  define call take \m(_modem).SCR

(where _modem is defined as your modem type, e.g. HAYES, and you have an
appropriate dialing script file in your PATH, e.g. HAYES.SCR).  The _modem
variable is set automatically from your DOS environment variable, MODEM, and
is HAYES by default (i.e. if there is no MODEM environment variable).

SUMMARY OF MS-DOS KERMIT COMMANDS

The commands listed are for the IBM PC, PS/2, and compatibles.  Other versions
of MS-DOS Kermit (DEC Rainbow, NEC PC, Victor 9000, etc) lack certain commands
and features described here, primarily those having to do with networking,
terminal emulation, and character set translation.

Kermit commands consist of a sequence of "words" (verbs, nouns, numbers,
filenames) separated by spaces and terminated by carriage return (Enter).
Command description use this notation:

  <parameter>   - Replace this with an actual number, or filename, etc.
  <number>      - Replace with an actual decimal number
  <filename>    - A file specification, which may include disk & directory
  <hh:mm:ss>    - Time of day in 24-hour notation, less than 12 hours from now
  [<parameter>] - An optional field, which may be omitted
  {A,B,C}       - Choose one of the items listed
  [{A,B,C}]     - Optionally choose one of the items listed
  = <value>     - Shows default value for a field

The following characters perform special functions in MS-DOS Kermit commands:

  Space      Separates command words ("fields").
  TAB        (Ctrl-I) Like space
  ESC        (Ctrl-[) Completes a keyword if possible.
  Enter      (Ctrl-M, Carriage Return) Enters a command.
  Formfeed   (Ctrl-L) Like Enter, but clears the screen first.
  Linefeed   (Ctrl-J) Like Enter.
  Backspace  (Ctrl-H, Del) Deletes rightmost character from the command.
  Ctrl-W     Deletes rightmost word from the command.
  Ctrl-U     Deletes the entire command.
  Ctrl-C     Cancels the current command, even if you have already entered it.
  ?          (Question Mark) Requests a menu for the current command field.
  ;          (Semicolon) Introduces a trailing command (in command files only).
  \          (Backslash) Introduces a "backslash code".
  ,          (Comma) Separates commands in a macro definition.
  { }        (Braces) used for grouping characters or words together.

Backslash codes are used to enter special characters into Kermit commands, and
for other purposes too.  For example, if you want to use the OUTPUT command to
send a Ctrl-C to the host, you can't put the Ctrl-C literally in the command,
because typing Ctrl-C would cancel the command.  Instead, put a backslash
followed by digits to denote the ASCII value of the Ctrl-C character (3):
"output \3".  Similarly for Carriage Return: "output login myname\13".

  \123    (up to 3 decimal digits) - A decimal number or character value
  \d123   (up to 3 decimal digits) - Same as 123
  \o123   (up to 3 octal digits) - An octal (base 8) number or char value
  \x123   (2 hexadecimal digits) - A hexadecimal (base 16) number or character
  \{ }    For grouping, e.g. \{12}6 = Ctrl-L 6, not ~
  \;      Include a semicolon in a TAKE-file command or macro definition.

Other backslash codes:

  \%       Introduce a Kermit variable, \%1, \%2, ..., \%a, \%b, ... \%z
  \K       (or \k) Introduce a Kermit connect-mode verb like \Kexit
  {\Kxxx}  A user-defined macro called xxx assigned to a key
  \B       (or \b) Send a BREAK signal, 275 milliseconds (OUTPUT command only)
  \L       (or \l) send a Long BREAK, 1.5 seconds (OUTPUT only, 3.12 & later)
  \255     Shorthand for CRLF or LFCR   (INPUT command only)
  \CD      Carrier Detect RS-232 signal (WAIT command only)
  \DSR     Data Set Ready RS-232 signal (WAIT command only)
  \CTS     Clear to Send RS-232 signal  (WAIT command only)
  \v(name) A built-in variable like \v(date).
  \m(name) A user-defined named variable
  \$(name) A DOS environment variable.

* PROGRAM MANAGEMENT COMMANDS

EXIT or QUIT
  Exit from MS-DOS Kermit.  Close all logs and files.  Leave serial port
  and modem connections open.  Close most kinds of network connections.
  Execute ON_EXIT macro if one is defined.

STAY
  On the MS-DOS Kermit command line only, this causes MS-DOS Kermit to
  issue its prompt after executing any other commands that were found on
  the command line, rather than EXITing as it normally does when given
  command-line arguments.

TAKE <filename>
  Execute Kermit commands from the specified file instead of the keyboard.

PUSH
  Go to DOS prompt.  Return to Kermit prompt by typing the DOS EXIT command.
  Preserves connections, settings, etc.

RUN <DOS-command> [ <arguments> ]
  Run a DOS program or execute a DOS command, e.g. RUN EDLIN AUTOEXEC.BAT.

ECHO [ <text> ]
  For issuing messages from TAKE files or macros.  Display the <text> on the
  screen, automatically supplying carriage return and linefeed at the end.
  The <text> can contain backslash codes, variables, etc.  Leading and
  trailing spaces are removed unless the <text> is surrounded by curly braces.
  Examples:
    ECHO			; Prints a blank line
    ECHO This is a message	; Prints "This is a message"
    ECHO { This is a message }	; Prints " This is a message "

SET PROMPT <text>
  Change the program prompt from MS-Kermit> to the specified text, which can
  contain backslash codes, variables, etc.  Curly braces can be used as in
  the ECHO command.

COMMENT <text>
  For adding full-line comments to a TAKE file.

<command> ; text
  Commands in TAKE files can have trailing comments preceded by semicolon (;).

<text>-
<text>
  Commands in TAKE files or macro definitions can be continued with hyphens,
  but not in a trailing comment.

* DOS ACCESS COMMANDS

CD [<path>]
  Change Directory.  Like DOS CD, but a disk drive letter can be included. 

CLS
  Clear the PC's screen.

DELETE <filespec>
  Delete specified file(s).

DIRECTORY [<filespec>]
  Like DOS DIR command.

TYPE <filename>
  Like DOS TYPE command.

SPACE [<disk-letter>]
  Show free space on current or specified disk.

SHOW MEMORY
  Show free memory.

Others, such as MORE, COPY, RENAME, etc, are defined as macros in MSKERMIT.INI.

* COMMANDS FOR GETTING INFORMATION

HELP
  Display a brief help message about MS-DOS Kermit.

SHOW <category>
  Display current settings, definitions, statistics selectively
  (type SHOW ? for a list of categories that can be shown).

STATUS
  Show values of most SET parameters.

VERSION
  Display the program version number.

* COMMANDS FOR SETTING COMMUNICATION PARAMETERS

SET COM1 <address> [ <irq> ]
  Tell Kermit the hardware address of COM1, which must be a 8250 or compatible
  UART, and, optionally, that its interrupt request line number is <irq>.  Also
  SET COM2, SET COM3, SET COM4.  Used to configure Kermit for nonstandard
  communication boards.  If IRQ not specified, Kermit tries 3 and 4 (standard
  IRQs for communication ports).  USE WITH EXTREME CAUTION: specification of
  incorrect address or IRQ number could harm your PC or files.

SET PORT {COM1, COM2, COM3, COM4} = COM1
  Select a communication device (SET PORT ? for list of available devices,
  see below for local area nets).  You can also say SET PORT 1, SET PORT 2,
  etc.  Port must be real 8250 or 16550A UART, or device that perfectly
  emulates them.  If it isn't, Kermit will use BIOS rather than direct
  hardware control, and will issue a message to that effect.

SET PORT {BIOS1, BIOS2, BIOS3, BIOS4}
  Use BIOS-level driver for COM1, COM2, COM3, or COM4, etc, rather than
  Kermit's own built-in hardware driver.  Allows Kermit to be used with BIOS
  itself, BIOS Int 14H interceptors (on LANs, for example), nonstandard
  devices, etc.

SET PORT <other> - See section on Local Area Networks.

SET SPEED <number>
  Communications port line speed: 1200, 2400, 9600, etc.  SET SPEED ? for list.
  75/1200 is "split speed" (75 out, 1200 in).  Applies to currently selected
  serial port (COM1-COM4), or to EBIOS connections.  Ignored for other SET
  PORT options.

SET PARITY {EVEN, ODD, MARK, SPACE, NONE} = NONE
  Character parity to use during communication.  If terminal emulation works
  but file transfer does not, SET PARITY to EVEN or SPACE or MARK.

SET DISPLAY { 7, 8 } = 7
  Synonym for SET TERMINAL BYTESIZE { 7, 8 }

SET DUPLEX {FULL, HALF} = FULL
  Select full or half duplex communication.
  FULL = remote echo.  HALF = local echo plus RTS/CTS hardware handshake.

SET HANDSHAKE {NONE, XON, CR, LF, CODE <ascii-value>} = NONE
  Half-duplex line turnaround character (XON is most common), mostly for
  use with IBM mainframes.  Only affects file transfer.

SET FLOW-CONTROL {XON/XOFF, RTS/CTS, NONE} = XON/XOFF
  Select a full-duplex flow control method.

* COMMANDS FOR CONNECTING TO A REMOTE HOST

CONNECT
  Make a terminal connection to a device or another computer on the currently
  selected port using the current communication settings.  Use Alt-X to return
  ("escape back") to the MS-Kermit> prompt (hold down the Alt key and press x)
  or Ctrl-] followed by C.  You can abbreviate CONNECT as C.

HANGUP
  Hang up a dialed modem connection by lowering DTR until the next time the
  communication port is accessed (by CONNECT, OUTPUT, INPUT, DIAL, PAUSE, or
  similar command).  If the current connection is a network connection, close
  it.

SET DEBUG SESSION
  Turn off the terminal emulator, display received characters literally for
  debugging: ^X = Ctrl-X, ~X = X with 8th bit on.

SET DEBUG OFF
  Turn off session debugging, restore normal terminal emulation.

* COMMANDS FOR CONTROLLING TERMINAL EMULATION

SET TERMINAL [ TYPE ] { VT320, VT220, VT100, VT102, VT52, HEATH-19, 
    HONEYWELL, PT200, TEK4010, NONE } = VT320
  Select type of terminal to emulate.  Other types may be available, type
  SET TERMINAL TYPE ? for a list.  (PT200 is a VT320-like PRIME terminal;
  available in version 3.12 and later.)

SET TERMINAL ARROW-KEYS { APPLICATION, CURSOR }
  Puts the arrow keys in the specified mode.

SET TERMINAL BELL { AUDIBLE, VISUAL, NONE } = AUDIBLE.
  What to do with arriving BEL (beep, Ctrl-G) characters.

SET TERMINAL BYTESIZE { 7, 8 } = 7
  Use 7 for stripping off parity bit, e.g. with UNIX systems, during terminal
  emulation.  Use 8 for 8-bit international character sets, and for properly
  receiving 8-bit control characters, such as sent by VAX/VMS applications
  like EVE.

SET TERMINAL CHARACTER-SET { LATIN1, DEC-MCS, GERMAN, FRENCH, etc } = LATIN1
  Character set used by the host computer during terminal emulation.  Optional
  trailing parameters G0, G1, G2, and G3 can be used to designate the character
  set to the given Gn tables.  Example: SET TERM CHAR LATIN1 G1.

SET TERMINAL CLEAR-SCREEN
  Clear the terminal screen.

SET TERMINAL COLOR <number> [, <number> [, <number> ] ]
  Set fore- and background color for text terminal emulation.  The numbers are
  0 (normal foreground), 1 (high-intensity foreground), 10 (fast screen update
  on IBM EGA), 3x (foreground color), 4x (background color), where x is the sum
  of any of 1 (Red), 2 (Green), and 4 (Blue).

SET TERMINAL CONTROLS {7-BIT, 8-BIT}
  Tell VT220/320 emulator whether to send 7-bit or 8-bit control sequences when
  DEC function, arrow, editing, or keypad keys are pressed.

SET TERMINAL CURSOR-STYLE {BLOCK, UNDERLINE}
  Select the cursor style for terminal emulation.  The default is underline.

SET TERMINAL DIRECTION {LEFT-TO-RIGHT, RIGHT-TO-LEFT}
  Direction of screen writing during terminal emulation.

SET TERMINAL DISPLAY
  Synonym for SET TERMINAL BYTESIZE.

SET TERMINAL GRAPHICS <name>
  Specify the type of graphics adapter in your PC: CGA, EGA, VGA, others (SET
  TERM GRAPH ? for complete list).  MS-DOS Kermit automatically tries to figure
  out what kind of adapter you have.  Use this command if it guesses wrong.
  Applies to Tektronix emulation only.

SET TERMINAL GRAPHICS CHARACTER-WRITING {OPAQUE, TRANSPARENT}
  Tell whether text characters written on graphics screens should let graphics
  show through.

SET TERMINAL GRAPHICS COLOR <number> [, <number> [, <number> ] ]
  Fore- and background colors for graphics screens.  Numbers same as for
  SET TERMINAL COLOR.

SET TERMINAL GRAPHICS CURSOR {ON, OFF}
  Tell whether there should be a text cursor during graphics terminal
  emulation.  Default is ON.

SET TERMINAL KEYCLICK {ON, OFF}
  Turn keyclick on or off on keyboards that support this.

SET TERMINAL KEYPAD {APPLICATION, NUMERIC}
  Put the numeric keypad into the specified mode.

SET TERMINAL MARGIN-BELL {ON, OFF}
  Whether to ring the bell when the cursor nears the end of a screen line.

SET TERMINAL NEWLINE {ON, OFF}
  ON means to send both a carriage return and a linefeed when you press Enter.
  OFF means send only carriage return.

SET TERMINAL OUTPUT-SHIFT {NONE, AUTOMATIC, SI/SO, SS2, SS3}
  (Version 3.12 and later.)  Selects the table-shifting commands surrounding a
  character sent to the host when, and only when, parity is other than NONE
  and the character has its high bit set.

  The idea is to form a virtual 8-bit wide communications channel by sending
  7-bit material telling the host that the data byte came from the right 
  hand (high bit set) side of one of the character sets G1, G2, or G3.  The 
  host must obey ISO 2022 rules and have the same character set loaded into 
  its right hand table.

  Option NONE, the default, says do nothing about the matter and thus the
  character's high bit is lost and replaced by a parity bit.  The other
  options also lose the high bit but signal the host several ways.

  Prefix SI means the following byte comes from set G1, and the character
  is followed by SO which means shift back to G0; these form a triplet.
  Prefix SS2 (ESCAPE N) means the following byte comes from set G2, and
  similarly prefix SS3 (ESCAPE P) means from set G3. SS2 and SS3 are single
  shifts which apply only for the following character.

  Option AUTO finds the character set table G1, G2 or G3 being used as the 
  active right half (high bit set) of the complete set and uses SI/SO, SS2,
  or SS3 appropriately. Note that VT300 level terminals use G2 as the
  normal right half set, but VT100 level terminals use G1 but not G2 nor G3.

SET TERMINAL REPLAY
  Synonym for REPLAY.

SET TERMINAL ROLLBACK {ON, OFF}
  ON means to restore rolled-back screens to the end when new characters
  arrive.  OFF means to display new characters at the current cursor position.

SET TERMINAL SCREEN-BACKGROUND {NORMAL, REVERSE}
  REVERSE exchanges the fore- and background screen colors.

SET TERMINAL TABSTOPS {AT <n>, CLEAR AT <n>, CLEAR ALL}
  Sets or clears screen tab stops at the specified positions.  <n> can be a
  single number, a list of numbers, or <position>:<interval> to set tabs
  beginning at the specified <position>, every <interval> spaces, e.g.
  SET TAB AT 1:10.  By default, tabs are set every eight spaces.

SET TERMINAL TEK {ENABLE, DISABLE}
  Whether Kermit should automatically enter Tektronix graphics mode upon
  receipt of special escape sequences from the host.  ENABLEd by default.

SET TERMINAL UPSS {DEC-MCS, LATIN1}
  Select which character set to designate as your VT220/VT320 User Preferred
  Supplemental Set.

SET TERMINAL WIDTH {80, 132}
  Put the video adapter into 80- or 132-column mode.  If Kermit can do this
  itself, it will.  Otherwise it will attempt to run the DOS batch program
  COLS80.BAT or COLS132.BAT to do the job.  You must supply these files.  They
  should contain whatever external DOS commands you have at your disposal to
  change the screen width.

SET TERMINAL WRAP {ON, OFF}
  Whether to break overlong screen lines into multiple lines.

SET PRINTER <name>
  Redirect any printing that is done during terminal emulation to a device
  or file.  Default is PRN (the DOS printer device).

* LOCAL AREA NETWORKS

The SET PORT command tells Kermit which type of network connection you want to
use, and in some cases also the network host you want to communicate with.

SET PORT TCP/IP [ <Internet-name or Internet-address> ]
  Connect to an TCP/IP host using Kermit's built-in TCP/IP support.  If the
  host is omitted, the one used in the most recent SET PORT TCP/IP or SET
  TCP/IP HOST command is used, if any (this allows you to switch to another
  type of connection and then back to your TCP/IP connection).  During a TCP/IP
  session, Kermit uses TELNET protocol to communicate with the TELNET server on
  the remote host.  See TCP/IP Network  section below.

SET PORT TCP/IP [ <Internet-name or Internet-address> [ <port> ] ]
  In version 3.12 and later, a TCP port number may be included.  The default
  is 23 (TELNET).  You may not specify port 25.

SET PORT TCP/IP *
  Sets MS-DOS Kermit up as a TCP/IP server, awaiting a connection from a
  TCP client.  After giving this command, use the SERVER to make the Kermit
  server available on the network, or CONNECT to wait for an incoming "chat"
  connection.  This feature works in version 3.12 and later.

SET PORT NETBIOS
  Tell Kermit to use IBM Netbios rather than a serial communication port.
  Kermit awaits connections from other PCs on the net.  Also used with AT&T
  StarLAN/StarGROUP.

SET PORT NETBIOS <name>
  Tell Kermit to connect to another PC on the Netbios network.  Also for
  AT&T StarLAN/StarGroup hosts.

SET NETBIOS-NAME <name>
  Tell Kermit to set your PC's Netbios node name to <name>.  Kermit
  appends ".K" to the end of the name if you don't include it yourself.

SET PORT NOVELL
  For using Novell network asynchronous communication servers (NASI/NACS).

SET PORT DECNET [<node> [<password>]]
  For DECnet-DOS LAT or CTERM connections.  Specify node to connect to, LAT
  password if required.

SET PORT UB-NET1
  For Ungermann-Bass Net/One.

SET PORT OPENNET [<node>]
  For Intel OpenNET, similar to Netbios.

SET PORT 3COM
  For using 3COM BAPI asynchronous communication server, BRIDGE PCS or 3+OPEN
  TCP versions.

SET PORT EBIOS { 1, 2, 3, 4 } [ name-of-server-port ]
  Use Extended BIOS for communication with EBIOS-based asynchronous
  communication servers like IBM's LANACS.

SET PORT TELAPI <Internet-address>
  Connect to an Internet TCP/IP host through Novell LAN Workplace for DOS.

SET PORT TES <hostname>
  Connect to a VAX/VMS system that is running Netware/VMS.

SET PORT { BIOS1, BIOS2, BIOS3, BIOS4 }
  For using any network that operates through a BIOS Int 14h COM port driver.

HANGUP
  Close network connection, terminate network session.

* CONNECT-MODE ESCAPE-LEVEL COMMANDS

During terminal emulation, you may type Ctrl-] (hold down Ctrl and press the
rightbracket key) followed by any of the following characters (on German
keyboards, hold down Strg and press +):

  ?   Help -- prints the available escape-level commands
  0   (the digit zero) Transmit a NUL (ASCII 0)
  B   (also Alt-B) Transmit a BREAK signal 
  C   (also Alt-X) Return to Kermit prompt level, keep connection open 
  F   (also Ctrl-End) File the current text screen in the screen dump file 
  H   Hangup the phone or network connection
  L   Transmit a Long Break (1.8 seconds)
  M   Toggle the mode line, i.e. turn it off if it is on & vice versa
  P   Push to DOS; get back to CONNECT by typing EXIT at the DOS prompt
  Q   Temporarily quit logging the remote session
  R   Resume logging the remote session
  S   (also Alt-S) Show the status of the connection 
  ^]  (or whatever you have set the escape character to be)
      Typing the escape character twice sends one copy of it to the host

* SET TRANSLATE INPUT COMMAND

  SET TRANSLATE ON
  SET TRANSLATE INPUT <code1> <code2>

Specify that when a character that would normally be translated to <code1>
arrives at the communication port during terminal emulation, it should be
translated into <code2> before display on the screen.  Overrides current
terminal character set translation for that character.  Translations set up in
this way take effect only after you give the command SET TRANSLATE INPUT ON.

* SET KEY COMMAND

  SET KEY <scancode> <value>

Assign <value> to the key whose scan code is given.  When you press the key
or key combination that corresponds to the scan code during terminal
emulation, the <value> is transmitted out the communication port.  If you
don't know the scan code, type SET KEY alone on a line, then press the desired
key or key combination when prompted, then enter the definition.  The <value>
can be a single character, a text string (which may contain backslash codes),
or one or more Kermit verbs.

* COMMONLY USED KERMIT KEYBOARD VERBS

The default key assignment is in parentheses.

  \Kexit        Exit from connect mode (Alt-X, Ctrl-]C)
  \Kbreak       Send a BREAK signal (Alt-B, Ctrl-]B)
  \Kdos         Push to DOS (Ctrl-]P)
  \Kdump        Dump current screen to file (Ctrl-End)
  \Khangup      Hangup communication port connection (Ctrl-]H)
  \Klogoff      Stop session logging (Ctrl-]Q)
  \Klogon       Resume session logging (Ctrl-]R)
  \Knethold     Put network connection on hold or enter network shell (Alt-n)
  \Kmodeline    Toggle mode line off/on++ (keypad minus)
  \Kprtscn      Print current screen (Print Screen)
  \Kreset       Reset terminal emulator (Alt-=)
  \Ktermtype    Switch between text and graphics screens (Alt-minus)
  \Kupscn       Roll back screen (PgUp)
  \Kupone       Roll back screen one line (Ctrl-PgUp)
  \Kdnscn       Roll screen forward (PgDn)
  \Kdnscn       Roll screen forward one line (Ctrl-PgDn)
  \KterminalR   Execute macro named TERMINALR if any
  \KterminalS   Execute macro named TERMINALS if any
  {\Kxxxx}      Execute macro named xxxx (xxxx can be any name)

Use SET KEY to assign or reassign these verbs to the keys of your choice.
Example: "SET KEY \315 \Kexit" puts \Kexit on the F1 key.

  SET KEY CLEAR: Restore all Kermit's default key assignments.
  SET KEY ON:    Use BIOS to read keystrokes (scan codes).
  SET KEY OFF:   Use DOS rather than BIOS to read keystrokes.
  SET KEY LK:    Use external DEC LK250 keyboard driver (if loaded).

* PRINTER CONTROL

During terminal emulation, Kermit controls the printer according to escape
sequences received from the host, including the following for
VT102/220/320 emulation:

  ESC [ 5 i    Begin transparent print (send port characters to printer)
  ESC [ 4 i    End transparent print
  ESC [ ? 5 i  Begin autoprint (send screen lines to printer)
  ESC [ ? 4 i  End autoprint

Kermit also lets you use Ctrl-Print Screen to turn the printer on and off
during terminal emulation.  The following command affects all these operations:

SET PRINTER <filename, PRN, or NUL>
  Sends Connect mode printer material to the indicated file instead of to the
  standard DOS printer name PRN; this is a "print to disk" option.  SHOW LOG
  displays the current filename (defaults to PRN).

If you press Print Screen (no Ctrl), DOS gets the request itself, Kermit never
sees it so the SET PRINTER command does not affect Print Screen.

* COMMANDS FOR TRANSFERRING FILES

Start a Kermit program on the remote computer, give it a "send", "receive",
or "server" command, escape back to MS-DOS Kermit, and give it one of the
following commands:

SEND <filename> [<alternate-name>]
  Send files to remote Kermit receiver or server.  Can abbreviate as S.

RECEIVE [<filename>]
  Wait for a file to arrive from the other Kermit program, which must
  be given a SEND command.  Can abbreviate as R.

GET <remote-filename>
  Ask a Kermit server to send the specified file(s).  Use GET <Enter>
  to be prompted for remote and local names separately.

MAIL <filespec> <address>
  Send the file as electronic mail to the address (if the remote Kermit
  supports this feature).

* GETTING INFORMATION ABOUT FILE TRANSFER

SHOW STATISTICS
  Display efficiency and other statistics about file transfers.

SHOW PROTOCOL
  Display file transfer protocol-related parameter settings.

SHOW FILE
  Display file-related parameter settings

* COMMANDS FOR TALKING TO A SERVER

BYE
  Shut down a remote Kermit server and log out its job

FINISH
  Shut down a remote Kermit server, put it back at command level

GET <remote-filename>
  Ask a Kermit server to send the specified file(s)

SEND <filename> [<alternate-name>]
  Send files to remote Kermit receiver or server

REMOTE CD [<directory> [<password>]]
  Tell remote server to change to named directory.

REMOTE DELETE <filespec>
  Tell remote server to delete the specified files.

REMOTE DIRECTORY [<filespec>]
  Tell remote server to send directory listing for specified files.

REMOTE HELP
  Ask the server to list the services it provides

REMOTE HOST command
  Command for remote host in its own command language

REMOTE KERMIT command
  Send a command to remote Kermit server in its own command language

REMOTE LOGIN user
  Login to a remote Kermit server, separate prompts for password, etc.

REMOTE MESSAGE text
  Send a one-line message to the remote Kermit server

REMOTE PRINT <filespec> [ <options> ]
  Send the file to a remote server and ask the server to print it with the
  specified options, if any.

REMOTE SET <parameter> <value>
  Tell remote server to set the specified parameter to the specified value.

REMOTE SPACE [directory]
  Show disk space on remote host

REMOTE TYPE filespec
  Display remote file(s)

REMOTE WHO
  Display users logged on remote system

* COMMANDS FOR ACTING AS A SERVER

DISABLE <parameter>
  Disable various capabilities of the server (DISABLE ? for list)

ENABLE <parameter>
  Enable various capabilities of the server (ENABLE ? for list)

SET SERVER TIMEOUT <num>
  How often the server should send NAK packets while waiting for a command,
  0 = never (default).

SET SERVER LOGIN <name> <password>
  Set up a name and password which must be sent to the server (by REMOTE
  LOGIN) before it will accept any other commands.

SHOW SERVER
  Examine server-related parameters.

SERVER [{<seconds>, <hh:mm:ss>}]
  Act as a Kermit server, optionally for or until the given time.  Default time
  is forever (until BYE or FINISH received, or interrupted with Ctrl-C).

The MS-DOS Kermit server honors the following requests:

  SEND        REMOTE CWD        REMOTE PRINT
  GET         REMOTE DELETE     REMOTE MESSAGE
  FINISH      REMOTE DIRECTORY  REMOTE SPACE
  BYE         REMOTE HOST       REMOTE TYPE
  LOGOUT      REMOTE KERMIT     REMOTE SET

* INTERRUPTION COMMANDS WHILE A FILE TRANSFER IS IN PROGRESS

  X or Ctrl-X: Stop sending the current file and go on to the next one, if any.
  Z or Ctrl-Z: Stop sending this file, and don't send any further files.
  E or Ctrl-E: Send Error packet to the remote Kermit.
  C or Ctrl-C: Return to Kermit command level immediately.
  Q or Ctrl-Q: Send a Ctrl-Q (Xon).
  Enter key:   Try to wake up a stuck file transfer.

* CHANGING FILE TRANSFER PARAMETERS

SET ATTRIBUTES { ON, OFF } = ON
  Enable/Disable processing of file attribute packets.

SET ATTRIBUTES { DATE, LENGTH, TYPE, CHARACTER-SET } { ON, OFF } = ON
  Enable/Disable processing of specific file attributes.

SET BLOCK-CHECK { 1, 2, 3 } = 1
  Level of error checking, 1 by default, 3 is strongest.

SET BLOCK-CHECK BLANK-FREE-TWO
  (Version 3.12 and later.)  Like SET BLOCK-CHECK 2, but formats the block
  check characters such that they never include blanks.

SET DEBUG PACKETS
  Display packets on screen during file transfer.

SET DEBUG OFF
  Turn off display of packets.

SET DESTINATION { DISK, PRINTER, SCREEN } = DISK
  Direct incoming files to the specified device.

SET FILE DISPLAY { SERIAL, REGULAR, QUIET } = REGULAR
  Format of Kermit's file transfer display.  Use SERIAL for hardcopy terminals,
  Braille devices, speaking devices, etc.  QUIET means no display at all (used
  automatically in remote mode).  Synonym: SET DISPLAY.

SET EOF { CTRL-Z, NOCTRL-Z } = NOCTRL-Z
  Whether Ctrl-Z marks the end of a PC DOS text file.

SET FILE TYPE { TEXT, BINARY } = TEXT
  TEXT implies record format conversion and character set translation.  Use
  BINARY to send or receive files with no conversaion at all.

SET FILE COLLISION { DISCARD, OVERWRITE, RENAME }
  What to do when a file arrives that has the same name as an existing file:
    RENAME   = Automatically give the arriving file a unique name (default).
    OVERWITE = Overwrite the existing file with the new file.
    DISCARD  = Reject any file that has the same name as an existing file.

SET FILE CHARACTER-SET { CP437, CP850, CP860, CP863, CP865, CP866, SHIFT-JIS }
  Tell Kermit which IBM PC code page to use when sending or receiving a
  text file.  Default is your current PC code page.  Kermit translates between
  the current file character set and the transfer character set.  SHIFT-JIS
  is Code Page 932 for Japanese Kanji, available on in version 3.12 and later.

SET TRANSFER CHARACTER-SET { TRANSPARENT, LATIN1, CYRILLIC, JAPANESE-EUC }
  Tell Kermit the character set used in Kermit packets.  TRANSPARENT, the
  default, means no translation.  LATIN1 is ISO Latin Alphabet 1, useful for
  transferring text that contains accented characters with other Kermit
  programs that support this feature.  CYRILLIC is ISO 8859-5 Latin/ Cyrillic,
  and can be used only with file character-set CP866.  JAPANESE-EUC is used
  for Japanese Kanji and can be used only with FILE CHARACTER-SET SHIFT-JIS,
  available only in version 3.12 and later.

SET TRANSFER LOCKING-SHIFT { OFF, ON, FORCED }
  If PARITY is other than NONE, MS-DOS Kermit 3.12 and later automatically
  uses a new locking-shift technique for transferring 8-bit more efficiently
  over the 7-bit connection.  To turn off this feature, use OFF.  To force the
  use of this feature even when parity is NONE, use ON.  Locking shift
  protocol is negotiated automatically with the other Kermit and is presently
  supported by C-Kermit 5A, IBM Mainframe Kermit 4.2.3, and MS-DOS Kermit 3.12.

SET TRANSLATION CHARACTER-SET {READABLE, INVERTIBLE}
  (Version 3.12 and later.)  The default is READABLE, which optimizes
  character-set conversion for "readability", rather than invertibility.
  INVERTIBLE gives a unique translation for each character between the FILE
  CHARACTER-SET and the TRANSFER CHARACTER-SET.

SET UNKNOWN-CHARACTER-SET { DISCARD, KEEP } = KEEP
  What to do when a file arrives that has an unknown character set.

SET FILE WARNING { ON, OFF, NO-SUPERSEDE } = ON
  Obsolete synomym for SET FILE COLLISION.

SET INCOMPLETE { KEEP, DISCARD } = DISCARD
  What to do with a file that does not arrive completely.

SET RETRY <number> = 5
  How many times to retry a particular packet before giving up on the file.

SET TIMER { ON, OFF } = ON
  Enable/Disable timeouts and retransmissions during file transfer.

SET WINDOW <num> = 1
  Number of sliding window packet slots.  Sizes greater than 1 can be used
  only with other Kermit programs that supports sliding windows.  Improves
  transmission efficiency on long-delay or noisy connections.

SET SEND (or RECEIVE) <parameter> <value>
  START-OF-PACKET <num> = 1  packet begin character, normally Ctrl-A
  END-OF-PACKET <num> = 13   packet end character, normally carriage return
  PACKET-LENGTH <num> = 94   packet length; 2000 max; > 94 for "long packets"
  PAUSE <num> = 0            Interpacket pause, milliseconds
  TIMEOUT <num> = 5          Timeout interval waiting for a packet, seconds
  PADDING <num> = 0          How many padding characters before each packet
  PADCHAR <num> = 0          Padding character to use
  DOUBLE-CHAR <num>          Double packet character <char> when sending.
  IGNORE-CHAR <num>          Discard <char> from packets when receiving.

Use SHOW FILE, SHOW PROTOCOL to examine current file transfer settings.

* COMMANDS FOR FILE TRANSFER WITHOUT ERROR CHECKING

Kermit can also transfer files or other information with remote computers,
services, or devices that do not support the Kermit file transfer protocol.
These methods provide no error detection or correction.  Use with caution.

TRANSMIT <filename>
  Send a text file to the host as if you were typing it at the keyboard
  a line at a time.  Waits for linefeed (\10) to echo before sending next
  line.  Uses all current communication settings (parity, flow, etc).
  Does'nt translate character sets.  CRLF is sent as CR only unless SET
  TRANSMIT LINE-FEEDS ON.  Empty lines are sent as pairs of CRs (or CRLFS)
  unless SET TRANSMIT FILL is used.

SET TRANSMIT <parameter> <value>
  Various parameters used to control TRANSMIT command.
  FILL-EMPTY-LINE { NONE, SPACE, <char> }
  LINE-FEEDS-SENT { ON, OFF }
  PAUSE <number> - pause <number> milliseconds after sending each line.
  PROMPT <char> - character to wait for before sending next line (= \10)

LOG SESSION <filename>
  Capture a remote file, which you must TYPE, into the named file
  (SESSION.LOG by default).  Use \Klogoff and \Klogon keyboard verbs to
  stop and restart logging (Ctrl-]Q, Ctrl-]R).

CLOSE SESSION
  Stop capturing and close the session log file.

* COMMANDS FOR RECORDING THINGS

LOG TRANSACTION [<filename>] = TRANSACT.LOG
  Log file transfer names, times, etc, in given file.

LOG SESSION [<filename>] = SESSION.LOG
  Record terminal session in given file.
  Use REPLAY <filespec> to view the log.

LOG PACKETS [<filename>] = PACKET.LOG
  Record file transfer packets in given file.

WRITE {FILE, PACKET, SESSION, TRANSACTION, SCREEN} [<text>]
  Write the text to the specified log file or to the screen.  Text may contain
  backslash codes, variables, etc.  Kermit does not supply line terminators
  so include \13\10 at the end of the text if you want the text to end in CRLF.

CLOSE {PACKET, SESSION, TRANSACTION, READ, WRITE, ALL}
  Close the specified log file and stop logging.

SHOW LOG
  Display names and status of logging and log files.

Ctrl-]F (while in Connect mode)
  Dump current text screen into a file (even if graphics screen is showing).

Ctrl-End (while in Connect mode)
  Dump the current screen (text or graphics) into a file.

SET DUMP <name>
  Specify name of screen dump file for text screens (KERMIT.SCN by default).
  Graphics screens are saved to TEKPLTnn.TIF.

* MACROS

DEFINE <macro-or-variable-name> [<text>]
  Defines a macro or variable called "<name>" to have the given value.  If
  <text> is omitted, undefines the named macro or variable.  When defining
  command macros, <text> should be a list of MS-DOS Kermit commands, separated
  by commas.  This command can also be used to define a variable like \%1, \%a,
  etc.  The definition is copied literally (backslash codes not interpreted).

[DO] <macro-name> [<parameter1> [<parameter2> [<parameter3> [...]]]]
  Executes the macro called "<name>", and assigns the parameters, if any, to
  the variables \%1, \%2, \%3, etc, and sets the variable ARGC to the number of
  parameters plus one (1 = no parameters, 2 = 1 parameter, etc).  The variable
  \%0 is assigned the name of the macro.  These variables are available only
  within the macro.

ASSIGN <macro-or-variable-name> [<text>]
  Like DEFINE, copies the current value of <text> into the macro or variable,
  but (unlike DEFINE) all variables in the <text> are evaluated first.

SHOW MACRO [<name>]
  Shows the definition of the specified macro or variable.

IF DEFINED <name> <command>
  Executes the <command> if the macro or variable name is defined.

IF = ARGC <num> <command>
  Executes <command> if ARGC is equal to <num> (numeric constant or variable)

IF < ARGC <num> <command>
  Executes <command> if ARGC is less than <num>

IF > ARGC <num> <command>
  Executes <command> if ARGC greater than <num>

IF NOT > ARGC <num> <command>
  Executes <command> if ARGC less than or equal to <num>

IF =, <, >
  Can also be used with any numeric variables or constants, not just ARGC,
  including the other predefined numeric variables, VERSION, COUNT, and
  ERRORLEVEL, the built-in numeric variables like \v(ndate), \v(status), etc,
  or any other variable (\%1, \%a) that has a numeric value.  Use IF EQUAL to
  compare character strings (see below).

* VARIABLES

\%0 is the name of the currently executing macro (if any).  \%1 thru \%9 are
its parameters (arguments), created when the macro is invoked and destroyed
when it terminates.  If a macro invokes another macro, a new set of arguments
is created and the old set is preserved.  (This is a change from 3.01 and
earlier, in which macro arguments were global.)

\%a through \%z are global variables that can be modified or accessed in any
context.  Created by DEFINE, ASSIGN, ASK, ASKQ, or READ.

The following commands can be used in version 3.12 and later for arithmetic on
variables that have numeric values:

INCREMENT <variable-name> [ <number> ]
  Adds <number>, if given, to the value of the named variable.  If no <number>
  is given, adds 1.

DECREMENT <variable-name> [ <number> ]
  Subtracts <number>, if given, to the value of the named variable.  If no
  <number> is given, subtracts 1.

Macro definitions can be used as variables too.  DEFINE or ASSIGN the macro in
the normal way, but refer to it using \m(name), for example:

   define phone-number 7654321
   if not defined phone-number echo Phone number is is not defined!
   echo The phone number is \m(phone-number).
   dial \m(phone-number)

\v(xxx) is a built-in variable, where xxx is its name:
   \v(argc)        macro argument count
   \v(count)       current value of loop counter (SET COUNT / IF COUNT)
   \v(date)        current date in country format, e.g. dd-mm-yyyy 08-02-1991
   \v(ndate)       numeric date yyyymmdd, e.g. 19910208
   \v(directory)   current disk and directory, e.g. C:\LETTERS\
   \v(errorlevel)  current value of ERRORLEVEL variable (SET ERRORLEVEL)
   \v(keyboard)    IBM PC keyboard type: 88, 101, or (for LK250) 250.
   \v(line)        Same as \v(port)
   \v(platform)    PC type, e.g. IBM-PC, DEC-RAINBOW
   \v(port)        Current SET PORT value
   \v(program)     Program name, MS-DOS_KERMIT
   \v(speed)       Current transmission speed (only for COM1..4, EBIOS)
   \v(status)      0 if previous command succeeded, nonzero if it failed.
   \v(system)      MS-DOS
   \v(terminal)    Current terminal emulation type, e.g. VT320 (3.12 & later)
   \v(time)        Current time of day, hh:mm:ss, e.g. 12:30:01
   \v(version)     Numeric program version, e.g. 311 for version 3.11.

\$(xxx) is a DOS environment variable, e.g. \$(COMSPEC).

* SCRIPT COMMANDS

These commands are used (in conjunction with other Kermit commands) for
carrying out an automated dialog with a remote computer.

ASK <variable> <prompt>
  Print the <prompt> on the screen, assign what user types to the <variable>.

ASKQ <variable> <prompt>
  Like ASK, but do not echo what user types.

INPUT [<timeout>] <string>
  Wait up to <timeout> secs for <string> to arrive at communications port.
  If it arrives, set SUCCESS.  If not, time out and set FAILURE.
  String may contain backslash codes.

OUTPUT <string>
  Send the <string> out the communications port.  May include backslash
  codes, variables, etc, plus the special items \B to send a BREAK and
  \L to send a Long BREAK.

SET INPUT CASE { IGNORE, OBSERVE } = IGNORE
  Say whether alphabet case should matter in searching for INPUT string.

SET INPUT DEFAULT-TIMEOUT <secs> = 1
  Timeout interval to use if none given in INPUT command.

SET INPUT ECHO { ON, OFF } = ON
  Whether to display characters read by INPUT command on the screen.

SET INPUT TIMEOUT-ACTION { PROCEED, QUIT } = PROCEED
  PROCEED means set SUCCESS or FAILURE and go on to next statement in macro
  definition or TAKE file.  QUIT means to quit from current macro or TAKE
  file immediately upon timeout (i.e. upon failure).

IF SUCCESS <command>
  Execute the <command> if the preceding INPUT command succeeded.  Also works
  with file transfer commands like SEND, RECEIVE, GET, BYE, etc.

IF FAILURE <command>
  Execute the <command> if the preceding INPUT or file transfer command failed.

PAUSE <secs>
  Do nothing for specified number of seconds, or until any character is typed
  at the keyboard.

WAIT [<timeout>] [DTR] [CD] [CTS]
  Wait <timeout> (seconds or until time hh:mm:ss) for specified modem signals.

CLEAR
  Clear communications port input buffer.

STOP
  Return immdediately from the current macro or TAKE file to the MS-Kermit>
  prompt.

STOP [ <number> ] [ <text> ]
  (Version 3.12 and later.)  Return immdediately from the current macro or
  TAKE file to the MS-Kermit> prompt, using the <number>, if specified, as the
  SUCCESS / FAILURE code, and setting the value of \v(status) to that number.
  If the <number> is omitted, the SUCCESS / FAILURE status of the previous
  command is retained and \v(status) is not changed.  If the optional <text>
  is given, it is printed on the screen.  Leading and trailing spaces are
  removed unless the text is enclosed in curly braces, in which case only the
  curly braces are removed.  Examples:

    STOP			; No message, status is not changed
    STOP 0			; No message, statis is 0 (SUCCESS)
    STOP 1			; No message, status is 1 (FAILURE)
    STOP This is a message	; Status not changed, message is printed
    STOP {  Indented text}	; Ditto, leading spaces are preserved
    STOP 0 This is a message	; Status set to 0, message is printed
    STOP 1 { This is a message}	; Status set to 1, message is printed

END
  Return from current macro or TAKE file to the macro or TAKE file which
  invoked it, or if none, to the MS-Kermit> prompt.  Synonym: POP.

END [ number ] [ text ]
  (Version 3.12 and later.)  Return from current macro or TAKE file to the
  macro or TAKE file which invoked it, or if none, to the MS-Kermit> prompt.
  Otherwise, identical to STOP.  Synonym: POP.

GOTO <label>
  Instead of executing the next statement in the current macro definition or
  TAKE-file, go to the specified label and begin executing there.  The label
  must be a word that begins with a colon (:) in the left margin in a macro
  definition or TAKE file.  If it is not found, Kermit "POPs" one level and
  looks there, and so on through all active macros and command files.

:LOOP
  The previous line shows a label called "loop".  GOTO LOOP would find it.

REINPUT <timeout> <string>
  Like INPUT, but instead of waiting for <string> to arrive at communications
  port, REINPUT rescans the text that has already arrived.

SET COUNT <number>
  Sets the loop counter to <number>.

IF COUNT <command>
  Subtract one from count.  If result is greater than 0, execute <command>.
  Use with GOTO to construct counted loops.

SET ALARM <time>
  Set an alarm <time> seconds from now, or at time hh:mm:ss.

IF ALARM <command>
  If the alarm time has passed, execute the <command>.

SET ERRORLEVEL <number>
  Set errorlevel to be returned to DOS by Kermit upon exit.

IF ERRORLEVEL <number> <command>
  If ERRORLEVEL of most recently executed DOS command matches or exceeds
  <number>, execute the <command>.

IF EXIST <filename> <command>
  If the named file exists, execute the <command>.

IF INPATH <filename> <command>
  If the named file can be found in your DOS PATH, or in the current
  directory, execute the <commmand> (version 3.12 and later).

IF EQUAL <word1> <word2> <command>
  Execute the command if the two words are the same.  The words may be text or
  variables.

IF LGT <word1> <word2> <command>
IF LLT <word1> <word2> <command>
  Execute the command if <word1> is lexically greater than (LGT) or lexically
  less than (LLT) <word2>.  EQUAL, LGT, and LLT are alphabetical comparisons.
  Case is treated according to SET INPUT CASE.  To compare text items that
  contain spaces, use { brackets } for grouping:
    IF LLT {\%a} {more than one word} <command>

OPEN {READ, WRITE, APPEND} <filename>
  Open a DOS file in the given mode.

READ <variable-name>
  Read a line from the current OPEN READ file into the given variable,
  discarding line terminators.  Sets FAILURE flag at end of file.

WRITE FILE <text>
  Write the text into the current OPEN WRITE or OPEN APPEND file; <text> can
  contain any mixture of ordinary characters, backslash codes, variable names.

CLOSE {READ, WRITE}
  Close the current READ or WRITE (including APPEND) file.

* TCP/IP NETWORK SETUP

This section assumes knowledge of TCP/IP.  See "Using MS-DOS Kermit" for
additional explanatory material, or Douglas Comer's book "Internetworking with
TCP/IP" (Prentice-Hall), or show this material to your network manager.

To use Kermit's built-in TCP/IP support, you need a network adapter, an
Ethernet-style packet driver (not device driver) for the adapter, or a
Novell ODI driver for Ethernet, Token Ring, Arcnet, or PCnet, and a
connection to a TCP/IP network.  NDIS drivers can be used by using protocol
shim program DIS_PKT on the top of NDIS to form a Packet Driver; the latest
version is named DIS_PKT9 from Joe Doupnik at Utah State University.

Install either an Ethernet-style packet driver or an ODI driver for for
your PC's network interface, or a SLIP packet driver for your PC's serial
port.  For Token Rings, install the IBMTOKEN.COM driver on top of the Token
Ring board drivers or use ODI.  For NDIS (LAN Manager) environments, install 
the DIS_PKT "shim" on top of the NDIS drivers.  IBMTOKEN and DIS_PKT are 
available from Columbia as part of the packet driver collection (see below).

If you plan to make Kermit TCP/IP connections under Microsoft Windows, you
must either:

 (a) Configure Windows to "Lock Application Memory" in your KERMIT.PIF file.
or:
 (b) Install WINPKT.COM after installing your packet driver, with WINPKT
     set to a lower interrupt number than the packet driver (see WINPKT.HLP
     for instructions and examples).

If your network interface vendor did not supply you with a packet driver, they
are available via anonymous FTP from Columbia University, host
watsun.cc.columbia.edu [128.59.39.2], cd packet-drivers, get the READ.ME file,
read it, and take it from there.  These files, now called the Crynwyr packet
driver collection, are also available from Columbia University via mail order.
WINPKT is also available from Columbia.

Before Kermit can use the TCP/IP network, you must use SET TCP/IP commands to
supply Kermit with the necessary details about it.  Check with your network
manager to find out the correct values for these commands, and then put them
in your MSKERMIT.INI file.  Don't make them up!

You can view your TCP/IP settings with the SHOW COMMUNICATIONS command.

SET TCP/IP ADDRESS <IP-address or BOOTP or RARP>
  Tell Kermit your PC's IP address (required).  If your local network has a
  BOOTP or RARP server, you can SET TCP/IP ADDRESS BOOTP or RARP to have the
  server download your IP address automatically.  Examples:
    SET TCP/IP ADDRESS 128.59.77.23 ; My IP address, fully specified
    SET TCP/IP ADDRESS BOOTP        ; Get my address from a BOOTP server
    SET TCP/IP ADDRESS RARP         ; Get my address from a RARP server

SET TCP/IP SUBNETMASK <IP-address-mask>
  Tell Kermit which portion of an IP address corresponds to your physical
  network.  The default is 255.255.255.0.  A correct value is essential; it is
  used by Kermit to tell whether an IP address is on your physical network
  or must be accessed through a gateway.  Incorrect values prevent successful
  communication.  The subnetmask can be downloaded by BOOTP.

SET TCP/IP BROADCAST <IP-broadcast-address>
  Tell Kermit the IP address to use when sending IP broadcast messages, for
  example to the BOOTP server, and to recognize incoming ones.  The default is
  255.255.255.255, meaning "my own physical network".  Change this parameter
  if your BOOTP server is on a different subnet of your local network, or if
  your local network uses the old 4.2 Berkeley UNIX convention of 0's rather
  than 1's for IP broadcast addresses.  An incorrect value can prevent
  successful communication, or worse.

SET TCP/IP PRIMARY-NAMESERVER <IP-address>
  The IP address of your network's primary nameserver, which translates
  hostnames into IP addresses.  Required if you want to use host names rather
  than numeric IP addresses in your SET PORT TCP/IP commands.  Example:
    SET TCP/IP PRIMARY-NAMESERVER 128.59.77.1
  Can also be downloaded automatically by BOOTP.

SET TCP/IP SECONDARY-NAMESERVER <IP-address>
  The IP address of your network's secondary nameserver, used by Kermit if the
  primary nameserver is unavailable.  If no nameserver is reachable, use IP
  host numbers rather than names in your SET PORT TCP/IP commands.  Nameserver
  addresses can also be downloaded automatically by BOOTP.

SET TCP/IP GATEWAY <IP-address>
  The IP address of the gateway between your local area network and the rest of
  the Internet.  Required if you want to communicate outside of your immediate
  local network.  Can also be downloaded automatically by BOOTP.

SET TCP/IP HOST <IP-address or hostname>
  The default host for SET PORT TCP/IP commands.  SET PORT TCP/IP <host> sets
  this too, so the next SET PORT TCP/IP command remembers it if you omit the
  host.  This allows you to switch back and forth between serial and TCP/IP
  connections.

SET TCP/IP DOMAIN <domain-name>
  IP domain name for your organization or department, for example columbia.edu
  for Columbia University, cc.columbia.edu for the Computer Center at Columbia
  University.  This lets you refer to hosts on your local network with
  nicknames, for example watsun rather than watsun.cc.columbia.edu.  When a
  hostname given in your SET PORT TCP/IP command can't be found, Kermit appends
  the domain and tries again.  If it still can't be found, Kermit trims the
  leftmost field from the domain and tries again, and so on until the host is
  found or the domain name is used up:
    SET TCP/IP DOMAIN cc.columbia.edu
    SET PORT TCP/IP oofa.cs
  Kermit tries (in this order): oofa.cs, oofa.cs.cc.columbia.edu,
  oofa.cs.columbia.edu, oofa.cs.edu.

SET TCP/IP PACKET-DRIVER-INTERRUPT { <number>, ODI }
  (Version 3.12 and later.)  MS-DOS Kermit normally searches for the packet
  driver beginning at interrupt \x60 and going up the \x80.  You can use this
  command to disable MS-DOS Kermit's automatic search and specify a particular
  interrupt number, for example, SET TCP PACKET-DRIVER \x63.  If you specify
  "ODI" instead of an interrupt number, Kermit uses ODI rather than
  packet-driver conventions for communicating with the network board driver.
  ODI support is available in version 3.12 and later.

SET TCP/IP TELNET-TERM-TYPE <name>
  (Version 3.12 and later.)  Normally MS-DOS Kermit sends the name of terminal
  it is currently emulating, for example, "VT320", in response to a
  terminal-type request from the remote TELNET server.  Use this command to
  supply any terminal-type name of your choosing.

Sample TCP-related commands for MSCUSTOM.INI (substitute your own correct
values for the ones shown here!):

  SET TCP/IP ADDRESS 128.59.77.23              ; Your PC's IP address
  SET TCP/IP SUBNETMASK 255.255.255.0          ; Your local net's subnet mask
  SET TCP/IP GATEWAY 128.59.77.1               ; The gateway on your local net
  SET TCP/IP PRIMARY-NAMESERVER 128.59.77.19   ; Nameserver on your local net
  SET TCP/IP SECONDARY-NAMESERVER 128.59.78.12 ; Fallback nameserver
  SET TCP/IP DOMAIN bar.baz.edu                ; Your local IP domain name

Then, to make a TCP/IP connection:

  SET PORT TCP/IP foo                          ; Connect to foo.bar.baz.edu
  CONNECT

The TCP/IP connection is not actually established until the CONNECT (or INPUT
or OUTPUT or similar) command is given, at which time some progress messages
are displayed on your screen.  If connection is immediate, you won't see these
messages, but if the connection fails, they will remain visible so you'll know
why it failed.

Logging out from the remote host will normally terminate your session and
pop you back to the MS-Kermit> prompt.  The HANGUP command, or Ctrl-]H during
terminal emulation, should do the same thing.

If your network has a BOOTP server, Kermit can learn its own IP address, as
well as the nameserver addresses, gateway address, and subnet mask from the
server if the BOOTP server's database has an entry for your PC that contains
these items.  Then, only commands you need to set up your TCP connection are:

  SET TCP/IP SUBNETMASK 255.255.254.0 ; Subnet mask
  SET TCP/IP DOMAIN bar.baz.edu       ; Your local IP domain name
  SET TCP/IP ADDRESS BOOTP            ; Get other info via BOOTP

  SET PORT TCP/IP <name-or-number>    ; Establish a connection
  CONNECT

The SET TCP/IP SUBNETMASK command is necessary only if your subnetwork uses
a different mask than Kermit's default, which is 255.255.255.0.  These
commands should go in your MSCUSTOM.INI file.

Kermit sends an IP broadcast message to find the BOOTP server.  If
you also have given SET TCP/IP ADDRESS, SUBNETMASK, PRIMARY-NAMESERVER,
SECONDARY-NAMESERVER, and GATEWAY commands, their values will be superseded by
any values sent by the BOOTP server.

BOOTP service has the great advantage that PC network configurations need be
maintained in only one central file, rather than on many individual PCs.  If
the BOOTP server is unavailable, users can still enter the required information
with SET TCP/IP commands.  A BOOTP server for Berkeley UNIX is available by
anonymous FTP from lancaster.andrew.cmu.edu [128.2.13.21] in pub/bootp.?.?.tar
(or .tar.Z), where ?.? is the current bootp release number, such as 2.1.  It
is also available from Columbia University via anonymous ftp from
watsun.cc.columbia.edu in the bootp directory.

If your network has a RARP server, Kermit can learn its own IP address from the
server, if the RARP server's database contains an entry for your PC.  The RARP
server can't tell you the subnetmask, nameserver addresses, or gateway address,
so you will still need these items in your MSCUSTOM.INI file.  However,
everybody on the same physical network can use the same TCP/IP network
parameters in their MSCUSTOM.INI files because the SET TCP/IP parameters other
than ADDRESS are all the same.

HINT: To avoid typing long SET PORT TCP/IP commands, define a macro for each
host you commonly connect to:

  DEFINE OOFA SET PORT TCP/IP OOFA, PAUSE 0, IF SUCCESS CONNECT

Put these definitions in your MSCUSTOM.INI file.  Then just type "OOFA" to
connect to TCP/IP host OOFA.  The standard sample MSCUSTOM.INI file already
defines a TELNET macro for you:

  DEFINE TELNET SET PORT TCP/IP \%1 \%2, PAUSE 0, IF SUCCESS CONNECT

(End of MS-DOS Kermit 3.11 /3.12 Help File)
