1. CYBER 170 KERMIT Version: 2.2

advertisement
1. CYBER 170 KERMIT
Authors:
Version:
Date:
Jim Knutson, University of Texas
2.2
September 1984
Cyber Kermit was written for a Cyber 170/750 in FTN5, CDC's FORTRAN
77 compiler. It should run on any NOS or NOS/BE system with only minor
changes to
the I/O routines. This is a necessary evil since every Cyber site seems
to run
a different front end.
1.1. Cyber File Systems
The features of a Cyber file system of greatest interest to KERMIT
users are
storage class, file structure, file specifications and character sets.
Cyber Storage Classes
The NOS and NOS/BE operating systems use the concept of local and
permanent
file storage. This means that files that are to be kept around after a
job is
finished must be moved to permanent storage first. Jobs that wish to
use a
file from permanent storage must copy to local storage first before
using it
(actually, direct access permanent files help alleviate this problem).
Most
Kermit users will only want to use local files.
Cyber File Structure
Many Cyber files use internal structure information much like VMS files.
These
internal structures are mainly used in executable binary files or
certain CRM
record types. The internal structure of files is not currently
supported by
Cyber Kermit. Cyber executable binaries, and multi-record files are not
transferable using Kermit.
Cyber File Specification
A Cyber file name consists of from 1 to seven alphanumeric
characters. NOS
systems allow the first character to be numeric but most Cyber
processors do
not support this. Cyber Kermit allows the first character to be a digit
on NOS
systems.
Special characters are not allowed in the file name. File
names
beginning with ZZ or SCR should be avoided, since these are commonly
used
scratch file names. The Cyber Kermit command processor does not
support wild
cards at this time.
Cyber Character Sets
Until the recent Cyber 800 Series mainframes, the character set used by
most
Cyber systems was a six bit Display Code character set. The six bit
character
sets supported by Cyber Kermit are the 63 character, 64 character and
UT 64
character sets.
These character sets not only differ in their
ordering but
also in the characters they use. Some use the underscore and percent
sign,
others do not. ASCII characters received by Cyber Kermit are translated
to the
appropriate display code when possible. A character that can not be
translated
will be set to a blank. Users of the 64 character set may have
problems with
colons at the end of a line being truncated or lines with sequential
colons
being split into two or more lines since the character value of a colon
is 00B
(half of an End-Of-Line).
There are also several ASCII character sets in use on the various Cyber
systems.
One set, called 6/12, uses 6 bit display code characters with
certain
characters set aside as flags to indicate case (upper/lower) or control
characters. Cyber Kermit does not support the 6/12 character set.
Another
ASCII
character set is the 8/12 character set. This stores ASCII
characters as 8
bits in a 12 bit byte. The exception to this is that an EOL (End-OfLine) is
indicated by the usual CDC convention of at least twelve bits of 0
(0000B) in
the low order bits of the word. NUL characters are represented as
4000B to
prevent interpretation as an EOL sequence. Cyber Kermit also support
UT 8/12
ASCII. The difference between this and NOS 8/12 ASCII is UT 8/12 ASCII
uses
the NEL character (205B) from the 256 character ASCII set to
represent an
End-Of-Line.
1.2. Program Operation
Cyber Kermit's prompt is "Kermit-170>". It must be run interactively and
without any parameters. Commands can then be typed in like this:
.kermit
Kermit-170>send foobar
[file foobar sent]
Kermit-170>status
[performance statistics are printed]
Kermit-170>receive
[files are received]
Kermit-170>exit
.
Cyber Kermit mimics the DEC-20 style command parser in that a question
mark
followed by a carriage return may be placed anywhere on the command line.
This
will display the options available at that point. Unfortunately, the
entire
command will have to be retyped afterwards.
Command keywords may be abbreviated to their shortest unique combination.
This
comes in very handy since Cyber Kermit does not support command
completion.
Cyber Kermit may only be run as a remote Kermit. It must be watched
during
transfer if the local Kermit has no timeout since it has no
timeout
capabilities.
A Cyber filename is restricted to 7 alphanumeric characters with the
first
character being an alpha. Kermit will use the first 7 valid characters
of any
file being sent to the Cyber. If a file under that name already exists,
an Er-
ror packet stating so will be sent back and Cyber Kermit will abort the
transfer.
If you are having trouble transferring files with Kermit, it may be due
to the
parity. Cyber Kermit has no way of determining the parity of the
connection so
it just guesses that it will be NONE. If you are having problems
getting the
first packet to transfer, then this is probably the problem. If you are
running with a parity other than NONE, then you must use the SET PARITY
command
every time you enter Cyber Kermit.
1.3. Cyber Kermit Commands
The following is a list of Cyber Kermit commands and their description.
! command
Kermit.
Execute a Cyber control command and then return to
EXIT, QUIT
in the
Exit from Kermit-170.
You may
also
stop
Kermit-170
midst of a transfer or during server operations by
aborting the
program
(CTRL-C
or
CTRL-G ABORT); the program traps
them and
puts your terminal back to normal before halting.
HELP [topic]
help
Give Help.
There's a general help
text,
plus
separate
texts for each Kermit-170 command.
PUSH
Kermit en-
Exit
to
control
vironment.
Kermit
command
level saving the current
The environment will be
restored
when
is
reentered.
RECEIVE
If the
Receive
a
file or group of files from the other host.
name in the header packet is not a legal Cyber file
name,
the
first 7 legal characters will be used.
If
the
file
already exits as a local file, Kermit will
abort
the transfer.
file
If an error occurs
during
transfer,
the
being
received will be removed from the local file list
to allow the transfer to be retried.
You should escape back
to your
local Kermit after entering RECEIVE mode and give the
SEND command.
SEND filename
passed
Send a file to the other host.
The name of the file is
to the other host in a file header packet, so that the
file can
be
stored there with the same name.
You should escape
back to
your local Kermit and give the RECEIVE command.
If
you
don't
do
this
fast
enough the "send-init" packet may arrive
prematurely.
RETURN
To prevent this, use SET DELAY or hit the
key
on your microcomputer if it does not timeout.
SERVER
options were
Act
as
a
server
for
another Kermit.
previously SET will be used.
Whatever
The server may be shut down
from
the
local
Kermit
by
using the BYE or FINISH commands,
or by
connecting back to the Cyber, and typing Control-C or
Control-G
ABORT.
SET keyword value
Establish system-dependent parameters.
their
You can
examine
values
with
the SHOW command.
Numeric values may be
decimal,
octal (postfixed with a B), or hexadecimal (postfixed by
an H).
The following may be SET:
DATA-MODE ctype
Set the character code to use
received
for
files
by
Kermit-170.
Allowable
values for ctype are:
ASCII,
DISPLAY-CODE, IMAGE-ASCII, NOS-ASCII.
The
interpretation of these is dependent on the system.
DISPLAY-CODE
will
be
the
six bit character set in use at
the site
(63 or 64).
ASCII will be NOS 8/12 ASCII for all
sites
except the University of Texas.
used
NOS-ASCII is
to
describe
NOS 8/12 ASCII at UT while ASCII
describes UT
8/12 ASCII.
The default character set in use
when Kermit starts up is DISPLAY-CODE.
Automatic
character set
recognition
is
used
for
sending
files
unless
IMAGE-ASCII is set.
DEBUG option
Show packet traffic explicitly.
ALL
Options are:
Set all debug options.
LOG-FILE filename
Log states
and packets to the specified
file.
The default log-file is file KERMLOG.
OFF
(this
Don't display debugging
information
is
the default).
If debugging was in
effect, turn
it off and close any log file.
PACKETS Display
each
packet
(lengthy).
incoming
and
outgoing
STATES
Show kermit state transitions and
packet
numbers (brief).
DELAY decimal-number
How many seconds
to
wait
before
sending the
first
packet.
This gives you time to "escape" back and
issue
a RECEIVE command.
DUPLEX keyword
Changes the method of
echoing
characters
when
being
prompted
for commands.
The choices are FULL and
HALF.
Full means the Cyber will echo the characters you
type.
Half means the local systems echoes them.
is
Full
the
default, and is used by most hosts.
INIT-RETRY decimal-number
Set the maximum number of retries allowed for
the initial connection before giving up.
PARITY keyword
Allows you to adjust the parity on characters
sent
or
received
require-
by
Kermit-170
to
another system's
ments.
The possibilities are NONE, EVEN, ODD,
or MARK.
If NONE, then the 8th bit
SPACE,
used
can
be
for
data when sending and receiving binary files.
If
other
than
NONE,
the 8th bit on outgoing characters
will be
set to achieve the desired parity, and the 8th
bit
on
incoming
characters will be discarded.
The
default is
NONE.
RECEIVE parameter value
These commands allow you to specify to the other
Kermit
what the packets it sends should look like, or
to
inform
may
this
Kermit
what
to
expect.
Value
be
specified as a
number
decimal
number,
an
octal
(B
suffix),
or
a hexadecimal number (H suffix).
Characters values are specified as the numeric
equivalent
of
the ASCII character.
END-OF-LINE value
The octal
value
of the ASCII character
to be
used as a line terminator or packets, if
one is
required by the other system.
Carriage
return
(15B) is the default.
PACKET-LENGTH value
Maximum packet length to send, decimal
number,
between 20 and 94, 94 by default.
PAD-CHARACTER value
Character to use for padding.
Default is
NUL.
PAD-LENGTH value
How much
padding
to
packet.
Default is no padding.
send
before
a
QUOTE-CHARACTER value
What printable character to use for
quoting of
control characters.
SYNC-CHARACTER value
The control character that marks the
beginning
of
the packet.
Normally SOH (Control-A,
ASCII
1).
There should be no reason to change
this.
TIME-OUT value
How many seconds the other Kermit
should
wait
for a packet before asking for
retransmission.
RDELAY millisec
Set up
a
delay
of
millisec seconds before
each TTY
read.
This can be used for performance tuning by
causing enough delay that data will be ready when the
read
is
issued.
If
data
is
not ready when the
read is
issued, the job will be swapped out.
The delay
be
The default
should
specified
as a multiple of 100.
delay
is 100 milliseconds.
RETRY value
Set
the
maximum
number of retries for a given
packet
before giving up.
SEND parameter value
These commands allow you to specify how outgoing
packets
should look, in case the other Kermit has
nonstandard requirements.
END-OF-LINE value
The octal value of the ASCII
to
character
be
used
as
a line terminator for packets,
if one
is required by
the
other
system.
Carriage
return (15B) by default.
PACKET-LENGTH value
Maximum packet length to send, decimal
number,
between 20 and 94, 94 by default.
PAD-CHARACTER value
Character to use for padding.
Default is
NUL.
PAD-LENGTH value
How much
padding
to
send
before
a
packet.
Default is no padding.
QUOTE-CHARACTER value
What printable character to use for
quoting of
control characters.
The default is "#"
(43B).
there should be no reason to change this.
SYNC-CHARACTER value
The control character that marks the
beginning
of the packet.
Normally SOH (Control-A,
ASCII
1).
There should be no reason to change
this.
TIME-OUT value
How
many seconds the other Kermit should
wants
before being asked for retransmission.
Unfortunately, the Cyber has no way of timing
out so
this parameter is ignored.
SHOW
170, and
Display
current
SET
parameters,
version
of Kermit-
other information.
STATUS
Give statistics about the most recent file transfer.
1.4. Installation
Cyber Kermit is distributed in two forms. If you received it from
Columbia
University, the sources are in UPDATE source format. If you received
it from
the University of Texas, it will be in UPDATE program library format.
Other
formats may be written by the University of Texas upon request.
The Cyber
contain
Kermit
source comes in two files.
One file (KERMUPL) will
the FTN5 source code for Kermit itself. The other file (AZLBUPL)
contains the
COMPASS I/O and low level support routines supplied by the
University of
Arizona.
Many of these routines are FORTRAN interface routines to the
COMPASS
system macros. These should run as is on NOS/BE systems and most should
run as
is on NOS systems. The routines that are needed from AZLIB (the
library
produced from AZLBUPL) are: CPU.BTZ, CPU.MFS, CPU.VFN, CLOSE, CPU.MVC,
CPU.SCS,
CPU.SXT, CPU.TXS, OPEN, READ, WRITER, READC, READW, WRITEW, ENDRUN,
RECALL,
RTIME, MOVECH, XSCS, XSXT, XTXS, XVFN, RETFILE, XCON, EXCST, and MACREL.
These
routines should be assembled and placed in the file AZLIB and tested to
make
sure they work on your system. The normal command sequence for this
would be:
.UPDATE,P=AZLBUPL,F.
.COMPASS,I.
.LIBGEN,P=AZLIB.
The next thing to do is start building Kermit. There are several things
to do
first, though. Cyber Kermit uses conditional compilation for the
different
operating systems and site dependent routines. Modify the parameter
definitions in common deck COMCKER to reflect your operating system and site.
Note
that the site definition is only usefull if you need to have site
specific
routines or code. Currently, the only site specific routines are
used to
change the duplex from FULL to HALF and back again (ECHOPLX used at UA,
BELLC
used at UT). Site specific code is used at UT due to our strange
character
sets, and for setting ASCII mode for I/O in subroutine FOPEN. The
display code
character set parameter must also be modified in common deck COMCKER to
reflect
the appropriate character set (63, 64) in use at your site.
NOS sites will probably have to modify subroutine RDELAY to accomodate
the different format returned by the RTIME macro. If a NOS site would send
it's mods
back to the University of Texas, then this could be conditionally
compiled and
other NOS sites would no longer have to worry about this.
Once the duplex changing (not neccessary at half duplex sites, but be
sure to
change the default duplex in subroutine BLOCK DATA to HALFDUP) and the
code for
setting ASCII I/O has been set up debugging can take place.
Decide on
which
version of Cyber Kermit you wish to run (OVCAP or SEGLOAD). Most
sites are
running the OVCAP version and installing it in the system nucleus.
To
build
the OVCAP version place the following lines in file UPDMODS:
*IDENT,moddeck
*DEFINE,OVCAP
and run the commands:
.UPDATE,P=KERMUPL,F,I=UPDMODS.
.FTN5,I,OPT=2.
.FTN5,I,OPT=2,B=LIBREL.
.LIBGEN,P=KERMLIB.
.LDSET,MAP=SBEX.
.LOAD,LGO.
.NOGO,KERMIT.
COMPILE KERMIT SOURCE
COMPILE LIBRARY SOURCE
BUILD KERMIT LIBRARY
LOAD KERMIT, KERMLIB AND AZLIB
To build the segload version, place the following segload directives
into file
KERMSEG:
SET
RECEIVE
SEND
KERMIT
TREE
INCLUDE
INCLUDE
INCLUDE
GLOBAL
END
KERMIT-(SET,HLPCMD,EXECMD,SERVER-(RECEIVE,SEND))
SHOW,STATUS,MATCH,SETVAL
RINIT,RFIEL,RDATA
SINIT,SFILE,SDATA,SEOF,SBREAK
PROTO,PACKET,DEBUG,MESSAGE,FILEIO,FILEIOC
KERMIT
and run the commands:
.UPDATE,P=KERMUPL,F.
.FTN5,I,OPT=2.
.LDSET,LIB=AZLIB
.LDSET,MAP=SBEX.
.SEGLOAD,I=KERMSEG,B=KERMIT.
.LOAD,LGO.
.NOGO.
COMPILE KERMIT SOURCE
LOAD KERMIT, AZLIB
To aid in debugging of the OVCAP version, remove the line:
LDSET
OMIT=SYSERR.
from the COMPASS main program.
This
uneeded
(hopefully) code and reduce field length.
was
put
there
to
remove
Be sure to read the implementation notes in the program source.
notes
are likely to be the more upto date.
Planned further
University of
Texas include:
enhancements
to
Kermit-170
These
being done at the
- Addition of new server functions: directory, type, delete, etc.
- Two and Three character checksums.
- 8th-bit quoting, to allow transfer of binary files with systems that
can't use the parity bit for data.
- Repeat processing for data compression.
- Badly needed performance tuning. Currently we have been experiencing
700-900 baud effective data throughput on a 2400 baud line.
Index
!
2
CDC
0
Character Set
Control-C
2
CYBER
0
Debugging
Duplex
3
3
EXIT
2
Help
1, 2
NOS
0
NOS/BE
3
0
Parity
2, 3
Performance Tuning
PUSH
2
QUIT
2
RECEIVE
SEND
2
SERVER
2
SET
2
SHOW
5
STATUS
5
2
4
Table of Contents
1. CYBER 170 KERMIT
0
1.1.
0
1.2.
1
1.3.
2
1.4.
5
Cyber File Systems
Program Operation
Cyber Kermit Commands
Installation
Index
8
Download