Kermit-MPX Program: L. Tate, Simulation... Derived from CYBER-170 version 1.0,

advertisement
Kermit-MPX
Program:
L. Tate, Simulation Associates Inc.
Derived from CYBER-170 version 1.0,
Jim Knutson, University of Texas.
Language:
Gould Fortran 77 4.2, with some assembler routines
Version:
2.3
Date:
May 1986
Documentation: L. Tate, Simulation Associates Inc.,
Mike Niswonger, Computer Science and Applications
Kermit-MPX Capabilities at a glance:
Local operation
Remote operation
Transfers text files
Transfers binary files
Wildcard send
^X/^Y interruption
Filename collision avoidance
Can time out
8th-bit prefixing
Repeat count prefixing
Alternate block checks
Terminal emulation
Communication settings
Transmit Break
IBM communication
Transaction logging
Session logging
Raw upload
Act as server
Talk to server
Advanced commands for servers
Local file management
Handle file attributes
Command/init files
Printer control
Yes; MPX 3.2B or later
Yes
Yes
No
No
No
No
Yes
No
No
No
No
No
Yes
Yes
No
Yes
No
Yes
Yes
No
No
No
Yes
No
14.1 Kermit-MPX Description
Kermit-MPX runs on Gould's Concept and Series computers running MPX 2.X
or MPX
3.X operating systems.
MPX 3.2B and later versions allow true full
duplex
terminal operations so these installations may use the Kermit program
in a
local mode although the response is very poor.
This Kermit
interface
(sorry ALIM
input,
requires the use of an eight line asynchronous
and
ADS users) on an IOP.
This interface
(8LAS)
buffers
the
performing some rudimentary translations like lower to upper case and
block
reads and writes.
Unfortunately, it's efficiency is very poor for
single byte
reads and writes, thus the connect mode's effective throughput is only
about
300 baud.
To make matters worse when the type-ahead buffer is full
(40-128
characters) then the buffer empties and a program interruption
(break) is
generated. Also a break can be generated by recognition by the 8LAS of a
'wakeup' character.
Convenient for the terminal processor, but really bad
for file
transfer if the wake-up character is a '?' or any other printable
character.
This Kermit has a timeout that functions at random intervals.
timeout
doesn't work then sending a break should wake it up.
If the
The initialization file KERMIT.INI may be used to initialize Kermit.
The file
must be in the current directory when starting Kermit up.
Any valid
KermitMPX command may be included.
14.2 Kermit-MPX Commands
Kermit-MPX uses the DECSYSTEM-20 keyword style command language.
Each
keyword
may be abbreviated to its minimum length. "?" may be type to request a
menu of
the available options for the current field at any point in a command.
Kermit-MPX prompts with 'Kermit-' with the machine type concatenated on
to it.
For example on a Concept 32/27 machine, the prompt will be 'Kermit-27>'.
BYE
Sends a message to the remote server to log out the remote
Kermit and
exits local Kermit to system level. Since Kermit-MPX cannot log
itself
off, it just exits the task.
CONNECT
Enter
terminal
emulation
mode.
Presents
the
illusion
of
being
directly
connected as a terminal to the remote system.
escape
character is typed, interprets next character as follows:
0
(zero) transmits a null
When
B
C
transmits a BREAK
close a connection, return to
local Kermit
quit logging (if being done)
resume logging
show available arguments
Q
R
?
escape character
transmits the escape character
Invalid arguments are beeped and reenters connect mode.
EXIT
Exit from local Kermit.
FINISH
Sends a message to the remote server to shut itself down,
leaving the
local Kermit at command level, and the remote at system level.
GET
remote-filename
Tells a remote Kermit to send a file.
HELP
topic
Typing HELP alone prints a brief summary of Kermit and its
commands.
You can also type
HELP command
for
any
Kermit command,
e.g.
"HELP SEND",
to
get
more
detailed
information about a specific command.
Type
HELP ?
consult
to see a list of all the available help commands,
the
Kermit Users Guide.
or
QUIT
Exit from local Kermit.
RECEIVE
Expects one or more files to arrive.
SEND local-filename
Sends a file to remote Kermit.
SERVER
Act
as a server for another Kermit.
the
other Kermit.
Take all further commands
from
your
After issuing this command,
escape back to
local system and issue SEND, GET, BYE or other server-oriented
command
from there.
If your local Kermit does not have a BYE command,
it does
not have the full ability to communicate with a
(in
which case you can only use the send command).
server
Kermit
SET
Establish
system-dependent parameters.
with
SHOW
You can examine their
values
the
command.
Numeric
values
may
be
decimal,
octal
(postfixed with an O or B), or hexadecimal (postfixed with an
H).
The
following may be SET:
DEBUG options
Show packet traffic explicitly. Options are:
ALL
Set all debug options.
LOG-FILE local-filename
Log states and packets to the specified file.
The default log-file is file L.KERMLOG
OFF
Don't display debugging information. (this is
the default). If debugging was in effect, turn
it off and close any log file.
PACKETS Display each incoming and outgoing packet
(lengthy)
STATES
Show Kermit state transitions and packet numbers
(brief).
LOG options
Log all inputs from remote port during connection.
Options are:
LOG-FILE local-filename
Log inputs to specified file. The default
log-file is file L.SESSION
OFF
Turn off the session logging
ON
Turn on the session logging
PORT terminal-address
Sets the communication port; to which connect, send,
receive and
server interact with.
Any MPX terminal address may
used.
Examples: TY7EC0, U17CC4, or UT.
Default is UT.
ESCAPE number
Control character used to escape from connect mode.
Default is 29, (^])
ECHO on/off
Turns on or off the echo by Kermit during connect mode.
be
Echo is normally off.
DELAY number
How many seconds to wait before sending the
first
packet.
This
gives you time to "escape" back and issue a RECEIVE command.
Delay
defaults to 5 seconds.
INIT-RETRY number
Set
the maximum
number
of
retries
allowed
for
the
initial
connection before giving up.
Default is 20.
RETRY number
Set the maximum number of retries allowed for sending a
particular
packet.
Defaults to 5.
SEND parameter
Parameters for outgoing packets as follows:
EOLCHR number
The octal value
of the ASCII character to be used
as
line
terminator
for packets,
if one is required by the other
system.
Carriage return (0DH) by default.
PACKLEN number
Maximum packet length to send, decimal number, between 20
and 94.
94 by default.
PADCHR number
Character to use for padding.
Default is NUL.
PADLEN number
How much padding to send before a packet.
Default is no padding.
QUOTECHR number
What
printable
character
to
use
for
quoting
of
control
characters.
The default is '#' (23H).
There should be no
reason
to change this.
SYNCCHR number
The control character that marks the beginning of
packet.
the
a
Normally SOH (Control-A,
ASCII 1).
There should be no
reason to
change this.
TIMEOUT number
How many seconds the other Kermit wants before being
asked
for
retransmission.
Default is 10 seconds.
RECEIVE parameter
Parameters to request or expect for incoming packets, as
follows:
EOLCHR number
The octal value
of the ASCII character to be used
as
line
terminator for packets, if one is required by the other
system.
Carriage return (0DH) by default.
PACKLEN number
Maximum packet length to send, decimal number, between 20
and 94.
94 by default.
PADCHR number
Character to use for padding.
Default is NUL.
PADLEN number
How much padding to send before a packet.
Default is no padding.
QUOTECHR number
What
printable
character
to
use
for
quoting
of
control
characters.
The default is '#' (23H).
There should be no
reason
to change this.
SYNCCHR number
The control
character that marks the beginning of
the
packet
Normally SOH (Control-A,
ASCII 1).
There should be no
reason to
change this.
TIMEOUT number
How many seconds the other Kermit wants before being
asked
for
retransmission.
Default is 10 seconds.
SHOW
Display current SET parameters, version of Kermit, and other
info.
a
STATUS
Give statistics about the most recent file transfer.
TAKE local-filename
Read and execute Kermit commands from a local file.
X
Exit from Kermit.
14.3 Software Installation
MPX-3.2B and later
terminals.
With these operating
include
file KVER.INS. This
FINISH
and GET. Otherwise,
prime
function anyway).
operating systems support true full duplex TSM
system versions set the LOCALON flag .TRUE. in the
allows the local commands to be used; BYE, CONNECT,
Kermit-MPX is good as a remote server (which is it's
The source is a series of files;
KVER.INS
KDEF.INS
KPROT.COM
KPACK.COM
KFILE.COM
KTIME.COM
KDBUG.COM
KMSG.COM
version include file
Kermit definitions
protocol common
communication parameters of Kermits
I/O package common data
Timing of connect mode
Debug output control
Prompt and version message
GM2KERM.INS
Consolidated include file
(has all above files in it)
main Kermit code
assembler routines for I/O system
batch deck to compile, assemble
and catalog task image
GM2KERM.F77
GM2KERM.ASM
GM2KERM.BAT
The small COM and INS files are found in the larger GM2KERM.INS file.
Use a
text editor to split out the smaller files for the Fortran compiler to
access.
When creating the task, edit the batch deck for appropriate directory
names and
file names.
14.4 Hardware Requirements
The front end of a Gould can be quite trouble-some, requiring some
expertise to
overcome some of the 8LAS shortcomings.
The wakeup character on many system is the '?'.
This is a valid
Kermit
character, but every time it is sent, it breaks the terminal thus
ending the
packet.
To avoid this we change the wakeup character to a non-valid
Kermit
character such as control-E (05H).
The connect mode is rather slow, having an aggregate rate of 300
baud, if
system load is low.
However, we usually like to transfer at 9600 or
19.2k
baud. In one installation, we set the baud rate to maximum. Since the
remote
system is sending characters back at the same high rate, it outpaces the
local
Kermit and we lose the buffer (remember the break) in connect mode.
Note that
this does not affect the server mode where transfers occur at full
channel
speed.
Logging in and activating the server does not require much
system
interaction and dropped characters can be tolerated for the short
duration of
the connect mode required.
This limitation of connect mode
emphasizes the
primary use of Kermit-MPX as a file server, not as an interactive
connect
terminal program.
The other solution is to dynamically change the baud rate from 300 to
9600 and
back. This requires a program to change the baud rate dynamically and a
direct
linkage between computers. The procedure is to log on to the remote's
terminal,
change the baud rate to desired rate, close your local connection,
change the
baud rate of connect port, then reopen connection.
A port characteristic changing program was not built into Kermit
because of
it's system dependence.
All that's needed is a program to translate the
port
characteristics to a 3 byte ACE code used 8LAS.
This may be sent to the
port
using the M.WRITE macro, with the data format inhibit (DFI) bit set
and the
transmit ACE parameter bit set.
See MPX reference manual, volume
I for
details. A good future enhancement.
14.5 Future Work
Install a port setting capability to Kermit.
Improve CONNECT speed. Suggested alternatives could be;
Block reads with 1 sec timeouts and special character detect.
Total interrupt driven.
This requires assembler routine,
and
use of
M.CALL to IOCS since M.WRITE/M.READ does not perform well in
interrupt
driven environment.
Activate Kermit to get higher priority.
Added server
cd
copy
rename
delete
list
dir
This sounds cheap.
commands for file management, particularly;
change directory
copy file
rename file
delete file
list file
directory listing,
These commands are most needed since it's difficult to use volume
manager
at 9600 baud connected.
Correct
error
reporting.
Error packets are not displayed and for
some
reason, sent error packets are not displayed by other Kermits.
14.5 Kermit-MPX Revision List
2.3
Added to SERVER the ability to recognize the I packet.
This
packet
is
up)
used
by
advanced Kermits (at least MS-Kermit 2.27 and
to
initialize
nowait
the
server.
Changed
the method by
which
is
established so that if ECHO was off before Kermit operation,
then it
will remain so afterwards.
Good for network operation.
Corrected
the error reporting code such that the error messages are
produced.
However,
they
can
be very cryptic.
What is needed is a
general
method
of handling text,
like help and error messages,
that
memory is not filled but ready access is available.
L. Tate, SAI, May 1986.
2.2
reporting
Improved
receive/get reliability by moving the
terminal
such
before
the ACK/NAK is sent.
The problem seems to have been
during
the reporting time, the sending flooded the 8-line buffer and
caused
a break,
losing data.
Also corrected error in printl routine
which
wrote to stdout instead of the parameter fd.
L. Tate, SAI, Mar. 1986.
2.1
Correct bug in SUDT.
When use the SVC 1,X'27' which set full
duplex
on a terminal it previously used a trashed file control block.
This
had caused unpredictable results in a lot of the I/O
2
reads pending at once. Correcting this problem allowed
removal of
HIOALL routine. Files to be read are opened with
OPENMODE='R' and
files to be written are opened with OPENMODE='U'.
Also
added the
TAKE command.
L. Tate, SAI, Mar. 1986.
including
2.0
required
Added
the
significant
CONNECT,
GET,
FINISH,
BYE
changes to the io interface.
commands.
This
The local on/off
option
was also part of this.
L. Tate, SAI, Nov. 1985.
1.0
version,
This
Kermit was the direct implementation of the Cyber-170
University of Texas.
L. Tate, SAI, Sept. 1985.
Download