home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
gould2
/
gm2kermdoc.txt
< prev
Wrap
Text File
|
2020-01-01
|
18KB
|
406 lines
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 Yes; MPX 3.2B or later
Remote operation Yes
Transfers text files Yes
Transfers binary files No
Wildcard send No
^X/^Y interruption No
Filename collision avoidance No
Can time out Yes
8th-bit prefixing No
Repeat count prefixing No
Alternate block checks No
Terminal emulation No
Communication settings No
Transmit Break Yes
IBM communication Yes
Transaction logging No
Session logging Yes
Raw upload No
Act as server Yes
Talk to server Yes
Advanced commands for servers No
Local file management No
Handle file attributes No
Command/init files Yes
Printer control 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 requires the use of an eight line asynchronous (8LAS) interface
(sorry ALIM and ADS users) on an IOP. This interface buffers the input,
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 'wake-
up' 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. If the timeout
doesn't work then sending a break should wake it up.
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 Kermit-
MPX 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. When escape
character is typed, interprets next character as follows:
0 (zero) transmits a null
B transmits a BREAK
C close a connection, return to
local Kermit
Q quit logging (if being done)
R resume logging
? show available arguments
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 ?
to see a list of all the available help commands, or consult the
Kermit Users Guide.
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. Take all further commands from
the other Kermit. After issuing this command, escape back to your
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 Kermit server (in
which case you can only use the send command).
SET
Establish system-dependent parameters. You can examine their values
with the SHOW 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 be 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.
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 a 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.
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 a 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.
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 operating systems support true full duplex TSM terminals.
With these operating system versions set the LOCALON flag .TRUE. in the include
file KVER.INS. This allows the local commands to be used; BYE, CONNECT, FINISH
and GET. Otherwise, Kermit-MPX is good as a remote server (which is it's prime
function anyway).
The source is a series of files;
KVER.INS version include file
KDEF.INS Kermit definitions
KPROT.COM protocol common
KPACK.COM communication parameters of Kermits
KFILE.COM I/O package common data
KTIME.COM Timing of connect mode
KDBUG.COM Debug output control
KMSG.COM Prompt and version message
GM2KERM.INS Consolidated include file
(has all above files in it)
GM2KERM.F77 main Kermit code
GM2KERM.ASM assembler routines for I/O system
GM2KERM.BAT batch deck to compile, assemble
and catalog task image
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. This sounds cheap.
Added server commands for file management, particularly;
cd change directory
copy copy file
rename rename file
delete delete file
list list file
dir 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 used by advanced Kermits (at least MS-Kermit 2.27 and up) to
initialize the server. Changed the method by which nowait 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, such that
memory is not filled but ready access is available.
L. Tate, SAI, May 1986.
2.2 Improved receive/get reliability by moving the terminal reporting
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 including 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.
2.0 Added the CONNECT, GET, FINISH, BYE commands. This required
significant changes to the io interface. The local on/off option
was also part of this.
L. Tate, SAI, Nov. 1985.
1.0 This Kermit was the direct implementation of the Cyber-170 version,
University of Texas.
L. Tate, SAI, Sept. 1985.