home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.update.uu.se
/
ftp.update.uu.se.2014.03.zip
/
ftp.update.uu.se
/
pub
/
rainbow
/
msdos
/
latrobe
/
hijk
/
kermdoc.arc
/
KERMIT.DOC
Wrap
Text File
|
1985-07-16
|
105KB
|
2,531 lines
79
9. MS-DOS KERMIT
Program: Daphne Tzoar and Jeff Damens, Columbia University; contribu-
tions by many others.
Language: Microsoft Macro Assembler (MASM)
Documentation:
Frank da Cruz, Columbia University; Herm Fischer, Litton
Data Systems, Van Nuys CA.
Version: 2.26
Date: July 1984
Kermit-MS Capabilities At A Glance:
Local operation: Yes
Remote operation: Yes
Transfers text files: Yes
Transfers binary files: Yes
Wildcard send: Yes
^X/^Y interruption: Yes
Filename collision avoidance: Yes
Can time out: Yes
8th-bit prefixing: Yes
Repeat count prefixing: Yes
Alternate block checks: Yes
Terminal emulation: Yes
Communication settings: Yes
Transmit BREAK: Yes
IBM mainframe communication: Yes
Transaction logging: No
Session logging: Yes
Raw transmit: No
Act as server: Yes
Talk to server: Yes
Advanced server functions: No
Advanced commands for servers: Yes
Local file management: Yes
Handle file attributes: No
Command/init files: Yes
Command macros: Yes
Kermit-MS is a program that implements the KERMIT file transfer protocol
for the IBM PC and several other machines using the same processor
family (Intel 8088 or 8086) and operating system family (PC-DOS or
MS-DOS, henceforth referred to collectively as MS-DOS, versions 1.1,
2.0, and 2.1, and thereafter). This section will describe the things
you should know about the MS-DOS file system in order to make effective
use of Kermit, and then it will describe the Kermit-MS program.
Version 2 of MS-DOS Kermit runs on a variety of systems, including the
IBM PC and XT, the HP-150, the DEC Rainbow 100 and 100+ (MS-DOS 2.05 and
above), the Wang PC, and there is a "generic" MS-DOS version. Version 1
was adapted at various stages of development to run on other systems as
well, including the Heath/Zenith 100, Tandy 2000, Victor 9000
(Sirius-1), and Seequa Chameleon, and is still available for those sys-
tems until support for them and others is added to version 2.
80
The program operates under version 1.1 or 2.0 and above of DOS, although
some features require the functionality of 2.0. It runs in ap-
proximately 80K of memory -- over and above the memory used by DOS
-- which means that your system should have at least 128K of RAM to use
version 2 of MS-DOS Kermit; smaller systems may still use Version 1.
9.1. The MS-DOS File System
The features of the MS-DOS file system of greatest interest to KERMIT
users are the form of the file specifications, and the distinction be-
tween pre-MS-DOS 2.0 file names and newer file names which allow direc-
tory paths.
9.1.1. File Specifications
MS-DOS 2.x file specifications are of the form
DEVICE:\PATHNAME\NAME.TYPE
where the DEVICE is a single character identifier (for instance, A for
the first floppy disk, C for the first fixed disk, D for a RAM disk
emulator), PATHNAME is up to 63 characters of identifier(s) (up to 8
characters each) surrounded by reverse slashes, NAME is an identifier of
up to 8 characters, and TYPE is an identifier of up to 3 characters in
length. Device and pathname may be omitted. The first backslash in the
pathname may be omitted if the specified path is relative to the current
directory. In the path field, "." means current directory, ".." means
parent directory. Some DOS implementations (like Wang) may use slash
"/" rather than backslash in the path field.
Pathname is normally omitted, and cannot be specified for MS-DOS 1.x or
with those commands which allow MS-DOS 1.x use. Device and directory
pathnames, when omitted, default to either the user's current disk and
directory, or to the current directory search path as specified in the
DOS PATH environment variable, depending on the context in which the
file name appears.
When this manual says that a file is searched for "in the cur-
rent path," it means that the PATH is searched first, and if the
file is not found, then Kermit-MS looks on the current disk and
directory. If the PATH environment variable is empty, Kermit
looks only at the current disk and directory.
NAME.TYPE is normally sufficient to specify a file, and only this infor-
mation is sent along by Kermit-MS with an outgoing file.
The device, path, name, and type fields may contain uppercase letters,
digits, and the special characters "-" (dash), "_" (underscore), and "$"
(dollar sign). (For use only among MS-DOS processors, additional
filename special characters allowed are "#&!%'`(){}". DOS 1.x allows
others as well.). There are no imbedded or trailing spaces. Other
characters may be not be included; there is no mechanism for "quoting"
otherwise illegal characters in filenames. The fields of the file
specification are set off from one another by the punctuation indicated
81
above.
The name field is the primary identifier for the file. The type, also
called the extension or suffix, is an indicator which, by convention,
tells what kind of file we have. For instance FOO.BAS is the source of
a BASIC program named FOO; FOO.OBJ might be the relocatable object
module produced by compiling FOO.BAS; FOO.EXE could be an executable
program produced by linking FOO.OBJ, and so forth. .EXE and .COM are
the normal suffixes for executable programs.
The MS-DOS allows a group of files to be specified in a single file
specification by including the special "wildcard" characters, "*" and "?
". A "*" matches any string of characters from the current position to
the end of the field, including no characters at all; a "?" matches any
single character. Here are some examples:
*.BAS All files of type BAS (all BASIC source files) in the current
directory.
FOO.* Files of all types with name FOO.
F*.* All files whose names start with F.
F?X*.* All files whose names start with F and contain X in the third
position, followed by zero or more characters.
?.* All files whose names are exactly one character long.
Wildcard notation is used on many computer systems in similar ways, and
it is the mechanism most commonly used to instruct Kermit to send a
group of files.
Note: Kermit-MS uses the "?" character for help while commands
are being typed, so the single-character wildcard in Kermit-MS
commands is "=" rather than "?". For example
Kermit-MS>send =.*
would send files of all types whose names were exactly one
character long.
Kermit-MS users should bear in mind that other (non-MS-DOS) systems may
use different wildcard characters. For instance the DEC-20 uses "%" in-
stead of "?" as the single character wildcard; when using Kermit-MS to
request a wildcard file group from a KERMIT-20 server, the Kermit-MS "="
must be replaced by the DEC-20 "%".
9.1.2. File Formats
MS-DOS systems store files as bulk collections of 8 bit bytes, with no
particular differences between text, program code, and binary files.
ASCII text files consist of lines separated by carriage-return-linefeed
sequences (CRLFs), which conforms exactly to the way Kermit represents
text files during transmission. Since a non-MS-DOS receiving system
might need to make distinctions as to file type, you may need to use
82
various SET functions on the remote system to inform it that the incom-
ing file is of some particular (non-default) type, such as binary. In
transmitting files between Kermit-MS's, regardless of file contents, the
receiving MS-DOS system is equally capable of processing text, code, and
data, and in fact has no knowledge of how the bytes in the file are
used.
MS-DOS (unlike CP/M) is capable of pinpointing the end of file with
precision by keeping a byte count in the directory, so one would expect
no particular confusion in this regard. However, certain MS-DOS
programs continue to use the CP/M convention of terminating a text file
with a Control-Z character, and won't operate correctly unless this ter-
minating byte is present. Therefore, Kermit-MS users should be aware of
a special SET EOF option for both incoming and outbound files, described
below.
Non-MS-DOS systems may well be confused by nonstandard ASCII files from
Kermit-MS. Files produced by Easywriter or Word Star, for example, may
need to be converted to conventional ASCII format prior to transmission
by commonly available "exporter" programs. Spreadsheet or database
files usually need special formatting to be meaningful to non-MS-DOS
recipients (though they can be transmitted between MS-DOS systems with
Kermit-MS). Furthermore, files created by word processors (such as BLUE
or Easy Writer) that store formatting data at the end of the file, after
the control-Z and before physical end, will require special processing
via SET EOF to strip the formatting data, lest they confuse non-MS-DOS
recipients.
9.2. Program Operation
Kermit-MS can be run interactively, from a batch file, or as an
"external" DOS command. Commands consist of one or more fields,
separated by "whitespace" -- one or more spaces or tabs.
Upon initial startup, the program executes any commands found in the
file MSKERMIT.INI in the current path. This initialization file may
contain command macro definitions, communications settings for one or
more ports, or any other Kermit-MS commands. Here is a sample
MSKERMIT.INI file:
set warning on ; Enable filename collision avoidance.
;
; Define some macros
;
define unix set local-echo off, set flow xon, set timer off
def ibm set parity odd, set local on, set handsh xon, set timer on
def modem set port 2, set baud 1200
def noisy set block-check 3, set send packet-length 40
;
; Select a port
;
set port 1 ; Select COM1 for communications,
set baud 4800 ; setting the speed to 4800 baud,
connect ; and make a terminal connection.
83
Note that comments may be included by prefixing them with a semicolon.
The program can be run in several ways.
Interactive Operation:
To run Kermit-MS interactively, invoke the program from DOS command
level by typing its name. When you see the command's prompt,
Kermit-MS>
you may type Kermit commands repeatedly until you are ready to exit the
program, for example:
A>
A>kermit
IBM PC Kermit-MS V2.26
Type ? for help
Kermit-MS>send foo.*
informational messages about the files being sent
Kermit-MS>get bar.*
informational messages about the files being received
Kermit-MS>exit
A>
During interactive operation, you may edit the command you're currently
typing to erase the character most recently typed (BACKSPACE or DEL),
the most recent field (CTRL-W), or the entire command (CTRL-U). In ad-
dition, you may use the help ("?") and recognition (ESC) features freely
while typing Kermit-MS commands. A question mark typed at almost any
point in a command produces a brief description of what is expected or
possible at that point; for this reason, Kermit-MS uses "=" for the
single-character match wildcard in local filenames. ESC typed at any
point, even in a local filename, will cause the current field to be
filled out if what you have typed so far is sufficient to identify it,
and will leave you in position to type the next field (or to type a "?"
to find out what the next field is); otherwise, the program will beep at
you and wait for you to type further characters.
Some Kermit-MS commands, like GET, SHOW KEY, SET KEY, may prompt for ad-
ditional information on subsequent lines. If you have reached one of
these prompts and then wish to cancel the command, you may type
Control-C.
Summary of Kermit-MS Command Characters:
BACKSPACE Delete the character most recently typed. May be typed
repeatedly to delete backwards. You may also use
DELETE, RUBOUT, or equivalent keys.
84
CTRL-W Delete the most recent "word", or field, on the command
line. May be typed repeatedly.
CTRL-U Delete the entire command line.
CTRL-C Cancel the current command and return to the
"Kermit-MS>" prompt.
? Type a brief message describing what you are expected to
type in the current field.
ESC If enough characters have been supplied in the current
field (keyword or file name) to uniquely identify it,
supply the remainder of the field and position to the
next field of the command. Otherwise, sound a beep.
= Wildcard character for matching single characters in
filenames, equivalent to MS-DOS "?".
Command Line Invocation:
Kermit-MS may also be invoked with command line arguments from DOS com-
mand level, for instance:
A>kermit send foo.bar
or
A>kermit set port 1, set baud 9600, connect
In this case, help and recognition are not available (because the
program won't start running until after you type the entire command
line), and Kermit-MS will exit after completing the specified command or
commands. Therefore, when invoked with command line arguments,
Kermit-MS will behave as if it were an external DOS command, like MODE.
Note that several commands may be given on the command line, separated
by commas.
Batch Operation:
Like other MS-DOS programs, Kermit-MS may be operated under batch with
either command line arguments and/or TAKE files; Kermit will also run
interactively if invoked from batch, but it will read commands from the
keyboard and not the batch file.
9.3. Kermit-MS Commands
MS-DOS Kermit implements a large subset of the commands of "ideal" Ker-
mit. Here's a brief summary:
BYE to remote server.
CLOSE log file and stop logging remote session.
CONNECT as terminal to remote system.
85
DEFINE macros of Kermit-MS commands.
DELETE local files.
DIRECTORY listing of local files.
DO a macro expansion.
EXIT from Kermit-MS.
FINISH Shut down remote server.
GET remote files from server.
HELP about Kermit-MS.
LOCAL prefix for local file management commands.
LOG remote terminal session.
LOGOUT remote server.
PUSH to MS-DOS command level.
QUIT from Kermit-MS
RECEIVE files from remote Kermit.
REMOTE prefix for remote file management commands.
RUN an MS-DOS program.
SEND files to remote Kermit.
SERVER mode of remote operation.
SET various parameters.
SHOW various parameters.
SPACE inquiry.
STATUS inquiry.
TAKE commands from file.
The remainder of this section concentrates on the commands that have
special form or meaning for MS-DOS Kermit. Not all of the following
commands are necessarily available on all MS-DOS systems, and some of
the commands may work somewhat differently between DOS versions.
9.3.1. Commands for File Transfer
The file transfer commands are SEND, GET, and RECEIVE.
THE SEND COMMAND
Syntax: SEND filespec1 [filespec2]
The SEND command causes a file or file group to be sent from the local
MS-DOS system to the Kermit on the remote system. The remote Kermit may
be running in either server or interactive mode; in the latter case, you
should already have given it a RECEIVE command and escaped back to your
PC.
filespec1 may contain a device designator, like "A:" and the wildcard
characters "*" and/or "=". The current release of Kermit-MS, however,
does not allow pathnames in the SEND command file specification.
If filespec1 contains wildcard characters then all matching files will
be sent, in the same order that MS-DOS would show them in a directory
listing. If filespec1 specifies a single file, you may direct Kermit-MS
to send that file with a different name, given in filespec2. For in-
stance, in the command
Kermit-MS>send foo.bar framus.widget
86
filespec2 begins with the first nonblank character after filespec1 and
ends with the carriage return; thus it may contain blanks or other un-
usual characters that may be appropriate on the target machine. Lower
case letters in filespec2 are raised to upper case for transmission.
If a file can't be opened for read access, standard MS-DOS recovery
procedures will take place. For example:
Not ready error reading drive A
Abort, Retry, Ignore?
If you select "Abort," you will be returned to DOS.
Files will be sent with their MS-DOS filename and filetype (for instance
FOO.TXT, no device or pathname). Each file is sent as is, with no con-
versions done on the data, except for possibly adding or deleting a ter-
minating Control-Z character (see the SET EOF command).
Once you give Kermit-MS the SEND command, the name of each file will be
displayed on your screen as the transfer begins; packet, retry, and
other counts will be displayed along with informational messages during
the transfer. If the file is successfully transferred, you will see
"Complete", otherwise there will be an error message. When the
specified operation is done, the program will sound a beep.
Several single-character commands may be given while a file transfer is
in progress:
^X (Control-X) Stop sending the current file and go on to the next
one, if any.
^Z Stop sending this file, and don't send any further files.
^C Return to Kermit-MS command level immediately without sending any
kind of notification to the remote system.
^E Like ^C, but send an Error packet to the remote Kermit in an at-
tempt to bring it back to server or interactive command level.
CR Simulate a timeout: resend the current packet, or NAK the expected
one.
Control-X and Control-Z send the proper protocol messages to the remote
Kermit to bring it gracefully to the desired state. Control-C leaves
the remote Kermit in whatever state it happens to be in. Control-E
"aborts" any protocol that is taking place.
THE RECEIVE COMMAND
Syntax: RECEIVE [filespec]
The RECEIVE command tells Kermit-MS to receive a file or file group from
the other system. Kermit-MS simply waits for the file to arrive; this
command is not to be used when talking to a Kermit server (use GET for
that). You should already have issued a SEND command to the remote Ker-
87
mit and escaped back to Kermit-MS before issuing the RECEIVE command.
If the optional filespec is provided, store the incoming file under that
name. The filespec may include a device designator, or may consist of
only a device designator. The incoming file is stored on the default or
specified device (current directory in DOS 2.0 and thereafter). If no
name was specified, the name from the incoming file header packet is
used; if that name is not a legal MS-DOS file name, Kermit-MS will
delete excessive characters from it, and will change illegal characters
to the letter X.
If the optional filespec was provided, but more than one file arrives,
the first file will be stored under the given filespec, and the
remainder will be stored under their own names, but on the specified
device.
If an incoming file does not arrive in its entirety, Kermit-MS will nor-
mally discard it; it will not appear in your directory. You may change
this behavior by using the command SET INCOMPLETE KEEP, which will cause
as much of the file as arrived to be saved in your directory.
The same single-character commands are available as during SEND:
^X Request that the remote Kermit stop sending the current file, and
proceed to the next one immediately. Since this is an optional
feature of the Kermit protocol, the remote Kermit might not honor
the request.
^Z Request that the remote Kermit terminate the entire transfer; this
is also an optional feature that may or may not be supported by
the remote Kermit.
^C, ^E, and CR operate in the same way as they do during SEND.
If the incoming file has the same name as a file that already exists,
and WARNING is set ON, Kermit-MS will change the incoming name (and in-
form you how it renamed it) so as not to obliterate the pre-existing
file. If WARNING is OFF, the original file will be overwritten; if you
type ^X or ^Z to interrupt the transfer, you'll either get a partial new
file, or else both the old and the new file of that name will be lost,
depending on SET INCOMPLETE. In any case, when WARNING is off, files
with the same name as incoming files will not survive.
Caution: If an incoming file's name (the part before the dot) cor-
responds to an MS-DOS device name, such as NUL, COM1, CON, AUX, or PRN,
output will go to that device, rather than to a file with that name.
This is a feature of MS-DOS.
88
THE GET COMMAND
Syntax: GET remote-filespec
The GET command requests a remote KERMIT server to send the file or file
group specified by remote-filespec. This command can be used only when
Kermit-MS has a KERMIT server on the other end of the connection. This
means that you must have CONNECTed to the other system, logged in, run
KERMIT there, issued the SERVER command, and escaped back (e.g. ^]C) to
the local Kermit-MS. If the remote Kermit does not have a SERVER com-
mand, then you should use SEND and RECEIVE as described above.
You may use the GET command to specify a different name for storing the
incoming. Just type GET alone on a line, and you will be prompted
separately for the remote filespec and the local filespec:
Kermit-MS>get
Remote Source File: com1.txt
Local Destination File: xcom1.txt
If more than one file arrives, only the first will be renamed.
The remote filespec is any string that can be a legal file specification
for the remote system; it is not parsed or validated locally. It can
contain whatever wildcard or file-group notation is valid on the remote
system. As files arrive, their names will be displayed on your screen,
along with packet traffic statistics and status messages. You may type
^X to request that the current incoming file be cancelled, ^Z to request
that the entire incoming batch be cancelled, and ^C or ^E to return im-
mediately to the Kermit-MS> prompt, exactly as described for the RECEIVE
command.
9.3.2. Commands for Connecting and Disconnecting
The CONNECT command connects your PC as a terminal to the remote system,
so that you can start up Kermit there. The BYE, FINISH, and LOGOUT com-
mands allow you to shut down a remote Kermit server.
BYE When communicating with a remote KERMIT server, use the
BYE command to shut down the server, log out its job,
and exit from Kermit-MS to DOS.
FINISH Like BYE, FINISH shuts down the remote server. However,
FINISH does not log out the server's job. You are left
at Kermit-MS prompt level so that you can connect back
to the job on the remote system.
LOGOUT The LOGOUT command is identical to the BYE command, ex-
cept you will remain at Kermit-MS prompt level, rather
than exit to DOS, so that you can establish another con-
nection.
89
The CONNECT Command
Establish an interactive terminal connection to the system connected to
the currently selected communications port (e.g. COM1 or COM2) using
full duplex (remote) echoing and no parity unless otherwise specified in
previous SET commands. Get back to Kermit-MS by typing the escape
character followed by the letter C. The escape character is Control-] by
default.
You can use the SET ESCAPE command to define a different escape charac-
ter, and on some systems (including the PC and XT) you can SET BAUD to
change the baud rate, and SET PORT to switch between ports.
Terminal emulation is described in greater detail in section 9.4 below.
9.3.3. Commands for File Management
Kermit-MS provides commands or managing both local and remote files.
THE REMOTE COMMANDS
The REMOTE keyword is a prefix for a number of commands. It indicates
that the command is to be performed by the remote Kermit, which must be
running as a server. Note that not all Kermit servers are capable of
executing all these commands, and some Kermit servers may be able to
perform functions for which Kermit-MS does not yet have the correspond-
ing commands. In case you send a command the server cannot execute, it
will send back a message stating that the command is unknown to it. If
the remote server can execute the command, it will send the results to
your screen. Here are the REMOTE commands which Kermit-MS may issue:
CWD [directory] Change Working Directory on the remote host. Change the
default source and destination area for file transfer
and management. You will be prompted for a password,
which will be erased as you type it. If you do not
supply a password (i.e. you type only a carriage
return), the server will attempt to access the specified
directory without a password. If you do not supply a
directory name, your default or login directory on the
remote system will be assumed.
DELETE filespec Delete the specified file or files on the remote system.
In response, the remote host should display a list of
the files that were or were not successfully deleted.
DIRECTORY [filespec] The remote system will provide a directory listing
of the specified files. If no files are specified, then
all files in the default area (the current working
directory) will be listed.
HELP The remote host tells what server functions it is
capable of.
HOST [command] Send the command to the remote system's command proces-
90
sor for execution.
SPACE [directory]
Provide a brief summary of disk usage in the specified
area on the remote host. If none specified, the default
or current area will be summarized.
TYPE filespec Display the contents of the specified remote file or
files on the screen.
THE LOCAL COMMAND
The LOCAL keyword is a prefix for a number of commands. It indicates
that the specified command is to be executed on the local MS-DOS system.
The LOCAL prefix may be omitted. The local commands available are:
DELETE filespec Deletes the specified file or files. As in DOS, the
names of the deleted files are not listed, only the mes-
sage "file(s) deleted" or "file(s) not found", and if
you give the command "delete *.*", Kermit-MS will prompt
"Are you sure?", like DOS.
DIRECTORY [filespec] Lists the names, sizes, and creation dates of
files that match the given file specification. If no
filespec is given, the command is equivalent to DIR *.*.
SPACE Performs the MS-DOS CHKDSK function by running the
CHKDSK program from the current path, or default disk
under DOS 1.1.
RUN filespec Runs the specified file, which must be in .EXE or .COM
format, from the specified path or according to the
value of the PATH variable if no path was included in
the filespec. This command requires MS-DOS 2.0 or
higher.
PUSH Invokes an MS-DOS command processor "under" Kermit-MS,
either COMMAND.COM or whatever shell you have specified
with COMSPEC. When you return to Kermit-MS (for in-
stance, by typing the MS-DOS EXIT command), you will
find Kermit-MS as you left it, with all settings intact.
This command only works in MS-DOS 2.0 or higher.
The local RUN command has various uses, one of which is to supplement
the features of Kermit-MS. For instance, suppose there is an involved
procedure that you regularly perform on a certain remote system -- this
might include giving commands to a modem to dial the system, looking for
a particular herald or prompt, performing a login command sequence, run-
ning a selected application, and then running Kermit to send the results
back to your PC. You could write a program in the compiled language of
your choice, say C or BASIC, to send the desired commands to your modem
and the remote system and to look for the appropriate responses. You
could put all this in a Kermit-MS TAKE command file (see below), like
91
run update.com
receive
The program, called UPDATE in this case, does everything up to and in-
cluding starting Kermit sending from the remote system. When the
program terminates, the next Kermit-MS command, "receive," is executed
from the command file. When the end of the command file is reached, in-
teractive operation is resumed.
THE TAKE COMMAND
Syntax: TAKE filespec
Execute Kermit commands from the specified file, which may include an
explicit path; if no path is specified, the value of the PATH variable
is used; if PATH has no value, then the current disk and directory are
searched. The command file may include TAKE commands, but it cannot in-
clude characters to be sent to a remote host during terminal emulation
(i.e. after a CONNECT command). A command file may include comments
prefixed by semicolons.
THE LOG COMMAND
Syntax: LOG filespec
Specifies that all characters that appear on your screen during CONNECT
will be recorded in the specified file. This allows you to "capture"
files from a remote system that doesn't have Kermit, as well as to
record remote command typescripts. The log is closed when you EXIT from
Kermit-MS or when you issue an explicit CLOSE command.
9.3.4. The SERVER Command
Kermit-MS is capable of acting as a Kermit server, providing file trans-
fer for users coming in through one of the communication ports. The
current version of Kermit-MS can send files (the user on the other end
types the GET command), receive files (the user types SEND), and ter-
minate, giving control back to the console (user types BYE).
To put Kermit-MS into server mode, first issue any desired SET commands
to select and configure the desired port, and then type the SERVER com-
mand. Kermit-MS will await all further instructions from the user Ker-
mit on the other end of the connection, which may be hardwired or con-
nected through an autoanswer modem. For example:
Kermit-MS>set port 1
Kermit-MS>set baud 1200
Kermit-MS>set timer on
Kermit-MS>set warning on
Kermit-MS>server
92
9.3.5. The SET Command
Syntax: SET parameter [value]
Establish or modify various parameters for file transfer or terminal
connection. You can examine their values with the SHOW command. Note
that there is no "set ibm" command; IBM mainframe communication
parameters may be selected with a command macro (see below). The fol-
lowing SET commands are available in Kermit-MS:
BAUD Communications port line speed
BELL Whether to beep at the end of a transaction
BLOCK-CHECK-TYPE Level of error checking for file transfer
DEBUG Display packet contents during file transfer
DEFAULT-DISK Default disk drive for file i/o
DESTINATION Default destination device for incoming files
END-OF-LINE Packet terminator
EOF Method for determining or marking end of file
ESCAPE Escape character for CONNECT
FLOW-CONTROL Enable or disable XON/XOFF
HANDSHAKE Half-duplex line turnaround option
HEATH19 Heath/Zenith-19 terminal emulation
INCOMPLETE What to do with an incompletely received file
KEY Specify key redefinitions, or "keystroke macros"
LOCAL-ECHO Specify which host does the echoing during CONNECT
PARITY Character parity to use
PORT Select a communications port
PROMPT Change the "Kermit-MS>" prompt to something else
RECEIVE Request remote Kermit to use specified parameters
REMOTE For running Kermit-MS interactively from back port
SEND Use the specified parameters during file transfer
TAKE-ECHO Control echoing of commands from TAKE files
TIMER Enable/disable timeouts during file transfer
WARNING Specify how to handle filename collisions
The SET commands that are peculiar to MS-DOS Kermit are now described in
greater detail. The others behave as in "ideal" Kermit.
SET BAUD
Syntax: SET BAUD rate
Set the speed of the currently selected terminal communications port
(COM1 by default) to 300, 1200, 1800, 2400, 4800, 9600 or other common
baud rate. Some implementations do not support this command. In any
case, Kermit-MS leaves the current communication port settings alone un-
less you issue explicit SET commands to change them.
SET BELL
Syntax: SET BELL ON or OFF
Specifies whether bell (beeper) should sound upon completion of a file
transfer operation.
93
SET DEBUG
Syntax: SET DEBUG ON or OFF
ON Display the Kermit packet traffic on your screen during file
transfer. If the debugger is loaded, transfer control to it
when CTRL-C is typed. In Heath-19 terminal emulation on the IBM
PC, display unusual control characters in uparrow notation.
OFF Don't display debugging information (this is the default). If
debugging was in effect, turn it off.
SET DEFAULT-DISK
Syntax: SET DEFAULT-DISK x:
Specify the default disk drive to use for file transfer, directory list-
ings, and so forth. Equivalent to typing the DOS command for changing
disks.
SET DESTINATION
Syntax: SET DESTINATION device
Specify the device for incoming files, DISK or PRINTER. SET DESTINATION
PRINTER will cause incoming files to be spooled directly to the printer.
The normal destination is DISK.
END-OF-LINE
Syntax: SET END-OF-LINE number
If the remote system needs packets to be terminated by anything other
than carriage return, specify the decimal value of the desired ASCII
character.
SET EOF
Syntax: SET EOF option
Controls how the end of file is handled. The options are:
CTRL-Z Append a Control-Z character to the end of an incoming
file, unless it already ends with a Control-Z. Certain
MS-DOS text editors and other applications require files
to be in this format. For outbound files, treat the
first Control-Z as the end of file, and do not send it
nor any characters following it.
NOCTRL-Z (Default) Store incoming files exactly as is, and send
MS DOS files exactly as is (according to their byte
count).
94
SET ESCAPE
Syntax: SET ESCAPE character
Specify the control character you want to use to "escape" from remote
connections back to Kermit-MS. The default is normally ^] (Control-
Rightbracket). The character is entered literally, and should normally
be chosen from the ASCII control range.
SET FLOW-CONTROL
Syntax: SET FLOW-CONTROL option
Specify the full duplex flow control to be done on the currently
selected port. The current options are XON/XOFF and NONE. The
specified type of flow control will be done during both terminal emula-
tion and file transfer. If set to XON/XOFF, HANDSHAKE is automatically
set to OFF.
SET HANDSHAKE
Syntax: SET HANDSHAKE option
Specify any half-duplex handshaking to be done on the currently selected
port. The options are BELL, CR, LF, NONE, XOFF, or XON. The specified
handshaking will be done during file transfer only. If HANDSHAKE is set
to anything other than NONE, FLOW-CONTROL is automatically set to OFF.
SET HEATH19
Syntax: SET HEATH19 ON or OFF
Specify whether Kermit-MS should use its built-in software facility for
emulating a Heath/Zenith-19 (H19) terminal.
ON During CONNECT, incoming characters are to be examined for H19
terminal screen control commands (escape sequences), and if en-
countered, the commands are to be emulated on the PC screen.
The H19 codes are a superset of the popular DEC VT52 codes, so
if your system does not support the Heath-19, you may tell it
that your terminal type is VT52 (or one of the many VT52
compatibles). The Heath-19 codes are listed in section 9.10,
below.
OFF All incoming characters will be sent to the screen "bare",
through DOS. If you have loaded a device driver into DOS for
the CON: device, such as ANSI.SYS, then that driver will be able
to interpret the codes itself. Most non-IBM systems have their
own screen control code interpreter built into DOS or firmware,
or available as a loadable device driver.
See section 9.4 for details about terminal emulation.
95
SET KEY
Syntax: SET KEY key-specifier
Specifies that when the designated key is struck during terminal emula-
tion, the associated character string is sent. The key-specifier is one
of the keywords F1, F2, ..., or SCAN followed by a scan code. Systems
that have a BACKSPACE key also include BACKSPACE as a keyword.
If SCAN is used, it is followed by a decimal number to indicate the scan
code of the key, which you would ascertain from your system reference
manual, or else by using the Kermit-MS SHOW KEY command. SET KEY
prompts you on a new line for the definition string. Certain charac-
ters, like ESC and CR, may not be entered literally into the string, but
can be included by inserting escape codes of the form \ooo, a backslash
followed by a 2- or 3-digit octal number corresponding to the ASCII
value of the desired character. If some other key redefinition package,
like ProKey, has been loaded, then its redefinitions will take
precedence over Kermit's.
The SET KEY command is illustrated in the terminal emulation section,
9.4, below.
SET LOCAL-ECHO
Syntax: SET LOCAL-ECHO option
Specify how characters are echoed during terminal emulation on the cur-
rently selected port. ON specifies that characters are to be echoed by
Kermit-MS (because neither the remote computer nor the communications
circuitry has been requested to echo), and is appropriate for half-
duplex connections. LOCAL-ECHO is OFF by default, for full-duplex,
remote echo operation.
When you SET LOCAL-ECHO ON, the current HANDSHAKE (if any) is automati-
cally enabled and full-duplex FLOW-CONTROL is automatically turned off.
When you SET LOCAL-ECHO OFF, HANDSHAKE is also disabled, and the current
mode of FLOW-CONTROL (if any) is enabled. If this behavior is un-
desired, you may override it by typing explicit SET HANDSHAKE or SET
FLOW commands after entering the SET LOCAL-ECHO command.
SET PARITY
Syntax: SET PARITY keyword
Specify the character parity to be used on the currently selected port.
The choices for SET PARITY are NONE (the default), ODD, EVEN, MARK, and
SPACE. NONE means no parity processing is done, and the 8th bit of each
character can be used for data when transmitting binary files.
You will need to SET PARITY to ODD, EVEN, MARK, or possibly SPACE when
communicating with a system, or over a network, or through modems, con-
centrators, multiplexers, or front ends that require or impose character
parity on the communication line. For instance, GTE Telenet requires
96
MARK parity. If you neglect to SET PARITY when the communications equi-
pment requires it, the symptom may be that terminal emulation works par-
tially, and file transfer does not work at all.
If you have set parity to ODD, EVEN, MARK, or SPACE, then Kermit-MS will
request that binary files will be transferred using 8th-bit-prefixing.
If the other side knows how to do 8th-bit-prefixing (this is an optional
feature of the KERMIT protocol, and not all implementations of KERMIT
have it), then binary files can be transmitted successfully. If NONE is
specified, 8th-bit-prefixing will not be requested. Note that there is
no advantage to using parity; it only slows Kermit file transfer down.
The SET PARITY command is provided only to allow Kermit to adapt to
hardware that insists upon using parity.
SET PORT
Syntax: SET PORT number
On machines with more than one communications port, select the port to
use for file transfer and CONNECT. This command lets you use a dif-
ferent asynchronous adapter, or switch between two or more simultaneous
remote sessions. Subsequent SET BAUD, PARITY, HANDSHAKE, FLOW, and
LOCAL-ECHO commands will apply to this port only. SET PORT 1 selects
COM1, SET PORT 2 selects COM2.
SET REMOTE
Syntax: SET REMOTE ON or OFF
If you wish to run Kermit-MS interactively through the back port, for
instance after the operator has done CTTY COM1, you must give the com-
mand SET REMOTE ON; this suppresses the file transfer display screen, so
that the display won't interfere with the file transfer itself.
SET RECEIVE
Syntax: SET RECEIVE parameter value
At the beginning of a protocol operation, request the remote Kermit to
use the given value specified parameter, or inform Kermit-MS that the
remote Kermit will be using it.
PACKET-LENGTH Ask the remote Kermit to use the specified maximum
length for packets that it sends to Kermit-MS. The nor-
mal (and maximum) length is 94. Use this command to
shorten packets if the communication line is noisy; this
will decrease the probability that a particular packet
will be corrupted, and will reduce the retransmission
overhead when corruption occurs, but it will increase
the protocol overhead.
PADCHAR Ask the remote Kermit to use the given character for in-
terpacket padding. Kermit-MS should never require any
97
padding.
PADDING Ask the remote Kermit to insert the given number of pad-
ding characters before each packet it sends. This
should never be necessary.
START-OF-PACKET The remote Kermit will be marking the beginning of pack-
ets with something other than Control-A. This will be
necessary only if the hosts or communication equipment
involved cannot pass a Control-A through as data.
TIMEOUT Ask the remote Kermit to time out after the given number
of seconds if a packet expected from Kermit-MS has not
arrived. Use this command to change the normal timeout
interval.
SET SEND
Syntax: SET SEND parameter value
PACKET-LENGTH Use the specified maximum length for outbound packets.
Normally, Kermit-MS uses whatever length the other Ker-
mit requests.
PADCHAR Use the specified character for interpacket padding.
Some hosts may require some padding characters (normally
NUL or DEL) before a packet.
PADDING How many padding characters to use between packets, nor-
mally zero.
QUOTE Use the indicated printable character for prefixing
(quoting) control characters and other prefix charac-
ters. The only reason to change this would be for send-
ing a very long file that contains very many "#" charac-
ters (the normal control prefix) as data.
START-OF-PACKET Mark the beginning of outbound packets with some control
character other than Control-A. This will be necessary
only if the remote host or the communication channel in-
volved cannot accept a Control-A as data. The remote
host must have been given the corresponding SET RECEIVE
START-OF-PACKET command.
TIMEOUT Change Kermit-MS's normal timeout interval; this command
is effective only if TIMER is set to be ON; it is nor-
mally OFF so that the remote KERMIT can control
timeouts.
98
SET TAKE-ECHO
Syntax: SET TAKE-ECHO ON or OFF
Specifies whether screen display should occur during implicit or ex-
plicit TAKE operations on MSKERMIT.INI or other Kermit-MS command files,
and during evaluation of macro definitions. Handy for finding errors in
command files.
SET TIMER
Syntax: SET TIMER ON or OFF
Enable or disable the timer that is used during file transfer to break
the deadlock that occurs when an expected packet does not arrive. By
default, the timer is OFF, because Kermit-MS is usually used in conjunc-
tion with a mainframe that is doing its own timeouts. During a file
transfer, it is sufficient for one side to do the timing out and the
mainframe is usually better equipped to adjust timeout intervals based
on system load or other conditions. The timer should be set ON if you
are communicating with a system that cannot do timeouts, such as IBM
VM/CMS Kermit.
SET WARNING
Syntax: SET WARNING option
Specify what to do when an incoming file has the same name as an exist-
ing file in the default directory of the default device. If ON, Kermit
will warn you when an incoming file has the same name as an existing
file, and automatically rename the incoming file (as indicated in the
warning message) so as not to destroy (overwrite) the pre-existing one.
If OFF, the pre-existing file is destroyed, even if the incoming file
does not arrive completely.
9.3.6. The SHOW Command
Syntax: SHOW option
Currently, most parameters that may be altered with SET commands are
displayed by the STATUS command. The SHOW command is used for display-
ing macro definitions and key redefinitions.
The SHOW MACROS command displays the definitions of all currently
defined macros.
The SHOW KEY command allows you to determine the scan code produced by
pressing a given key, so that you can construct a SET KEY command to
redefine the key. If the key already has a redefinition in effect, that
too will be displayed. In this example, a DEC Rainbow user determines
the scan code for the accent grave key, and then redefines that key to
send ESC:
99
Kermit-MS>show key
Press a key: `
Scan Code: 96
Definition:
Kermit-MS>set key scan 96
Definition string: \33
Kermit-MS>show key
Press a key: `
Scan Code: 96
Definition: \33
Kermit-MS>
The SHOW KEY command only works on certain systems.
9.3.7. Command Macros
Kermit-MS provides a facility for combining commands into "macros."
Command macro definitions may be included in your MSKERMIT.INI file,
TAKEn explicitly from a specified file, or typed interactively, and may
be invoked with the DO command.
THE DEFINE COMMAND
Kermit-MS command macros are constructed with the DEFINE command. The
syntax is
DEFINE macro-name [command [, command [, ...]]]
Any Kermit-MS commands may be included. Example:
define telenet set parity mark, set baud 1200, connect
THE DO COMMAND
A Kermit-MS command macro is invoked using the DO command. For in-
stance, Kermit-MS comes with a predefined macro to allow convenient
setup for IBM communications; to invoke it, you would type
do ibm
The IBM macro is defined as "parity mark, handshake xon, local-echo on,
timer on". You can delete or replace this definition by adding a new
(perhaps null) definition, such as
define ibm parity even, handshake cr, local-echo on, timer on
or
define ibm
100
9.4. Terminal Emulation
When you issue the CONNECT command, your PC acts as a terminal connected
to a remote computer through the currently selected port. The charac-
ters you type are sent out the port, and characters that arrive at the
port are displayed on your screen. If you have not previously issued a
SET PORT command, COM1 is used. If you have SET LOCAL-ECHO ON for the
selected port, then Kermit-MS will display characters on the screen as
you type them. If LOCAL-ECHO is OFF, then XON/XOFF flow control will be
done unless you have SET FLOW-CONTROL OFF. If you have SET PARITY to
anything other than NONE, Kermit-MS will add the appropriate parity to
each outbound character, and strip any parity from incoming ones. While
CONNECTed, you can also communicate with an autodialer or "smart modem"
to control the communications line, hang it up, and the like; for in-
stance, typing +++ to a Hayes-like modem will allow you to follow that
by dialing or hangup commands.
If Heath-19 emulation is being done, incoming characters will be
monitored for H19/VT52 escape sequences. These will be interpreted ac-
cording to the table in section 9.10. In addition, keys on the numeric
keypad will send H19/VT52 sequences unless you disable this feature in
some way, for instance by pressing Num Lock on the IBM PC keyboard, or
with key redefinitions.
Caution: On some systems, such as the IBM PC and XT, Kermit-MS
accesses the screen memory memory directly to perform certain
H19 emulation functions such as character insert/delete and
screen scroll. Without direct screen memory access, these func-
tions would be painfully slow. Although Kermit-MS has been
tested successfully on a variety of monochrome and color adap-
ters and monitors, there may be combinations for which this
method could cause video problems, such as snow. Should this
occur, you can alleviate the problem by setting HEATH19 emula-
tion OFF. In that case, however, you remove not only the
problems, but also the desirable features of emulation. But
Kermit-MS does permit you to load an external console device
driver, such as IBM's ANSI.SYS, to provide any desired screen
control.
Here are the terminal emulation options for the systems presently sup-
ported by Kermit-MS:
System EscChar Cabilities Terminal Service
IBM PC, XT ^] R M P K Heath19 emulation
DEC Rainbow ^] R P K VT102 firmware
HP-150 ^] R HP-2623 firmware
Wang PC ^A Wang firmware
Generic DOS ^] Depends on system
Under Capabilities, R means rollback, M means mode line, P means printer
control, and K means key redefinition.
IBM PC/XT Kermit can disable Heath-19 emulation and use an external con-
sole device driver like ANSI.SYS instead.
When you first issue the CONNECT command, a message (on some systems, an
101
inverse video "mode line") will display the most important facts about
the connection you've just established, so that you can quickly diagnose
any problems. The items displayed in the mode line include the escape
character, port number, the baud rate, the parity, the echo, and how to
get help, for instance:
+---------------------------------------------------------------------+
|EscChar:^],Port:1,Baud:9600,Parity:None,Echo:Remote,Type ^]? for Help|
+---------------------------------------------------------------------+
The escape character is used to regain the attention of Kermit-MS. When
you type the escape character, Kermit-MS waits for you to follow it with
a single character command. For instance, the single-character-command
"?" produces a list of available single character commands, such as
this:
? Help -- prints the available single-character commands.
C Close the connection and return to Kermit-MS prompt level.
S Show the status of the connection.
B Send a BREAK signal to the port.
0 (the digit zero) Send a NUL (ASCII 0) to the port.
Q Temporarily quit logging the remote session.
R Resume logging the remote session.
M Toggle the mode line, i.e. turn it off if it is on & vice versa.
^] (or whatever you have set the escape character to be)
Typing the escape character twice sends one copy of it to the con-
nected host.
Typing any other character (except the space bar, which is the "null
command") after the escape character will cause Kermit-MS to beep, but
will do no harm. The escape character can be changed to something other
than Control-Rightbracket by using the SET ESCAPE command.
Kermit-MS includes several advanced features for use during terminal
emulation, including screen scroll, printer control, and key redefini-
tions.
Screen Scroll
Kermit-MS provides several pages of screen memory, which may be scrolled
up and down using keys as follows:
Function IBM PC/XT Rainbow HP-150
Screen Down PgDn PrevScreen Prev
Line Down Ctrl-PgDn Ctrl-PrevScreen Shift-UpArrow
Screen Up PgUp NextScreen Next
Line Up Ctrl-PgUp Ctrl-NextScreen Shift-DownArrow
Top of Memory Home
Bottom of Memory End
There is presently no way to assign these functions to other keys.
102
Printer Control
A locally attached printer may be controlled in the normal manner, on
most systems. Pushing the "Print Screen" key (shifted on some systems)
will cause the current contents of the screen to be printed or spooled;
holding down CTRL while depressing Print Screen will start or stop the
spooling of incoming characters to the printer. ^P or ^N are sent to
the host during terminal emulation, and do not toggle printing, as they
do when you're talking directly to DOS.
CTRL-Print-Screen can be simulated with the Kermit-MS LOG PRN and CLOSE
commands.
Key Redefinitions
Key redefinitions are useful for defining "keystroke macros" of login
sequences, frequently issued commands, and so forth, and for setting up
the terminal for use with host resident software designed to work with
terminals that send predefined sequences from their function keys. For
instance, here's a key redefinition file for arranging the DEC Rainbow
keyboard into the normal ASCII keyboard layout:
; Make shift-comma send a left angle bracket
set key scan 556
<
; Shift-period sends a right angle bracket
set key scan 558
>
; Accent grave is where ESC is supposed to be
set key scan 96
\33
; Put accent grave on the ESC function key
set key f11
`
The SET KEY facility may be used provide the PC with a "meta" key for
use with editors like EMACS or TVEDIT that can use "meta characters" as
commands. A meta key is a shift key whose effect is to turn on the 8th
(parity) bit of the character. For instance, on the IBM PC the scan
codes produced by holding down ALT together with other keys can be
determined using SHOW KEY, and then 8-bit ASCII equivalents with the 8th
bit turned on can be defined using SET KEY; if the scan code produced by
typing ALT-a, i.e. the letter "a" (ASCII 141, octal) with the ALT key
held down, is 2078 (decimal), you would set the META equivalent to
141+200=341 (octal), or "\341" in octal SET KEY notation:
Kermit-MS>sho key
Press a key: ALT-a
Scan Code: 2078
Definition:
Kermit-MS>set key scan 2078
Definition String: \341
Whenever you type ALT-a with this definition in effect, Kermit-MS will
transmit octal 341, rather than 141.
103
9.5. Installation of Kermit-MS
by Bill Catchings, Columbia University
If you already have Kermit on your PC, you can use it to obtain new ver-
sions of Kermit-MS when they appear on the central system at your site.
If you do not have Kermit or any other reliable file capture facility on
your PC, and there is no one from whom you can borrow a floppy disk to
copy Kermit, then you should read the following instructions for in-
itially "bootstrapping" Kermit-MS from a mainframe where it is stored
onto your microcomputer.
There are at least three methods of initially getting Kermit-MS onto
your PC:
1. Try again to find a copy on diskette.
2. Use another file capture facility to get it.
3. Type in and run a bootstrapping program.
9.5.1. Try Again To Find A Kermit Disk
Before explaining how to bootstrap Kermit onto your PC, a disclaimer
must be made. Although a fair amount of thought and time has gone into
these procedures, they are far from error free. If they were foolproof,
there would be no need for a protocol such as Kermit. There are many
places where things can go wrong, from something as simple as a typing
mistake to something as unavoidable and probably inevitable as a com-
munications line failure. By far the easiest and best way to install
Kermit is from a floppy disk. Before you embark on any of the following
procedures it is a good idea to check once again for a diskette to copy,
even it it contains an old version of Kermit. The time you spend
searching is likely to be far less frustrating than the time you spend
trying to bootstrap Kermit by the methods described below.
9.5.2. Bootstrapping From the Communication Line
If you can't find a diskette with Kermit on it, there are two other
methods available for bootstrapping MS-DOS Kermit onto your PC. The
first method is to use a file capture method or other file transfer
protocol to transfer the file to your PC. Some systems come supplied
with facilities like this, and various public domain or commercial
packages are available. The second method requires you to type in your
own downloading program.
In either case, you must transmit the file from the system where it
resides over a communication line and into your PC. Since version 2 of
MS-DOS Kermit is much larger than version 1, it comes with a new
bootstrapping procedure in which the executable program is encoded much
more compactly than in the earlier "fix" files. The new encoding packs
3 .EXE file bytes into 4 printable characters in the MSxxx.BOO file, and
also compresses adjacent zero bytes (of which there are many). The .BOO
file contains only printable characters, to ensure that downloading can
104
take place regardless of parity or other peculariaries of the communica-
tion channel.
9.5.2.1. Use An Existing File Capture Facility
In the rest of this discussion of bootstrapping, the host-resident boot
.BOO file will be referred to as MSKERMIT.BOO. In fact, the actual name
will depend on which MS-DOS system you are using -- MSIBMPC.BOO for the
IBM PC or XT, MSRB100.BOO for the Rainbow 100, etc.
Use your file capture facility, whatever it may be, to get the file
MSKERMIT.BOO onto your PC's disk, but first make sure you have enough
room for it. Once the file is on your disk, you must run the BASIC
program MSPCTRAN.BAS to decode the file back into KERMIT.EXE. This
program can be downloaded by the same method you used with MSKERMIT.BOO.
The program looks on your current disk and directory for the file
MSKERMIT.BOO and outputs KERMIT.EXE to the same place. KERMIT.EXE is
about 80K bytes, so make sure there is space for it on your disk or else
you will have to start the program over. Since the program will take
about twenty minutes to completely translate the file you will want to
avoid running it more than once.
9.5.2.2. Type In Your Own Bootstrap
If you can't find some method for downloading the .BOO file and the
BASIC program, the second way of bootstrapping Kermit is to use the
programs MSPCBOOT.BAS and MSBOOT.FOR to download via your PC's
asynchronous port from your host and translate it directly, "on the
fly." You run the program MSBOOT.FOR on your host and then run the
program MSPCBOOT.BAS in BASIC on your PC. The FORTRAN program sends the
encoded .EXE file to the BASIC program, which decodes it and stores it
in executable form on your current directory as KERMIT.EXE. A very
rudimentary form of error checking is done to allow obviously corrupted
records to be retransmitted. Follow this procedure:
1. First, you must establish a connection from your PC to the
host system. A high speed connection is preferable; a
"clean" line is preferable to a noisy one. In fact, a clean
line is essential for this procedure. You must be able to
log in to the host system over this connection. If your PC
already has a terminal emulation facility, use that. If not,
you might need to put your PC next to a real terminal and use
that for logging in, then switch the connector to the PC at
the crucial moment. If you are using a terminal, make sure
the terminal and PC have their communication ports set to the
same speed.
2. Ensure that the files MSBOOT.FOR and MSKERMIT.BOO are present
on the host system. MSBOOT.FOR is listed below, in case you
need to type it in.
3. Get back to your PC and type in MSPCBOOT.BAS on your PC; a
listing appears below. There is no need to type in the com-
ments (anything following an apostrophe); they are only there
105
to clarify what the program is doing. Check very carefully
for errors. You should check line 80 in the program to see
that it reflects the way your system is actually set up. If
necessary, substitute the correct baud rate for the supplied
rate of 9600, and if you are not using COM1: make that change
as well. If you are downloading from an IBM or other half-
duplex mainframe, leave line 1000 as it is; otherwise,
replace it by a RETURN statement. If you type it in directly
to BASIC make sure you save the program before you run it, so
you won't have to type it in again in case of error.
4. Get back to your host system and compile MSBOOT.FOR, if it
needs compiling. Define logical unit numbers 5 and 6 to be
the controlling terminal, and logical unit 7 to be the file
MSKERMIT.BOO. On VAX/VMS systems, for example, use these
commands:
$assign sys$input for005
$assign sys$output for006
$assign mskermit.boo for007
On a DECSYSTEM-20, do:
@define 5: tty:
@define 6: tty:
@define 7: mskermit.boo
On a DECsystem-10, do something like this:
.assign tty: 5:
.assign tty: 6:
.assign dsk: 7:
.rename for007.dat=mskerm.boo
On an IBM system under VM/CMS, do this:
.filedef 5 term ( lrecl 80 recfm v
.filedef 6 term ( lrecl 80 recfm v
.filedef 7 disk mskermit boo ( lrecl 77 recfm f perm
5. Set your host system up for downloading:
- Ensure that your terminal does not automatically pause
at the end of a screenful of output. For instance, on a
DEC-20 you would issue the command "terminal no pause
end-of-page".
- Do whatever you can to disable messages from appearing
at your terminal while these programs are running. This
would include messages from other users, mail notifica-
tion, alarms or alerts, system messages, and so forth.
Such messages will interfere with the procedure, and
probably render the result useless.
- You should put your host terminal in "local echo" or
"half duplex" mode, if possible.
106
6. Start the MSBOOT program on your host system.
7. Get back to the PC. If you have been using a terminal,
switch the connector to the PC.
8. Now run the BASIC program, MSPCBOOT.BAS. This procedure will
take at least twenty minutes and possibly longer depending on
line speed. Watch your modem and/or disk lights for reas-
surance that something is happening.
By using one of these installation methods, you should now have a work-
ing version of Kermit. If you experience any problems or quirky be-
havior with the program, it's possible that some part of it was cor-
rupted during the downloading procedure. Perhaps enough usable code
remains to allow you to transfer MSKERMIT.EXE from the host. If not,
you will have to repeat the downloading procedure.
Once you have Kermit-MS on your disk, you should make the disk available
to other users for copying, so that they can be spared the tedium of
this bootstrap procedure.
Here is a listing of MSPCBOOT.BAS. The "outdented" PRINT statements
with line numbers ending in 5 may be included if you want incoming
records to be displayed on the screen. You don't need to include the
comments.
1 'Run this program on the PC in conjunction with a Fortran program
2 '(MSBOOT.FOR) on the mainframe to download Kermit to the PC. This
3 'program will run for about thirty minutes, depending on line speed.
4 ' Bill Catchings, June 1984
5 ' Columbia University Center for Computing Activities
10 t$ = time$ ' Save the time.
20 defint a-z ' All integer to gain some speed.
30 n$ = chr$(0)
40 z = asc("0")
50 t = asc("~")-z
60 def fnuchr%(a$)=asc(a$)-z
70 open "com1:9600,s,7,1,cs,ds,cd" as #1
100 print#1,"O ," ' Char constants "O", " " and ","
110 input#1,f$
120 if len(f$) < 5 then goto 110 ' In case the host echos the ACK.
130 input#1,n
135 print f$+" "+str$(n)
140 if n > 20 then goto 900
150 open f$ for output as #2
160 print "Outputting to "+f$
170 goto 300 ' Correct version of the file.
200 gosub 1000 ' Do turnaround char processing
210 print#1,"NO" ' Tell host data was incorrect.
220 goto 320
107
300 gosub 1000 ' Do turnaround char processing
310 print#1,"OK" ' Say the line was all right.
320 input#1,x$
330 if len(x$) < 5 then goto 320 ' In case the host echos ACK/NAK
340 input#1,n
345 print x$+" "+str$(n)
350 if len(x$) <> n then goto 200 ' Length doesn't match, NAK it.
360 if x$ = "&&&&&&&&&&" then goto 800 ' End of file?
370 y$ = "" ' Set output string to null.
380 goto 500
400 print#2,y$; ' Print the output string.
410 goto 300 ' Go get another line.
500 if len(x$) = 0 goto 400 ' Done with input string?
510 a = fnuchr%(x$)
520 if a = t then goto 700 ' Null repeat character?
530 q$=mid$(x$,2,3) ' Get the quadruplet to decode.
540 x$=mid$(x$,5)
550 b = fnuchr%(q$)
560 q$ = mid$(q$,2)
570 c = fnuchr%(q$)
580 q$ = mid$(q$,2)
590 d = fnuchr%(q$)
600 y$ = y$ + chr$(((a * 4) + (b \ 16)) and 255) ' Decode the quad.
610 y$ = y$ + chr$(((b * 16) + (c \ 4)) and 255)
620 y$ = y$ + chr$(((c * 64) + d) and 255)
630 goto 500 ' Get another quad.
700 x$ = mid$(x$,2) ' Expand nulls.
710 r = fnuchr%(x$) ' Get the number of nulls.
715 print " Null: ",r
720 x$ = mid$(x$,2)
730 for i=1 to r ' Loop, adding nulls to string.
740 y$ = y$ + n$
750 next
760 print#2,y$; ' Print the nulls.
770 y$ = "" ' Clear the output buffer.
780 goto 500
800 print "Processing complete, elapsed time: "+t$+" to "+time$
810 print "Output in "+f$
820 close #1,#2
830 goto 9999
900 print "?The format of the BOO file is incorrect"
910 goto 820
1000 x$ = input$(1,#1) ' Make this line RETURN for full-duplex
1010 if x$ <> chr$(17) then goto 1000 ' Loop for a turn around char.
1020 return
9999 end
108
Here is a listing of MSBOOT.FOR, in case you can't find it on your host
system:
C This Fortran program should be run on the mainframe in conjunction
C with a Basic program (MSPCBOOT.BAS) on the PC to transfer
C MSKERMIT.BOO to the PC and translate it into KERMIT.EXE. This
C program uses a very rudimentary technique to try to insure that
C the characters it sends arrive correctly. It just sends a count
C of the number of characters sent after each line. In this way any
C errors of character loss or insertion will be caught. If a
C character is just corrupted it will not be caught. Hopefully if
C this happens it will be in a non-critical part of the KERMIT.EXE
C file. The reason a simple checksum was not used was so that this
C program could run on machines using either EBCIDIC or ASCII
C characters. This program should take about thirty minutes to run.
C This program assumes that 5 and 6 are directed to the terminal and
C 7 is directed to the file MSKERMIT.BOO.
INTEGER LINE(77), ACK(4), CHECK, OK, SPACE, COMMA
WRITE(6,100)
100 FORMAT(' Ready to transfer data, now run MSPCBOOT.BAS on the PC.')
C Get characters for constants (character constants are rough in
C some FORTRANs!)
READ (5,200) OK, SPACE, COMMA, ACK
200 FORMAT(4A1)
GO TO 30
C Get terminal handshake.
10 READ (5,200)ACK
C Did the other side like it? (Did they send OK?)
IF (ACK(1) .NE. OK) GO TO 50
C Yes, get new line from file.
20 READ (7,300,END=99)LINE
300 FORMAT(77A1)
C Count the characters as some rudimentary check for noise.
I = 1
30 IF (LINE(I) .EQ. SPACE) GO TO 40
I = I + 1
GO TO 30
C Put in a comma followed by the count.
40 LINE(I) = COMMA
C Write to TTY.
50 WRITE (6,400)LINE,I-1
400 FORMAT(' ',77A1,I2)
GOTO 10
109
C Send good-bye message.
99 WRITE (6,500)
500 FORMAT(' ',10('&'),',10')
STOP
END
9.6. Compatibility with Older Versions of MS-DOS Kermit
MS-DOS Kermit supports many different systems. Like CP/M-80 KERMIT,
this support was added to the program piecemeal, at many sites, using
conditional assembly. However, before allowing the program to grow into
a complicated monolith like CP/M-80 KERMIT, we have broken the program
up into separate modules, with system dependencies isolated into a
single module consisting of compact collections of low-level primitives
for console and port i/o.
The last monolithic (single source file) release of MS-DOS Kermit was
1.20. To this and earlier versions was added support for systems like
the Seequa Chameleon, the Tandy 2000, the Victor 9000, the Heath/Zenith
100, and others. Eventually, support for these systems may be in-
tegrated with the new modular version. Meanwhile, implementations based
on these old versions will have at least the following incompatibilies
from the version described here:
- RECEIVE filespec is used instead of GET filespec. There is no
GET command in older versions, and no way to specify a new
name for an incoming file.
- No LOCAL or REMOTE commands.
- No 8th-bit prefixing, repeat counts, CRCs or 2-character
checksums.
- No TAKE or initialization files.
- No command macros or command line arguments.
- No terminal session logging.
and others, depending on the specific version.
9.7. What's Missing
Kermit-MS has plenty of room for improvement. Features that need to be
improved or added include:
- A built-in facility for sending files "raw" to the remote sys-
tem, obeying current settings for parity, flow control, hand-
shake, and so forth. This might include a script interpreta-
tion facility to allow remote sessions to be conducted
automatically. For the present, this can be accomplished with
a user-supplied program invoked with the Kermit-MS RUN com-
mand.
- Additional functionality when running in server mode
-- directory listings, file deletion, execution of DOS com-
mands, etc.
110
- More commands when talking to remote servers -- REMOTE RENAME,
COPY, STATUS, WHO, etc.
- Filename conversion options (normal form, handling of fully
qualified filespecs, etc.).
- Transaction file logging.
- Improved command parsing; for instance, accept default values
for omitted trailing fields.
- A better built-in help facility.
- Support for Kermit file attribute packets.
- The Kermit-MS program is quite large. Much of the size is due
to the deliberate decision to provide support for versions of
MS-DOS prior to 2.0. At some point, this support should be
removed. This will not only reduce the size of the program
considerably, but also provide much more flexibility.
9.8. Program Organization
Kermit-MS version 2 is composed of separate assembler source files, as-
sembled separately, and linked together. The modules are:
System/Device Independent:
MSKERM.ASM Main program
MSSEND.ASM File sender
MSRECV.ASM File receiver
MSSERV.ASM Server operation
MSFILE.ASM File i/o
MSCMD.ASM Command parser
MSTERM.ASM CONNECT command
MSCOMM.ASM Communications port buffering & flow control
MSSET.ASM SET, SHOW, and STATUS commands
MSDEFS.H Data structure definitions and equates
System/Device Dependent:
MSXxxx.ASM System-dependent code for system xxx
MSYxxx.ASM System-dependent screen and keyboard code
MSZxxx.ASM Modem control (modem-dependent)
The modular organization allows easier modification of the program,
quicker transfer of modified portions from system-to-system. The
modules are designed to be well-defined and self-contained, such that
they can be easily replaced. For instance, someone who prefers windows
and mice to typing commands could replace the command parsing module
without having to worry about the effect on the other modules.
To assemble any of the kermit modules, file MSDEFS.H must be on the
default disk.
111
All the Kermit implementations require the modules MSCMD, MSCOMM,
MSFILE, MSKERM, MSRECV, MSSEND, MSSERV, MSSET, MSTERM.
The IBM PC version requires MSXIBM and MSYIBM as well.
The Rainbow version requires MSXRB and MSXDMB; MSXDMB must be the first
object file given to the linker for Kermit to link properly for the
Rainbow.
The HP150 version requires MSXHP150, the Wang version requires MSXWNG,
and the generic version requires MSXGEN.
Once all the required object modules exist, they may be linked together
to produce Kermit. For example, on the Rainbow:
A>link
Microsoft Object Linker V2.00
(C) Copyright 1982 by Microsoft Inc.
Object Modules [.OBJ]: msxdmb mskerm msxrb mscomm msset mssend +
msrecv msserv msfile msterm mscmd
Run File [MSXDMB.EXE]: kermit
List File [NUL.MAP]: kermit
A>
9.9. Adding Support For New Systems
You can bring Kermit-MS to systems that are not explicitly supported in
one of two ways -- attempt to run the "generic" MS-DOS Kermit on it, or
add explicit code to support your system.
9.9.1. Generic MS-DOS Kermit
To get started with Kermit on a new system, try running "generic" MS-DOS
Kermit; in many cases, it will run as is. The generic version ac-
complishes all its port and console i/o through DOS calls, and during
terminal connection does not attempt to emulate any particular kind of
terminal. In some cases, the generic version may still require some
fiddling to run on a new system; for instance, different systems refer
to their communication ports in different ways -- COM1, AUX, etc. It
attempts to do this automatically by trying various DOS file handles for
the communication port, and asking you to supply one if it does not
succeed.
Generic MS-DOS Kermit will probably run no faster than 1200 baud, and it
only works with DOS 2.0 or later.
112
9.9.2. Adding System-Dependent Code
The following is a guide to the system dependent module of Kermit-MS.
SPECIFICATION FOR KERMIT SYSTEM-DEPENDENT MODULES
by Jeff Damens, Columbia University
All the system-independent global data structures used in Kermit-MS are
defined in the file MSDEFS.H.
The routine MSXxxx.ASM contains system-dependent support for system xxx,
except for terminal emulation, which is in MSXxxx.ASM, described below.
The routines in the MSX module may change any registers but the stack
pointer and segment registers, unless otherwise noted. A routine that
returns via a RET instruction is said to return normally; a routine that
skip returns is one that returns to three bytes past the normal return
address.
Global variables that must be defined in the system-dependent module:
XOFSNT byte. This should be set to a non-zero value if we are
doing flow control and have sent an XOFF character to
the remote host, zero otherwise.
MACHNAM byte. A $-terminated string identifying the machine
this version of Kermit is for; it is printed when Kermit
starts up.
SETKTAB byte. A keyword table associating terminal key names to
16-bit scan code values, used in the set key command.
If the kermit version can accept arbitrary decimal
values as scan codes, the word "SCAN" should appear in
the table with a scan value of -1. If key redefinition
is not implemented, the first byte of the table should
be a zero.
SETKHLP byte. A $-terminated string to be printed when ? is
typed in the SET KEY command. This is usually simply a
list of the key names in SETKTAB. SETKHLP must be
defined even if key redefinition is not implemented, to
satisfy the linker; if key redefinition is not imple-
mented, SETKHLP will never be displayed.
COUNT word. The number of characters in the serial input
buffer, if known. This is how Kermit knows to send an
XON if the serial handler has sent an XOFF. If the num-
ber of characters in the buffer isn't known, COUNT
should be 0.
These are the required entry points for the system dependent dependent
module MSXxxx.ASM.
113
SERINI
Parameters None.
Returns Normally, no return value.
Description Perform any initialization that must be done before the
serial port can be used, including setting baud rate,
interrupt vectors, etc. Parity and baud rate should be
set according to the values in the PORTINFO structure.
The external variable PORTVAL points to the PORTINFO
structure for the current port. Calling SERINI more
than once without an intervening call to SERRST should
have no effect.
SERRST
Parameters None.
Returns Normally, no return value.
Description Undoes any initialization done by SERINI, including
resetting the serial port, restoring any interrupt vec-
tors changed by SERINI, etc. Calling this more than
once without an intervening call to SERINI should be
harmless.
CLRBUF
Parameters None.
Returns Normally, no return value.
Description Remove and discard from the serial port's input buffer
any characters sent by the remote host that have not yet
been read by Kermit, and set COUNT to 0. This is used
before a file transfer to flush NAK's that accumulate in
the buffer when the remote host is in server mode.
114
OUTCHR
Parameters A character in AH.
Returns Skip returns if the character has been transmitted;
returns normally if the character can not be transmitted
because of a hardware error.
Description Sends the character in AH out the currently selected
serial port. OUTCHR can assume that SERINI will have
been called previously. OUTCHR should call the external
routine DOPAR to set the parity of the character if the
communications hardware doesn't automatically set
parity. Flow control should be honored; the external
variable PORTVAL contains a pointer to a PORTINFO struc-
ture (as defined in MSDEFS.H) containing the current
flow control definitions.
COMS
Parameters None.
Returns Normally if a parse error is encountered, skip returns
otherwise.
Description Called by the SET PORT command. On a machine with mul-
tiple serial ports, COMS should parse for the name or
number of a serial port and make that the port used by
succeeding calls to SERINI, PRTCHR, OUTCHR, and SERRST.
It should set the external variable PORTVAL to point to
one of the external port structures PORT1 or PORT2, and
set COMFLG in the FLAGS structure to 1 for port one, 0
for port 2. For implementations that use only one
serial port, COMS should print a message to that effect
and skip return.
VTS
Parameters None.
Returns Normally if a parse error is encountered, skip returns
otherwise.
Description Parses for an ON or OFF, sets HEATH-19 emulation while
in terminal emulation appropriately. The VTFLG field of
the FLAGS structure should be set non-zero if HEATH-29
emulation is on, zero otherwise. If HEATH-19 emulation
is not done, VTS should print a message and skip return.
115
DODEL
Parameters None.
Returns Normally, no return value.
Description Erases the character immediately to the left of the cur-
sor from the screen, then backs up the cursor.
CTLU
Parameters None.
Returns Normally, no return value.
Description Move the cursor to the left margin, then clear the line.
CMBLNK
Parameters None.
Returns Normally, no return value.
Description Clears the screen and homes the cursor.
LOCATE
Parameters None.
Returns Normally, no return value.
Description Homes the cursor.
LCLINI
Parameters None.
Returns Normally, no return value.
Description Performs any system-dependent initialization required by
this implementation.
116
PRTCHR
Parameters None.
Returns Normally, with the next character from the currently
selected serial port in AL. Skip returns if no charac-
ter is available.
Description Reads the next character from the current serial port.
PRTCHR can assume SERINI has been called previously, and
should handle flow control correctly.
DOBAUD
Parameters None.
Returns Normally, no return value.
Description Sets the baud rate for the current port. The baud rate
should be obtained from the BAUD field of the PORTINFO
structure, pointed to by the external variable PORTVAL.
CLEARL
Parameters None.
Returns Normally, no return value.
Description Clears from the cursor to the end of the current line.
DODISK
Parameters None.
Returns Normally, no return value.
Description Sets the external variable DRIVES to the number of disk
drives attached to the machine.
GETBAUD
Parameters None.
Returns Normally, no return value.
Description Store current baud rate of the currently selected port
in the BAUD field of the current PORTINFO structure,
which is pointed to by PORTVAL. If the baud rate is to
default to a particular value, this routine can store
that value into the BAUD field instead.
117
BEEP
Parameters None.
Returns Normally, no return value.
Description Rings the terminal bell.
PUTHLP
Parameters A pointer to a string in AX.
Returns Normally, no return value.
Description Writes the null-terminated string given in AX to the
terminal. This is used to display help and status mes-
sages. The IBM and Rainbow versions write the string in
a reverse video box.
PUTMOD
Parameters A pointer to a string in AX.
Returns Normally, no return value.
Description Writes the null-terminated string given in AX to the
last line of the screen, in inverse video if possible.
CLRMOD
Parameters None.
Returns Normally, no return value.
Description Clears the line written by PUTMOD.
POSCUR
Parameters Row in DH, column in DL.
Returns Normally, no return value.
Description Positions the cursor to the row and column given in DX.
Rows and columns both originate at 0 (not 1!).
118
SENDBR
Parameters None.
Returns Normally, no return value.
Description Send a break to the current serial port.
SHOWKEY
Parameters Pointer to a terminal argument block in AX (see TERM
below).
Returns Normally, with a string pointer in AX and the length of
the string in CX.
Description Called by the SHOW KEY command. Reads a key from the
terminal and returns a string containing
implementation-dependent information about the key. In
the usual case, the string contains the key's
(machine-dependent) scan code, and the key's definition
(if any) from the terminal argument block. The length
of the returned string should be returned in CX. The
string may contain any characters; unprintable charac-
ters will be quoted when the string is printed. If the
implementation does not support key redefinition, SHOW-
KEY may return a static string saying so.
TERM
Parameters Pointer to terminal argument block in AX.
Returns Normally, no return value.
Description Do terminal emulation, based on argument block described
below...
The terminal emulator is supplied in the file MSYxxx.ASM. The terminal
argument block passed to the terminal emulator has the following fields:
FLGS Byte containing flags. Flags are:
SCRSAM (80H) If on, the terminal emulator shouldn't
re-display the screen when entered.
CAPT (40H) Capture output. If on, the routine
passed in field CAPTR is called with
each character sent to the screen.
EMHEATH (20H) Emulate a Heath-19 terminal if on.
119
HAVTT (10H) A key redefinition table is present.
TRNCTL (08H) Print control character X as ^X (useful
for debugging).
MODOFF (04H) Do not display emulator mode line if on.
LCLECHO (01H) Echo keyboard characters on the screen
in addition to sending them to the port.
PRT Port to use for terminal emulation, used only in mode
line. This is just a copy of COMFLG in FLAGS.
COLS Number of columns on screen.
ROWS Number of rows on screen.
CAPTR Routine to call to with each character sent to the
screen if CAPT flag is on. Characters are passed in AL.
BELLD Bell divisor (used only on IBM).
KLEN Number of keys in key redefinition table, if HAVTT flag
is on.
KTAB Address of key redefinition table. The key redefinition
table is a table of KLEN 16-bit scan codes. Each
(machine dependent) scan code represents a key that is
redefined.
KRPL Address of key replacement table. The key replacement
table parallels the key redefinition table given in
KTAB. Entries in the replacement table are 16-bit
pointers to redefinitions. Each redefinition has a
one-byte length, followed by the definition.
ESCC Escape character (single byte). When this character is
typed to the emulator, it should return.
BAUDB byte. Bits describing the baud rate so it can be
printed on the mode line. This is a copy of the BAUD
field in the PORTINFO structure. Currently used only on
the IBM. See MSDEFS.H for possible values.
PARITY byte. Current parity to print on the mode line. This
is a copy of PARFLG in the PORTINFO structure. Cur-
rently used only on the IBM. See MSDEFS.H for possible
values.
120
9.10. Heath/Zenith-19 Control Codes
The Heath/Zenith-19 terminal is equivalent to the DEC VT52 with exten-
sions for line and character insertion and deletion. Items marked with
an asterisk are not currently supported by Kermit-MS H19 emulation.
Cursor Functions
Sequence Mnemonic Definition
ESC H HCUH Cursor Home
ESC C HCUF Cursor Forward
ESC D HCUB Cursor Backward
ESC B HCUD Cursor Down
ESC A HCUU Cursor Up
ESC I HRI Reverse Index
*ESC n HCPR Cursor Position Report
*ESC j HSCP Save Cursor Position
*ESC k HRCP Set Cursor to Previously Saved Position
ESC Y HDCA Direct Cursor Addressing, 1-based:
31+line# 31+col# (same as VT52)
Erasing and Editing
Sequence Mnemonic Definition
ESC E HCD Clear Display (Shift Erase)
ESC b HBD Erase Beginning of Display
ESC J HEOP Erase to End of Page (Erase Key)
ESC l HEL Erase Entire Line
ESC o HEBL Erase Beginning of Line
ESC K HEOL Erase to End of Line
ESC L HIL Insert Line
ESC M HDL Delete Line
ESC N HDCH Delete Character
ESC @ HEIM Enter Insert Character Mode
ESC O HERM Exit Insert Character Mode
Configuration
Sequence Mnemonic Definition
*ESC z HRAM Reset to Power-Up Configuration
*ESC r Bn HMBR Modify Baud Rate: Bn=
A=110, B=150, C=300, D=600, E=1200,
F=1800, G=2000, H=2400, I=3600, J=4800,
K=7200, L=9600, M=19200
*ESC x Ps HSM Set Mode(s): Ps=
1 = Enable 25th line
2 = No key click
3 = Hold screen mode
4 = Block cursor
5 = Cursor off
121
6 = Keypad shifted
7 = Alternate keypad mode
8 = Auto line feed on CR
9 = Auto CR on line feed
*ESC y Ps HRM Reset mode(s): Ps=
1 = Disable 25th line
2 = Enable key click
3 = Exit hold screen mode
4 = Underscore cursor
5 = Cursor on
6 = Keypad unshifted
7 = Exit alternate keypad mode
8 = No auto line feed
9 = No auto CR
*ESC < HEAM Enter ANSI Mode
Modes of Operation
Sequence Mnemonic Definition
*ESC [ HEHS Enter Hold Screen Mode
*ESC \ HXHS Exit Hold Screen Mode
ESC p HERV Enter Reverse Video Mode
ESC q HXRV Exit Reverse Video Mode
*ESC F HEGM Enter Graphics Mode
*ESC G HXGM Exit Graphics Mode
*ESC t HEKS Enter Keypad Shifted Mode
*ESC u HXKS Exit Keypad Shifted Mode
*ESC = HAKM Enter Alternare Keypad Mode
*ESC > HXAM Exit Alternate Keypad Mode
Additional Operations
Sequence Mnemonic Definition
*ESC } HDK Keyboard Disable
*ESC { HEK Keyboard Enable
ESC v HEWA Wrap Around at End of Line
ESC w HXWA Discard at End of Line
ESC Z HID Identify as VT52 (ESC / K)
*ESC ] HX25 Transmit 25th Line
*ESC # HXMP Transmit Page
The Heath-19 transmits the following sequences, but it will not
respond to them if they are received. Kermit-MS will transmit them
only if they are programmed with SET KEY.
ESC S HF1 Function Key #1
ESC T HF2 Function Key #2
ESC U HF3 Function Key #3
ESC V HF4 Function Key #4
ESC W HF5 Function Key #5
122
ESC P HF7 Function Key #7
ESC Q HF8 Function Key #8
ESC R HF9 Function Key #9
123
Index
RECEIVE 86
ANSI.SYS 94 Recognition 83
Autodialer 100
Smart Modem 100
Batch Operation of Kermit-MS 84
Baud Rate 92 Telenet 95
Beeper 92 Timeout 98
Bell 92
Binary Files 96 Warning 98
Wildcard 81
Cancelling a File Transfer 86, 87
Command Files 98
Command Macro 99
CONNECT 100
Control-X 86, 87
Control-Z 86, 87
Debugging 93
DEFINE 99
DO Command 99
Eighth-Bit Prefix 96
EMACS 102
End Of File 82, 93
EOF 93
Escape Character for CONNECT 94
File Renaming 98
File Warning 98
Flow Control 94
Generic MS-DOS Kermit 111
Handshake 94
Heath-19 Terminal Emulation 94, 100,
120
Help 83
IBM PC 79
Incomplete File Disposition 87
Key Redefinition 95
Local Echoing 95
Macro 99
META Key 102
Mode Line 100
Modem 100
MS-DOS 79
Parity 95
PC-DOS 79
i
Table of Contents
9. MS-DOS KERMIT 79
9.1. The MS-DOS File System 80
9.1.1. File Specifications 80
9.1.2. File Formats 81
9.2. Program Operation 82
9.3. Kermit-MS Commands 84
9.3.1. Commands for File Transfer 85
9.3.2. Commands for Connecting and Disconnecting 88
9.3.3. Commands for File Management 89
9.3.4. The SERVER Command 91
9.3.5. The SET Command 92
9.3.6. The SHOW Command 98
9.3.7. Command Macros 99
9.4. Terminal Emulation 100
9.5. Installation of Kermit-MS 103
9.5.1. Try Again To Find A Kermit Disk 103
9.5.2. Bootstrapping From the Communication Line 103
9.5.2.1. Use An Existing File Capture Facility 104
9.5.2.2. Type In Your Own Bootstrap 104
9.6. Compatibility with Older Versions of MS-DOS Kermit 109
9.7. What's Missing 109
9.8. Program Organization 110
9.9. Adding Support For New Systems 111
9.9.1. Generic MS-DOS Kermit 111
9.9.2. Adding System-Dependent Code 112
9.10. Heath/Zenith-19 Control Codes 120
Index 123