				MS-DOS V9KERMIT HELP

		FOR VICTOR 9000 and SIRIUS 1 MS-DOS COMPUTERS

[Modified from the MS-DOS Kermit Help File for IBM PC Family, Compatibles, and
			Other MS-DOS computers, by R.N. Folsom,  October 1993]

			    Version 3.13, July 1993


Last IBM version update: Thursday 8 July  20:15:13  1993


This file briefly summarizes the commands and features of MS-DOS Kermit 3.13.
For detailed information, consult the book USING MS-DOS KERMIT, second edition,
by Christine M. Gianone, published by Digital Press, Bedford, MA (1992),
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.
To order, call (USA, toll free) 1-800-344-4825, or 1-212-854-3703.

A German-language edition, MS-DOS KERMIT -- DAS UNIVERSELLE
KOMMUNIKATIONSPROGRAMM, translated by Gisbert W. Selke, is published by
Verlag Heinz Heise GmbH & Co KG, Hannover, Germany, ISBN 3-88229-006-4.
Verlag Heinz Heise GmbH & Co. KG, Helstorfer Strasse 7, D-3000 Hannover.
Tel. +49 (05 11) 53 52-0,  Fax. +49 (05 11) 53 53-1 29.

A French-language edition, Christine M. Gianone, KERMIT MS-DOS MODE D'EMPLOI,
translated by Jean Dutertre, is published by Heinz Schiefer & Cie., Versailles
(1993).  ISBN 2-901143-20-2.
Heinz Schiefer & Cie., 45 rue Henri de Regnier, F-78000 Versailles, France.
Tel. +33 13 021 55 05, Fax. +33 13 902 3971.

    TCP/IP users: Read the section at the end of this file and the TCP/IP
    section in the "beware file" (V9KERMIT.BWR) for information that
    was not available at press time for the book USING MS-DOS KERMIT.

TERMS AND CONDITIONS

  Copyright (C) 1985, 1993, Trustees of Columbia University in the City of New
  York.	 The MS-DOS Kermit software may be reproduced and shared without
  restriction as long as this copyright notice is retained, except that it may
  not be licensed or sold for profit as a software product itself, and it may
  not be included in or distributed with commercial products or otherwise
  distributed by commercial concerns to their clients or customers without
  written permission of the Office of Kermit Development and Distribution,
  Columbia University.

MS-DOS Kermit is a product of Kermit Distribution, Columbia University Academic
Information Systems.  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.

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 Academic Information Systems
  612 West 115th Street
  New York, NY	10025  USA

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

  kermit@columbia.edu (Internet) or KERMIT@CUVMA (BITNET/EARN).

UPDATES

MS-DOS Kermit 3.11 was released September, 1991, and is fully described in
the book USING MS-DOS KERMIT, second edition.  MS-DOS Kermit 3.12 and 3.13 have
several features not described in the book, but which are included in this file,
and described fully in the file V9KERMIT.UPD.

PROGRAM INSTALLATION

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

For hard-disk systems, make a \KERMIT directory on your hard disk, and COPY
[V9Kermit.exe and other] Kermit diskette files to it [as explained in the file
V9Install.doc].  Then add the hard disk \KERMIT directory to your DOS PATH
(modify the PATH= command in your AUTOEXEC.BAT file).  NOTE: If you have a modem
other than a Hayes 1200 or 2400 [or compatible], you will need to copy the
appropriate dialing script file from the MODEMS [archive or] subdirectory into
the main KERMIT directory.  The same might apply to various other drivers or
files.  Be sure to read the V9INSTAL.TXT file on the MS-DOS Kermit distribution
diskette.

In version 3.13 and later, you do not have to add the KERMIT directory to your
DOS PATH.  Alternatively, you can add a PATH item to your "KERMIT=" DOS
environment variable, for example:

  SET KERMIT=ROLLBACK 50;PATH C:\KERMIT;COM4 \x2e8 5

Of course, you have to put V9KERMIT.EXE itself in a directory that is in your
DOS PATH, or else create a KERMIT.BAT file in such a directory to run
V9KERMIT.EXE out of its own directory.

In both cases, however, you still have to edit your AUTOEXEC.BAT file: either
to change the PATH or to add or change the KERMIT environment variable.	 The
reason you need to have Kermit's directory in the DOS PATH (or in the KERMIT
PATH) is so Kermit can find its initialization file, modem dialing scripts,
and other command files and scripts (the TAKE command looks in the PATH).

[The only absolutely essential file is V9KERMIT.EXE, although most users will
want to include also variants of MSKERMIT.INI and of DIALUPS.TXT, HAYES.SCR, and
the patch file MSR313.PCH if applicable (not currently used for Victor Kermit).]


Please don't edit the standard initialization file, MSKERMIT.IN_.  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.IN_ [provided you first change its extension from .IN_
to .INI, after first renaming the simple MSKermit.ini file to something else. 
Alternatively, run MSCUSTOM.INI directly, as explained in V9Install.doc,
lines 70-92.]

To use Kermit in Microsoft Windows, also perform the following steps:
[not applicable to Victor, and therefore omitted by RNF].

Read the book USING MS-DOS KERMIT for more detailed installation instructions,
as well as for complete instructions on using MS-DOS Kermit.

Read the V9KERMIT.BWR file for problem-solving hints as well as technical
details [including networks].


APPLYING PATCHES TO MS-DOS KERMIT

Sometimes errors are discovered in MS-DOS Kermit programs after they are
released.  Rather than issue a new release to correct these problems, we
"patch" them at runtime.  The patches are contained in a small file called
MSR313.PCH.  This file contains checking information -- the MS-DOS Kermit
version number and internal checksum must agree -- plus patches that Kermit
should apply to itself when it starts up.  The MSR313.PCH file should go
in the same directory as your MSKERMIT.INI file.

When the simple instructions below are followed Kermit will read the file
MSR313.PCH and make changes to the copy of itself which is currently running
in memory.  The executable Kermit program file on your disk is not modified.

CAUTION: [These patches should be applied ONLY to an executable version of
MS-DOS Kermit obtained by mail from Kermit Distribution at Columbia (including
the IBM version of MS-KERMIT.EXE from the disk in the book USING MS-DOS KERMIT),
or over a computer network [Internet, Bitnet, or some other, using File Transfer
Protocol (ftp)] from Kermit.Columbia.edu (for the IBM, either MSVIBM.EXE or a
translation from MSVIBM.BOO;  for the Victor, either MSVV90.EXE or a translation
from MSVV90.BOO.  These patches should NOT be applied to a Kermit version you
built yourself from the source code using a possibly different assembler and
linker!  At present, Victor Kermit has no patch file;  a patch file for an IBM
Kermit should NOT be used on V9Kermit.]

Patch instructions:
    
 1. Make sure you have the version of Kermit for which these patches are
    intended.  Run Kermit and type the VERSION command.
    
 2. Obtain a copy of the the appropriate patch file from Kermit Distribution
    at Columbia University.  Don't trust copies of this file that came from
    anywhere else!  [Those connected to Columbia through a computer network
    can transfer a patch file in text mode to a local computer host, and
    then use Kermit in text mode to transfer it to their PCs.
    [The patch file for IBM MS-DOS Kermit version 3.13 is MSR313.PCH.
    Patch files for later IBM Kermit versions will be named analogously].
    
 3. If you got your copy of [a patch file such as] MSR313.PCH on paper from
    Columbia University, you must type the file in to your PC using a text
    editor or word processor.  Be sure to use the "ASCII" or "TEXT-ONLY" option
    of your word processor and be very careful not to make any typographical
    errors.  Double check your typing.
    
 4. Copy or move the MSR313.PCH file to the same disk and directory where you
    keep your MSKERMIT.INI file.
    
    NOTE: [At startup, MS-DOS KERMIT versions 3.13 and later look for a patch
    file named either MSKERMIT.PCH or MSRnnn.PCH, where nnn is the three-digit
    program version number, e.g. MSR313.PCH.  Earlier MS-DOS Kermit versions,
    e.g. 3.11 and 3.12, could not use a MSRnnn.PCH patch file, but used only a
    MSKERMIT.PCH patch file, created by copying the relevant MSRnnn.PCH file.
    But in MS-DOS Kermit 3.13 and later, you don't need to copy the MSRnnn.PCH
    file, because Kermit can use it directly.]
    
 5. [To make patches,] the MSKERMIT.INI file includes PATCH as its first
    command.  This is what installs the patches.  If the patch file is not
    found, or if it disagrees in any way with the version of Kermit you are
    running, an error message is printed and the patches are ignored.
    
 6. Now CD to your normal working directory, and type "kermit" to start the
    Kermit program.  The startup banner and the VERSION command display the
    patch level.

If the patching process succeeds then no messages are issued.  See the patch
file itself (it's a text file) for a description of each patch, and also be
sure to read V9KERMIT.BWR for further information.

SUMMARY OF MS-DOS KERMIT COMMANDS

The commands listed are for the IBM PC, PS/2, and compatibles.	Other versions
of MS-DOS Kermit (NEC PC9801, DEC Rainbow, Victor 9000, Zenith Z100, etc) may
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 descriptions 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 for many purposes, such as to enter special
characters into Kermit commands.  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 character value
  \x123	  (2 hexadecimal digits) - A hexadecimal (base 16) number or character
  \{ }	  For grouping, e.g. \{12}6 = Ctrl-L 6, not ASCII 126 = tilde (~)
  \;	  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)
  \255	   Shorthand for CRLF or LFCR	(INPUT 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, 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.

PATCH [ <path> ]
  Apply patches (corrections) to the running memory image from the appropriate
  MSRnnn.PCH (or MSKERMIT.PCH) file.

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

PUSH
  Go to the 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:
    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 MS-DOS Kermit's interactive command 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.

RUN <command>
  RUN the given DOS command or program.

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.IN_.


* 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).

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 an NSC 8250,
  16550A, or compatible UART, and, optionally, that its interrupt request
  (IRQ) line number is <irq>.  Also SET COM2, SET COM3, SET COM4.  Give this
  command BEFORE the corresponding SET PORT command.

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 not, Kermit will use BIOS rather than direct
  hardware control.

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.

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).  Affects only
  file transfer.

SET FLOW-CONTROL {XON/XOFF, RTS/CTS, NONE} = XON/XOFF
  Select a full-duplex bidirectional flow-control method.
  In addition XON/XOFF can be enabled in one direction only:
  SET FLOW {INCOMING-XON/XOFF, OUTGOING-XON/XOFF}


* 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 serial connection by lowering DTR until the next time the 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, D463, D470, NONE } = VT320
  Select type of terminal to emulate.  Other types may be available, type
  SET TERMINAL TYPE ? for a list.

SET ROLLBACK <number>
  Number of text screens to be kept in the rollback buffer.  Each 24x80 screen
  occupies about 4K; bigger screens need more space.  Also see SET TERMINAL
  EXPANDED-MEMORY.

SET TERMINAL ANSWERBACK { ON, OFF }
  Whether Kermit should respond with string "MS-DOS KERMIT" if, during
  terminal emulation, it receives Ctrl-E (ENQ) from host.  Default is OFF,
  no reply.

SET TERMINAL APC { ON, OFF, UNCHECKED }
  Enable, disable, or fully open up the Application Program Command feature of
  the VT220/320 emulator, which allows the host to send commands to MS-DOS
  Kermit embedded in escape sequences.	Default is ON, in which non-dangerous
  commands are enabled.	 OFF means all such commands are ignored, UNCHECKED
  means all commands are executed without first checking whether they might be
  dangerous.

SET TERMINAL ARROW-KEYS { APPLICATION, CURSOR }
  Put 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.

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.  Type SET
  TERMINAL CHARACTER-SET ? to see a complete list.

SET TERMINAL CLEAR-SCREEN
  Clear the terminal screen.

SET TERMINAL CODE-PAGE CPnnn
  Tells MS-DOS Kermit what code page is presently active on your PC.  Used
  because DOS does not always correctly report the current code page.
  Kermit's TERMINAL CODE-PAGE is combined with your TERMINAL CHARACTER-SET to
  pick the appropriate translation when you enter CONNECT mode.  Translation
  of Cyrillic (CP866) and Japanese Kanji (Shift-JIS) is not supported during
  terminal emulation.

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 COMPRESSED-TEXT { GRAPHICS, TEXT-132 }
  Compressed text is how more characters are shown across the same screen.
  Some video adapters support compressed text in regular text mode.  Others,
  like the EGA and VGA, do not.	 Use the GRAPHICS option to display compressed
  text on the EGA or VGA, or else use horizontal scrolling (see \Kverbs).

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 EXPANDED-MEMORY { ON, OFF }
  Whether to use expanded memory for retention of graphics screens and for
  text terminal-emulation rollback screens.  The default is OFF, to use
  conventional memory.	ON leaves extra room in conventional memory for
  running other programs, does not rely on your video adapter's memory for
  storing graphics images, and allows more rollback screens, limited only by
  the size of your PC's available physical memory.  ON requires that an
  expanded memory manager, such as EMM386 or QEMM, be correctly installed.
  Also see SET ROLLBACK.

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 HORIZONTAL-SCROLL { AUTOMATIC, MANUAL }
  When Kermit's TERMINAL WIDTH is wider than the physical screen, you can view
  characters off the physical screen by horizontal scrolling, which can be
  manual (you push keys) or automatic (Kermit scrolls the screen automatically
  as characters arrive to keep the cursor on the screen).  MANUAL is the
  default for VT terminal emulation, AUTOMATIC for DG terminal emulation.

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}
  Select 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.  NONE, the default, says do nothing about the matter and thus
  the character's high bit is lost and replaced by a parity bit.  SI/SO, SS2,
  and SS3 shift the character into G1, G2, or G3, respectively, using ISO 2022
  rules.  AUTO selects a method based on the current GL value.

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.  If your
  tabstops get messed up, restore them to normal with "set term tab at 1:8".

SET TERMINAL TEK4010 {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 VIDEO-WRITING {DIRECT, BIOS}
  Tells whether screen updates during emulation should be performed by going
  DIRECT to the video adapter, or should proceed through the system's video
  BIOS.  DIRECT is the default because it is faster.  Select BIOS if you you
  have trouble with DIRECT or if you have a BIOS-level screen interceptor such
  as a speech device.  Applies to text mode only.

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, for example a MODE or VMODE command.

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> [ <tcp-port-number> ] ]
  Connect to a 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.  The default <tcp-port-number> is 23 (TELNET);
  you can optionally specify any other port except 25.

SET PORT TCP/IP <digit>
  Resumes session <digit>, where <digit> is 1 through 6.

SET PORT TCP/IP * [ <tcp-port-number> ]
  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.

SET PORT BWTCP <ip-address>
  Make a TCP/IP connection via Beame & Whiteside TCP/IP, which must be loaded
  on your PC.  An IP address (not hostname) is required.

SET PORT NETBIOS
  Kermit awaits NETBIOS 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.

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 PATHWORKS 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)
  \Kcompose	Introduce a Compose-Key sequence
  \Kdos		Push to DOS (Ctrl-]P)
  \Kdump	Dump current screen to file (Ctrl-End on numeric keypad)
  \Khangup	Hangup communication port connection (Ctrl-]H)
  \Kignore	Ignore this key
  \Klfone	Scroll left one column
  \Klfpage	Scroll left one "page"
  \Klogoff	Stop session logging (Ctrl-]Q)
  \Klogon	Resume session logging (Ctrl-]R)
  \Knethold	Enter (non-TCP/IP) network shell (Alt-z)
  \Knextsession Toggle to next TCP/IP session, if any (Alt-n)
  \Kmodeline	Toggle mode line off/on++ (keypad minus)
  \Kprtscn	Print current screen (Print Screen)
  \Kreset	Reset terminal emulator (Alt-=)
  \Krtone	Scroll right one column
  \Krtpage	Scroll right one "page"
  \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)
  \Knextsession Toggle to next session
  {\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

STATISTICS
  Display efficiency and other statistics about file transfers.

SHOW PROTOCOL
  Display file transfer protocol-related parameter settings.

SHOW CONTROL
  List file-transfer control-character prefixing.

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
  Like SET BLOCK-CHECK 2, but formats the block check characters such that
  they never include blanks.

SET CONTROL-CHARACTER UNPREFIXED { <code>..., ALL }
  Says you think it is safe to include the control character represented by
  <code> without prefixing in packets that Kermit sends.  The <code> is the
  numeric ASCII code for a control character, 0-31, 127-159, or 255.

SET CONTROL-CHARACTER PREFIXED { <code>..., ALL }
  Says that the given control character(s) must be prefixed in outbound Kermit
  packets.  By default, all control characters, 0-31, 127-159, and 255, are
  prefixed.

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 conversion 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).
    OVERWRITE = 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, CP852, CP860, CP861, CP862, 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 as DOS reports it to Kermit (but
  watch out, DOS tends not to report code pages correctly).  Kermit translates
  between the current file character set and the transfer character set.
  SHIFT-JIS is Code Page 932 for Japanese Kanji.

SET TRANSFER CHARACTER-SET { TRANSPARENT, LATIN1, LATIN2, CYRILLIC,
			     HEBREW, 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 in West European languages containing accented Roman
  letters with other Kermit programs that support this feature.	 LATIN2 is ISO
  Latin Alphabet 2, for Eastern European languages and can be used only with
  file character-set CP852.  CYRILLIC is ISO 8859-5 Latin/Cyrillic, and can be
  used only with file character-set CP866.  HEBREW is ISO 8859-8 Latin/Hebrew.
  JAPANESE-EUC is for Japanese Kanji and can be used only with FILE
  CHARACTER-SET SHIFT-JIS.  Synonym: SET XFER CHARACTER-SET.

SET TRANSFER LOCKING-SHIFT { OFF, ON, FORCED } = ON
  If PARITY is other than NONE, Kermit automatically uses a 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 FORCED.  Locking shift protocol is negotiated
  automatically with the other Kermit.  Synonym: SET XFER LOCKING-SHIFT.

SET TRANSFER TRANSLATION { READABLE, INVERTIBLE } = READABLE
  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.  Synonym: SET XFER ...

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; 9024 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).
  Doesn't 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 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(dosversion)  Version of DOS under which Kermit is running
   \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(ntime)	   Seconds since midnight
   \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
   \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.

GETOK <prompt>
  Like ASK, but asks a Yes or No question.  Succeeds if answer is Yes,
  fails if answer is No, otherwise reprompts.

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 OUTPUT PACING <msec>
  How many milliseconds (thousands of a second) to pause between each
  character in the OUTPUT string.

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.

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.

MPAUSE <msecs>
  Like PAUSE, but number is milliseconds rather than seconds.

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

CLEAR [ { INPUT-BUFFER, DEVICE-BUFFER, BOTH } ]
  CLEAR INPUT clears the INPUT/REINPUT command buffer (characters that have
  already been read by Kermit's INPUT command).	 CLEAR DEVICE clears the
  communication device buffer (characters that have not yet been read by
  by Kermit), CLEAR BOTH (the default) clears both of these buffers.

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

STOP [ <number> ] [ <text> ]
  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, status 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 ]
  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 the ERRORLEVEL value is greater than or equal to the <number>,
  execute the <command>.  Equivalent to:
  IF NOT < \v(errorlevel) <number> <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>.

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 the book 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.	 Also
consult the networks section of V9KERMIT.BWR for additional detail.

To use Kermit's built-in TCP/IP support, you need a network adapter, an
Ethernet-class packet driver (not device driver) for the adapter, a SLIP-class
packet driver, or a Novell ODI driver for Ethernet, Token Ring, Arcnet, or
PCnet, and a connection to a TCP/IP network, or a "shim" that simulates one of
these.	For example, 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 your PC's
network interface, or a SLIP (Serial Line IP) 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).

To use Kermit's TCP/IP support under Windows 3.x, [remainder of discussion not
applicable to Victor, and omitted by RNF].

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 Crynwr packet
driver collection, are available also from Columbia University via mail order.

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 MSCUSTOM.INI file.  Don't make them up!	 Automatic downloading of your
TCP/IP network configuration via BOOTP is recommended.

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

SET TCP/IP ADDRESS { <IP-address>, BOOTP, 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.  This parameter can NOT be downloaded
  from a BOOTP server -- you can't reach the BOOTP server in the first place
  unless you already have the correct broadcast address.

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>, <IP-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.  Version 3.13 of MS-DOS Kermit can get
  the domain name from a BOOTP server that has been upgraded to RFC1395 level.

SET TCP/IP PACKET-DRIVER-INTERRUPT { <number>, ODI }
  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.

SET TCP/IP TELNET-TERM-TYPE <name>
  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 you want.

SET TCP/IP NEWLINE-MODE {OFF, ON}
  During terminal emulation on a TCP/IP connection, MS-DOS Kermit follows the
  TELNET specification and transmits carriage and line feed (CRLF) whenever
  you type carriage return (the Enter key).  If the remote TELNET server is
  confused by this (i.e. it does not follow the TELNET specification), use SET
  TCP/IP NEWLINE-MODE OFF to make Kermit omit the line feed.

SET TCP/IP DEBUG-OPTIONS { ON, OFF }
  Whether to display TELNET options negotiation on the screen.	Default is
  OFF, don't display them.  When ON, you can view the negotiations on the
  screen, and you can capture them in screen dump or session log files,
  or print them, just like any other CONNECT-mode screen text.	DEBUG-OPTIONS
  is useful for debugging misbehaving TELNET sessions.	Refer to the TELNET
  RFCs, or a TCP/IP book, for an explanation of what they mean.

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,
OUTPUT, PAUSE, 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, subnet mask, and other
information from the server if the BOOTP server's database has an entry for
your PC that contains these items.  The BOOTP server knows it's your PC making
the request because it has your network interface board's hardware address in
its database, and BOOTP requests contain the network board's hardware address.
To enter your PC in the BOOTP database, use the PKTADDR program (which comes
with the Crynwr packet-driver collection) to find out the hardware address,
for example:

  C:\PKTDRV\PKTADDR 0x60
  My Ethernet address is 00:00:1E:0C:AA:1F

Give this address to your network administrator, along with the adapter type
(Ethernet, Token Ring, etc), your PC's IP host name and address (if you know
it, or ask your network administrator to assign these to you -- DON'T MAKE
THEM UP!).  Then, the only commands you need to set up your TCP connection
are:

  SET TCP/IP SUBNETMASK 255.255.254.0 ; Only needed if different from default
  SET TCP/IP BROADCAST 0.0.0.0	      ; Only needed if different from default
  SET TCP/IP DOMAIN bar.baz.edu	      ; (3.12 and earlier, or pre-RFC1395)
  SET TCP/IP ADDRESS BOOTP	      ; Get my TCP/IP configuration from BOOTP
  SET PORT TCP/IP <name-or-number>    ; Establish a connection
  CONNECT

Notes:

 . The SET TCP/IP BROADCAST command is not needed unless you have a
   nonstandard network that uses all-zeroes for IP broadcasts, rather than
   all ones.

 . 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.

 . The SET TCP/IP DOMAIN command is not needed if you have MS-DOS Kermit 3.13,
   the BOOTP server is at RFC1395 level (January 1993), and its BOOTP database
   contains your PC's domain name.

Thus, in many cases, your TCP/IP setup can be as simple as this:

  SET TCP/IP ADDRESS BOOTP

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.

An RFC-1395 compliant BOOTP server for Berkeley UNIX (and SunOS 4.x, etc) is
available via anonymous FTP from kermit.cc.columbia.edu [128.59.39.2] 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.XYZ.COM, PAUSE 0, IF SUCCESS CONNECT

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

; TELNET macro, and macros for telnetting to particular hosts
; using appropriate terminal type.
;   \%1 = IP host name or address
;   \%2 = TCP port (optional, default is 23)
;   \%3 = terminal type (optional)
;
define telnet -
  set flow none,-
  set port tcp \%1 \%2,-
  if def \%3 set term type \%3,-
  pause 0, if fail end 1, connect

You can use this to easily make a connection to a particular host:

  TELNET FOO

and you can optionally specify a nonstandard (i.e. other than 23) TCP port:

  TELNET FOO 2000

and you can also (optionally) specify a terminal type to use:

  TELNET FOO 23 HEATH-19

For information about multiple sessions, see V9KERMIT.UPD.


MAKING SLIP CONNECTIONS

To make a SLIP (Serial Line IP) connection, follow these steps:

1. SET PORT 1
   (or whichever serial port you will be using for the SLIP connection).

2. SET SPEED 19200
   (or whatever speed you will be using)

3. SET FLOW RTS/CTS (or NONE)
   Don't use Xon/Xoff flow control on a SLIP connection!  SLIP and Xon/Xoff
   are incompatible with each other.

4. Establish a connection to the terminal server or other device that will be
   providing SLIP service.  Determine the IP address and other information
   (e.g. gateway address) that it has assigned to you.	Normally, these are
   displayed on your screen before the terminal server enters SLIP mode.

5. Escape back to the MS-Kermit prompt and EXIT from MS-DOS Kermit.  The
   connection is left open.

6. Start the SLIP8250 driver, telling it to use the same port (hex address and
   IRQ number must be supplied) and speed (decimal) used in (1) and (2) above,
   and to use hardware flow control (-h), for example:

      slip8250 0x60 -h slip 4 0x3f8 19200

7. Start MS-DOS Kermit again.  Do NOT give it a SET PORT command for the
   serial port where SLIP is running.  Instead, give the SET TCP ADDRESS,
   SET TCP GATEWAY, and other necessary SET TCP commands.  Then, to make
   a connection, use SET PORT TCP <address>, where <address> is the IP
   hostname or address of the IP host you want to connect to.

Note:  In version 3.13 and later, it is possible also to obtain BOOTP service
on a SLIP connection if your SLIP server is configured to provide it (for
example, Cisco terminal servers can do this).  Also, MS-DOS Kermit 3.13's SHOW
COMMUNICATIONS command will display the IP address of the BOOTP server.

For Novell SLIP_PPP ODI connections, see the V9KERMIT.BWR file.

(End of MS-DOS V9Kermit 3.13 Help File)
