home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
kermit.columbia.edu
/
kermit.columbia.edu.tar
/
kermit.columbia.edu
/
archives
/
msr313src.zip
/
msvrmx.doc
< prev
next >
Wrap
Text File
|
1988-08-16
|
24KB
|
461 lines
MS-Kermit for the iRMX Operating Systems
INTRODUCTION
Version 2.30 of MS-Kermit, the richest and most widely used implementation of
Kermit for the small computer, has been ported to iRMX 86 and iRMX 286. A DOS
emulator provides enough of the DOS environment to allow the essentially
unchanged MS-Kermit code to run under both of the iRMX Operating Systems.
This document discusses differences between Kermit and MS-Kermit, where Kermit
refers to the iRMX version and MS-Kermit refers to the DOS program. Users
unfamiliar with MS-Kermit may prefer to read this in conjunction with
MSKERM.DOC. Wherever MSKERM.DOC refers to the BACKSPACE key, the RUBOUT or DEL
key is used in iRMX. Kermit's initialization command file, called MSKERMIT.INI
in MSKERM.DOC, is called KERMIT.INI for iRMX. (Actually, it's ".INI." suffixed
to whatever Kermit is named.)
Directions for installation and configuration are included at the end of this
document.
SYSTEM REQUIREMENTS
An iRMX system with the usual logical devices :TERM:, :WORK:, and at least one
of :LP: or :BB: is required. If :LP: doesn't exist, Kermit's printer output
will be discarded. File transfers with a local PC can be accomplished using
the serial port for the iRMX system's terminal. An additional serial port is
necessary for file transfers with a remote computer.
FEATURES NOT IMPLEMENTED
PUSH has not been implemented. Unlike the DOS implementations, there is
nothing that could be done with PUSH that can't be done with RUN. Users
wanting the convenience of PUSH may RUN the variously named cli CUSP available
in iRMX 286 starting with Release 2, or iRMX 86 starting with Release 8.
SHOW MODEM has not been implemented. DSR, CTS, and CD information are not
available from the Terminal Support Code.
VT102, Heath/Zenith-19, and Tektronix terminal emulation, as well as all of the
SET TERMINAL commands have not been implemented. You can use the terminal of
your choice and configure Kermit to work with it.
You cannot transmit a break to the remote computer. Although some serial
communication board's firmware supports sending breaks, the iRMX Terminal
Support Code does not.
PATH AND FILE NAMES
Kermit will accept any iRMX path or file name with one exception. In file
sending, if the right-most path separator is ^, it must be followed by a
redundant /. For example: ^/UNCLE.FILE and ^UNCLE.FILE are the same in iRMX,
but only the first will work in Kermit. MS-Kermit doesn't recognize ^ as a
path separator, so we have to fool it.
Wherever Kermit accepts a wild card file specification, a list of file names
may be used, as long as they are all in the current $ directory.
For example:
SEND READ.ME.FIRST,*X*.A*,*.OBJ,ETC.ETC
works. Try to say that in DOS.
When Kermit is in SERVER mode, operating as the "remote" Kermit, it will
respond to a GET file-name-list from the "local" Kermit.
Kermit will rename incoming files to match DOS naming rules. It's still
basically a DOS program.
The command:
SEND ,
is an extension to MS-Kermit that tells Kermit to send those files unsent from
the previous wild card batch. If you are well into a "SEND *", when you lose
your connection to the remote computer, you can "SEND ,", after you reestablish
your connection, and the SEND will be resumed with the next file from the wild
card batch. The interrupted file will have to be sent individually.
USAGE NOTES
The Kermit TYPE command is the iRMX COPY command. The Kermit DEL command is
the iRMX DELETE command. Kermit will accept any iRMX DIR command. This
applies to SERVER mode response to REMOTE DEL, REMOTE DIR, and REMOTE TYPE, as
well. Examples:
TYPE SAMPLE.FILE TO :LP:
DEL * Q
DIR $ FOR *.P86 L
Continuation can be used with the RUN command. For example:
RUN ATTACHDEVICE T4 AS COM2 &
RUN PHYSICAL
is equivalent to:
RUN ATTACHDEVICE T4 AS COM2 PHYSICAL
Type-ahead from the entry of a DIR, DEL, RUN, SPACE, or TYPE command to the
next Kermit command input prompt is discarded.
SET DEFAULT-DISK will accomplish nothing. Use the Kermit CWD command to change
disk drives and/or directories. The CWD command is not the same as the iRMX
ATTACHFILE command. Use CWD :HOME: where you would simply say ATTACHFILE.
Upon exit, Kermit returns you to the same $ directory you were in when you
called Kermit.
DISABLE SEND completely disables sending a file to the server, rather than
restricting its destination to the server's current directory.
When operating as the remote system, the server returns messages prefixed with
"Kermit-MS".
The kermit action verbs available for SET KEY are \Kexit (exit Connect mode),
\Khelp (Connect mode help), \Kstatus (STATUS command), \Klogoff (suspend
logging), \Klogon (resume logging), \Khangup (HANGUP command), and \Knull (send
the null character out the serial port). These kermit action verbs are best
bound to keys that send characters in the 80-0ffh range or control characters
unused in your dialog with the remote computer. If ^E, for example, need never
be typed to the remote computer, SET KEY \5 \KEXIT would make it a single
keystroke exit from Connect mode. The scan codes for keys whose codes are 80h
through 0ffh are \X180 through \X1ff.
iRMX to iRMX file transfers are more efficient when the receiving Kermit's
display mode is quiet. The Terminal Support Code is much slower receiving than
sending.
Faster machines may need to use SET SEND PAUSE for successful file transfer.
This is especially true when communicating with IBM mainframes. The value to
try is the number of milliseconds for 2 or 3 characters at the baud rate you
are using.
On fast machines, the output from Kermit informational commands, such as
STATUS, may be quick enough to cause slow terminals to send an XOFF. Kermit
disables recognition of output control characters in the input stream.
Consequently, the ^S is ineffective and becomes the first character of the next
Kermit command. Output control character disabling can be overridden with OSC
configuration.
While SET DESTINATION PRINTER works, it is very slow. The line printer driver
hogs the processor. As a result, simultaneous read/write/compute is not
possible. It's probably quicker to receive to disk and then copy to the
printer.
If ^W is used for a paging display while in the command being RUN or in DEL,
DIR, SPACE, or TYPE, the Terminal Support Code will deadlock the system. Users
with iRMX 286 Release 2, Update 2 can obtain the Class B Zaps 110, 112, and 113
from Intel Software Support to fix this problem. iRMX 86 will be fixed in
Release 8. A brute force workaround is described under OSC configuration.
Kermit is a Human Interface command. When invoked from another program, it
should be by sendcommand rather than loadiojob. Kermit's exit status is
returned as the user fault code of exitiojob and is available as the command
exception when Kermit is invoked by sendcommand. If non-zero, the high byte is
40h; the low byte contains the values mentioned in MSKERM.DOC, with an
additional value of 0ffh meaning that Kermit bombed gracefully.
Kermit has the appearance of being a CPU hog; the green light burns bright and
steady. Actually, in the default, Kermit has simply substituted itself for the
idle task.
Kermit uses a scratch file to implement wild cards and REMOTE server commands
that return information. Failure to exit Kermit, such as hanging up in the
Terminal Support Code or re-booting while in Kermit, will result in an fnode
and possibly some blocks becoming allocated but unreferenced. The fnode and
blocks can be freed using DISKVERIFY.
SERIAL PORTS
There are ten serial ports, 0 through 9. Port 0 corresponds to :TERM:. Port
n, for n > 0, corresponds to logical name :COMn: or :Tn:. At startup, Kermit
looks for the first of ports 1 through 9. If none are found, a warning message
is issued and port 0 is used, which is only useful when the other computer is a
PC being used as the iRMX terminal.
It is recommended that logical names for Kermit ports be established either in
R?LOGON or KERMIT.INI. Either attachdevice or attachfile may be used in
R?LOGON. (If physical device t4 is hard wired to a VAX and R?LOGON includes
ATTACHDEVICE T4 AS VAX P then ATTACHFILE :VAX: AS T4 may be added.) In
KERMIT.INI, use RUN ATTACHDEVICE or RUN ATTACHFILE.
If you forget to establish any Kermit ports, call up Kermit without noticing
the no port warning, set the baud rate and connect, you will change the baud
rate of your terminal port. Although Kermit refuses to connect to port 0,
MS-Kermit will have already initialized the port, thus changing its baud rate.
The only recovery is to change your terminal's baud rate to match or re-boot
the system.
When a port whose physical device name is the same as :TERM:'s is selected,
intentional single port operation is presumed and Kermit changes the display
mode to QUIET to prevent screen displays from conflicting with file transfers.
When a port is selected that changes from a one port to two port state, the
display mode is restored to its previous value.
The iRMX Terminal Support Code hangs up when a DTE configured port is active
and you either plug or unplug the RS-232 cable.
The iRMX 86 Terminal Support Code, when operating with unbuffered serial boards
such as the 8251, can accept only a few characters at 9600 baud before losing
some. Kermit can send at 9600 baud through such boards, but receiving is
limited to 4800 baud. It can connect to a remote computer at 9600 baud, but
will drop some characters if they are sent faster than fast typing speed.
iRMX 286 users can use 9600 Baud with the 8274 device driver, but may need to
restrict receive packet size to about 200 on 286/10's. There should be no baud
rate problems on either OS up to 19200 baud with buffered serial I/O boards,
such as the 544 or 188/48. When the improved serial device drivers scheduled
for release in forthcoming OS updates (starting with iRMX 286, Release 3,
Update 1, and iRMX 86, Release 8) are installed, baud rate restrictions will be
reduced, if not eliminated. The new device drivers will improve Kermit
performance significantly on both OS's, especially on faster systems. '386
based systems should achieve 56.8 KB with ease.
iRMX 86 R6 and iRMX 286 R1 Terminal Support Code Problems
For middle and higher baud rates, 1200 and up for the 86/30, the TSC doesn't
overlap read and compute. The consequences are most noticeable in Connect
mode, when nothing will appear on the screen until the either the remote host
stops sending or is XOF'd.
Serial I/O results in system clock slow down. No, it's not relativity, it's
probably great yawning chasms of code enclosed in CLI/STI brackets in the TSC.
To solve these problems, use a later release of iRMX.
SINGLE PORT OPERATION
You can use Kermit on a single port system, if you have another computer that
you can connect directly to it. For example, connect your iRMX system to a
PC's COM port in place of your terminal. Call up Kermit on the PC, set the
baud rate to match your iRMX system, and connect to it. Use the PC as the iRMX
terminal. If there are no logical names :COMn: and :Tn:, where 0 < n < 10,
Kermit will automatically select port 0 and change its default display mode to
"quiet", which is necessary for one port operation.
If you want to change the baud rate (see above, under serial ports), SET BAUD
before issuing the SERVER command. The baud rate change won't take effect
until the SERVER command. After issuing the SERVER command escape back to the
PC's Kermit, resetting its baud rate, if necessary, and use SEND or GET for
file transfer and the REMOTE command for any information you want from the iRMX
system. When done, issue the LOGOUT command, which causes Kermit on iRMX to
exit to the system. The terminal's baud rate and other attributes will be
restored to their initial values. If you want to continue using the PC as a
terminal, you may have to change its baud rate back before reconnecting.
In one port operation, Kermit refuses to CONNECT. You may alternate use of
port 0 with other ports and Kermit will change display modes for you
automatically.
INSTALLATION
Kermit and, if you want to do wild card sends, the auxiliary WC command should
be copied to one of the default search directories. The logical choice is
:UTILS:, though they both needn't be in the same directory. If all you have is
the source for WC, WC.P86, its comment header contains SUBMIT file contents to
make the command for both OS's. The WC command isn't otherwise totally
useless. Try entering "WC ?able,movie*" as an alternative to "DIR $ FOR
?able,movie*".
CONFIGURATION
Configuration is optional. While the primary configuration commands to
consider for initial installation are BUFILL and OSC, this section contains
enough information on Kermit operation to warrant an initial reading.
The configuration file, KERMIT.CFG (actually it's ".CFG" suffixed to whatever
you call Kermit), follows the rules for Kermit TAKE files with one
configuration command per line. Kermit looks for KERMIT.CFG first in your
default directory, $. If not found, it looks in the directory from which
Kermit was loaded. Suppose you install Kermit by copying it to :UTILS:TOAD.
The search would be, first :$:TOAD.CFG, then, :UTILS:TOAD.CFG. A system
requiring configuration for different brand terminals or for different remote
hosts can configure them all by using a different default directory for each.
In the following configuration command descriptions, upper case is used for
literal keywords, n refers to a decimal number, and \n refers to a number in
Kermit backslash notation, i.e. "\" followed by an optional case insensitive
radix letter followed by the number. Radix letters are D for decimal, X for
hexadecimal, and O for octal. If omitted, the radix defaults to decimal.
OSC string
OSC can be used to configure Kermit's screen displays to your terminal, solve
the fast system/slow terminal problem, prevent the ^W deadlock by brute force,
or change Kermit's default terminal attributes. If your terminal is VT100
compatible and is set to send space or no parity or you use SET DISPLAY SERIAL
or QUIET and you can live with the "2J01;01H" at the beginning of the STATUS
command's display, it is unnecessary.
First you must decide if the regular screen formatted display during file
transfers is what you want. The iRMX Terminal Support Code is reluctant to
permit transparent input when translation is enabled. As a consequence, you
have the choice between a decent screen format during file transfer, or a fully
functional keyboard. When you choose the acceptable screen format, iRMX holds
up the escape key for one extra keystroke, and if ^E, ^X, or ^Z are needed for
terminal configuration (several terminals use ^Z for clear screen), they won't
work as escapes during file transfer. Also, file transfer is quicker with a
SERIAL or QUIET display. On the other hand, opting for the keyboard results in
a hideous screen during file transfer, unless you SET DISPLAY SERIAL or QUIET.
The string is a valid and complete OSC sequence WITHOUT the ESC [ lead-in or
ESC \ terminator (see iRMX 86 Release 6 or iRMX 286 Release 1, BIOS Appendix F;
or iRMX 86 Release 7 or iRMX 286 Release 2, Device Drivers User's Guide,
Section 2.3). Any number of OSC commands may be used as long as each is
complete and independent.
The following example illustrates an OSC command sufficient for Kermit screen
displays. It configures Kermit for the Qume QVT102, Televideo 910 Plus, 912,
920, 925, & 950, and Zentec Zephyr & Cobra terminals. Let's look at it to see
how OSC configuration works.
OSC T:T=1,F=1,U=32,E6=93,E30=75,E31=116
T=1 enables translation
F=1 vertical cursor coordinate precedes horizontal
U=32 value for cursor row or column 1. 32 is the code for space
E6=93 translate cursor positioning to ESC =
E30=75 translate clear screen to ESC +
E31=116 translate clear to end of line to ESC T
Referring to the manual for your terminal and BIOS Tables F-4 and F-5 or DD
Tables 2-3 and 2-4, edit the above to match your terminal.
If your terminal sends even, odd, or mark parity, include "T:R=0" in your OSC
to strip parity from terminal input. In this case you will not be able to use
SET KEY for characters greater than 7fh, but then, you couldn't anyway.
You can enable XON/XOF at Kermit command level with the OSC "C:O=0". If you
do, you will lose ^W (erase word) at Kermit command level. It also prevents
the ^W deadlock. You can retain Kermit's ^W by moving iRMX's ^W to another key
with a control character redefinition OSC. Since control character definitions
can not be determined, Kermit can not restore them. If you want them restored
after exiting Kermit, you must type the control character redefinition OSC
manually, or copy a file containing the OSC.
The OSC "T:C23=0" provides brute force prevention of the ^W deadlock by
disabling its function altogether. If you want it restored after exiting
Kermit, you must type the OSC "ESC]T:C23=4ESC\" manually, or copy a file
containing it.
TRANSLATE
By default, Kermit disables TSC translation when you connect to the remote
computer. The TRANSLATE command enables TSC translation in Connect mode. It's
possible to make your non-VT100 terminal behave like a VT100 if your
mainframe's screen editor uses a subset of VT100 escape sequences that the TSC
can translate or simulate.
ESCC
The ESCC command causes Kermit to send an ESC c, the VT100 reset, to your
terminal on exit. You may want to use this if you have a VT100 compatible
terminal or if you are unjustifiably optimistic about the Terminal Support
Code. It's use has been known to deadlock Release 6 when TSC translation is
enabled.
BUFILL \n
Kermit's serial input is content paced against a background fill whose default
value is 0ffh. Some computers and intervening communication equipment (modems,
switches, port selectors, etc.) send even or odd parity NUL or DEL as idle
characters. After baud rate and parity settings, this is the most common cause
of communication failure in Kermit. The telling symptom of a buffer fill
problem is the appearance of hanging up some time after connect, after which
local escape followed by reconnect clears the hang up -- even if for only one
character.
If 0ffh (even parity DEL or rubout) is sent by any equipment, you will have to
change the serial buffer fill character. Values to try include \X7f, \X80, and
\0. If there are several black boxes between the iRMX system and the remote
computer, each may use a different idle character. Multiple tries may be
necessary to find a workable buffer fill character. If none of these work,
you'll have to find a character never sent. The maximum value is 255.
If Kermit suddenly stops working after some time of successful operation, a
little research will probably show that the powers that be did something like
change a data switch from brand X to brand Y.
CIFILL \n
Terminal input is content paced against an 80h background. If your terminal
sends 80h, use CIFILL to change the default. See the section above for
suggested values.
PRIORITY \n
By default, Kermit sets its priority to 254 to guarantee more (numerically
lower) priority for its I/O tasks regardless of how the system it's running on
has been ICU'd. This permits it to stay out of the way in multi-user systems
and in background operation. The maximum value is 254. If Kermit is included
in round-robin scheduling, it will use its full time slice.
SUB-PACK n
This parameter tunes performance for file sending. Send packets are sent in
bursts of default size 60. This optimizes send performance for an 86/30 at
19.2 KB with 1000 byte packets. Decreasing its value increases iRMX overhead,
while increasing it reduces write/compute overlap. Factors effecting the
optimal value include the CPU board, clock rate, baud rate, and packet size as
well as the performance of the remote host. The transmission time/sub-packet
size function has a broad minimum.
CO-DELAY n
This parameter tunes Connect mode performance. In Connect mode, output to the
terminal is allowed to accumulate and is written every n system clock ticks.
The default value is 6, nominally 60 ms. Increasing the value improves Connect
mode performance at the expense of herky-jerk terminal output.
MAX-BAUD n
Users providing Kermit for clients may wish to limit the acceptable baud rate
choices to the most restrictive of their iRMX system, the computer it connects
with, or intervening communication equipment. Select the decimal number from
one of Kermit's baud rates. The Kermit user cannot change the baud rate higher
than the one specified. Note that baud rates 45.5, 134.5, and 113.6K are not
available, because they cannot be expressed in one word.
NO-MODEM
Disables modem control. It's been reported that enabling modem control causes
system problems with early, beta test 546, 547, and 548 board firmware. If you
use such boards for serial communication, use this configuration option until
your firmware is updated. The HANGUP command will not work when this option is
used.
DTR-TIME n
The duration, in milli-seconds, that DTR is held down by the HANGUP command.
The default is 500.
For the HANGUP command to work, all of the following must be true. The port
must be configured DTE, the serial board must support modem control, and the
system must have been ICU'd with modem control enabled for the DTE port(s). A
null-modem cable with a DCE port will not permit DTR control.
ECHO ON or OFF
ECHO ON causes subsequent CFG commands and TAKE file commands, including those
from KERMIT.INI, to be displayed. This is useful for associating cryptic CFG
error messages with the offending line. ECHO OFF stops CFG and TAKE file
echoing.
KILL \n
Creates a "kill Kermit" task associated with the terminal input character
specified by the parameter, usually an unused control character. Useful for
developers, incorporators, and anyone trying to figure out how to connect a DTE
port to their remote computer for the first time. This will not solve the ^W
inspired TSC deadlock. Only killing the job from another terminal or warm boot
will do.