home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Black Box 4
/
BlackBox.cdr
/
comfiles
/
kerm311.arj
/
KERMIT.BWR
< prev
next >
Wrap
Text File
|
1991-09-19
|
51KB
|
947 lines
File MSKERM.BWR MS-DOS KERMIT 3.11 "BEWARE FILE" September 1991
BUGS, LIMITATIONS, AND HINTS
This file applies to version 3.11 of MS-DOS Kermit for the IBM PC and PS/2
families and compatibles. If you are experiencing problems with MS-DOS Kermit,
please read this file first to find out the status of the problem. It might be
known already, and a workaround listed here.
The user manual for MS-DOS Kermit 3.11 is the book "Using MS-DOS Kermit",
Second Edition, by Christine M. Gianone, published by Digital Press, Bedford,
MA (1991), order number EY-H893E-DP. Call 1-800-343-8321 (toll free, USA) to
order, or order by mail from Columbia University.
Certain features were added to the dialing directory and the TCP/IP
support after press time for the second edition of the book. For
greater details about these features, see the MS-DOS Kermit help file,
KERMIT.HLP or MSKERM.HLP. For TCP/IP, also see the section at the
end of this file.
****
Problems noted since the publication of the distribution diskette on
September 7, 1991, are listed at the end of this file.
****
MS-DOS Kermit 3.11 has been successfully tested with PC-DOS 2.0, 3.0, 3.30,
4.0 and 5.0 on a wide variety of IBM PCs, XTs, PC/ATs, Portable PCs, PS/2s,
and compatibles. DOS 2.0 or later is required for basic operation, and 3.30
or later is required for certain features such as code page switching.
Please report problems via e-mail to Info-Kermit@watsun.cc.columbia.edu or to
KERMIT@CUVMA.BITNET, or call (212) 854-5126, or write to Kermit Distribution,
Columbia University Center for Computing Activities, 612 West 115th Street,
New York, NY 10025, USA.
Certain bugs that surface after the release of the software are correctable
by runtime patches that can be installed from your MSKERMIT.INI file. Contact
Kermit Distribution at Columbia for further information.
PROBLEMS WITH KERMIT UNDER MS-DOS 5.0
Reportedly, Kermit loses incoming characters at high baud rates (19200, 38400,
etc, depending on CPU model). The current speculation is that DOS 5.0's new
memory management functions are causing interrupts to be lost. If the serial
port data-ready interrupt is not delivered to Kermit, Kermit never knows that
a character has arrived and therefore does not read it.
PROBLEMS WITH KERMIT UNDER MICROSOFT WINDOWS, DESQVIEW, OS/2, ETC
Although MS-DOS Kermit can work in these environments, and even takes advantage
of many of their features, it does not have a "graphical user interface". You
still have to type commands to the MS-Kermit> prompt or execute them from
command files with the TAKE command.
You can't use Kermit under Windows 3.0 in Windows mode (i.e. in a window)
unless you are running Windows on a 386-class machine in Enhanced Mode. This
is a restriction of Windows 3.0 -- Microsoft changed the rules. Kermit works
in a window on all PCs (if they have enough memory) under Windows 2.0.
To use Kermit's TCP/IP support under Windows 3.0, you must set up the
KERMIT.PIF file to "Lock Application Memory" (Enhanced-Mode Advanced options
screen).
Reportedly, a third-party communication port driver (such as TurboComm) is
required to run Kermit as speeds greater than 9600 bps under Windows 3.0. A
16550a UART is needed too, for its FIFO buffering. Other reports indicate that
high speed operation is possible after all, and suggest looking at the Windows
files SYSIN*.TXT for information about SYSTEM.INI settings related to
communication ports, particularly COMxBuffer and COMBoostTime. The real answer
is a combination of software, BIOS, machine architecture, serial port hardware,
which drivers and TSRs are loaded, system load, and Windows settings.
Under Microsoft Windows/286 v2.03 there may be problems with memory allocated
from DOS being corrupted during Windows' operations. One symptom is that macro
definitions will turn into garbage (random characters). This has not been
observed under Windows/386 or Windows 3.0.
When running MS-DOS Kermit under any version of MS Windows, specifying a ",P"
at the end of a serial port setting in WIN.INI or in a MODE command can cause
loss of characters from the serial port. Remove the ",P" from the setting.
Reportedly, MS-DOS Kermit doesn't work under OS/2 2.0 BETA unless you direct
OS/2 to load DOS in low memory.
INCOMPATIBILITIES BETWEEN MS-DOS KERMIT 3.11 and 3.00/3.01:
Macro arguments are now "stacked", saved at each macro entry and restored upon
exit, so that calling macro B from within macro A does not destroy macro A's
arguments. Note: this changes the operation of the LOOKUP macro described in
the first edition of "Using MS-DOS Kermit" (version 3.11 uses a completely
different technique for dialing directories).
Macro definitions in 3.11 can be longer. Long macros that work in 3.11 won't
work in earlier releases.
The new macro argument \%0 now holds the name of the macro.
The REPLAY command now allows screen rollback, dump, print, etc. At the end
of the replay file, use regular terminal emulation keys (PgUp, Ctrl-End,
PrintScreen) to invoke these functions, and use Alt-X, Ctrl-]C, or Ctrl-C to
get back to the prompt. Previously, any keystroke would return to the prompt.
If an INPUT command is interrupted by pressing any key, the status is set to
FAILURE, just as if the command had timed out. If you need to know whether an
INPUT failed because it timed out or was interruped, you can surround it with
SET ALARM and IF ALARM commands, e.g.
SET ALARM 30
INPUT 30 Login:
IF SUCCESS GOTO OK
IF ALARM ECHO INPUT Interrupted from keyboard
IF NOT ALARM ECHO INPUT Timed out
The ECHO command no longer requires a \13 on the end. It supplies both CR
and LF.
The WRITE command, introduced in version 3.00, no longer accepts "objects"
like DATE, TIME, etc. Now it is more like an ECHO command that includes a
destination specifier: WRITE SCREEN, WRITE SESSION, etc. The argument in all
cases is a line of text. This text may contain any kind of backslash codes or
variables, including the new (to version 3.10) built-in \v(xxx) variables like
\v(time), \v(date), etc. Old-format WRITE commands will produce undesired
results. For example WRITE SCREEN TIME FOO will print "TIME FOO" on the
screen rather than something like "12:34:56 FOO".
BYE, FINISH, or LOGOUT commands that fail (e.g. because the remote server has
these operations disabled) no longer behave as if they had succeeded.
Text and graphics screens can now have separate colors.
Host-generated autoprint sequences work differently. In version 3.01 and
earlier, MS-DOS Kermit copied characters to the printer as they arrived,
regardless of the screen dimensions. In version 3.10 and later, Kermit's
action follows that of a real VT terminal: it waits until the cursor moves off
the line with a linefeed or formfeed, or the line wraps. If your screen does
not support 132 columns, Kermit wraps long lines -- even those destined for the
printer during autoprint sequences -- at 80 columns. If you need to direct
long lines to your printer under these circumstances, use transparent print
instead, or else LOG SESSION PRN.
The Alt-minus key no longer "toggles" among all of Kermit's terminal types.
As of version 3.11, Alt-minus switches between the Tektronix graphics screen
and the text screen for the current text terminal type (e.g. VT320).
DIALING
The DIAL command and dialing directory have been totally redone for MS-DOS
Kermit 3.11. See KERMIT.HLP (MSKERM.HLP) for a description. If you need to
dial a non-Hayes compatible modem, write a dialing script for it, and change
the definition of the _modem variable in MSKERMIT.INI.
COMMUNICATIONS
On IBM PCs and PS/2s with IBM asynchronous adapters, Kermit can be used at
speeds up to 57600 bps under DOS (under Windows or DesqView, the maximum speed
is probably lower). For 115200 bps to work, a very short shielded cable is
required, and the async adapters of the two machines must be in perfect tune.
Some VAX serial port interfaces are out of tolerance at 19,200 bps and faster.
If Kermit loses incoming characters during terminal emulation because of
serial port buffer overruns or network packet loss (which it can detect), it
beeps (replaces the lost character(s) with a Control-G).
Although high speeds can be used for file transfer, the maximum speed for VT
and Tektronix terminal emulation might be lower, depending on your PC model and
configuration. If your speed is set too high, the symptom might be lost or
garbled characters or graphics images on the screen or beeps sounding when
Kermit detects a data overrun. Normally flow control prevents these problems,
so use it if you can. Printing while in CONNECT mode needs flow control to be
active.
MS-DOS Kermit does not attempt to monitor the communication line for carrier
loss during terminal emulation or file transfer (but you can SHOW MODEM or
SHOW COMMUNICATIONS to inquire about CD, DSR, and CTS). The script command
WAIT permits sensing carrier presence in a script program.
The SHOW MODEM and WAIT commands work right only if your modem or other
communication device is configured to raise and lower the DSR, CTS, and CD
signals appropriately, and the cable that connects your PC to the modem passes
these signals through. For some modems, the factory setting is to always keep
CD on, even if there is no connection. Consult your modem manual.
For RS-232 devices, the HANGUP command (and Ctrl-]H in CONNECT mode) works
only if the cable that connects your PC to the communication device passes the
DTR signal through, and if the communication device itself is configured to
hang up or otherwise terminate the connection when the DTR signal is lowered
by the PC. For some modems, the factory setting is to ignore DTR transitions.
Consult your modem manual.
When communicating across some network pathways, the longest burst of
information tolerated from the PC can be rather short. For example, the LAT
path with SET PORT DECnet has a limit of 256 bytes and the SET PORT TES path
has a limit of 512 bytes in a burst. Longer bursts can cause the network
software to drop the connection. This is important when sending files, and if
sliding windows are active, the sum of all the packets in the window (packet
length times the number of window slots) must be shorter than the above limits.
This is not a Kermit problem.
TERMINAL EMULATION
Kermit's VT320/340 emulator lacks the following features:
. Smooth scroll
. Downloadable soft fonts
. ReGis graphics (VT340/330)
. Dual sessions in split screens (VT340/330)
. Local screen editing and block transmission (for security reasons)
. ENQ/Answerback (also for security reasons)
. True double height/width characters (these are simulated)
. Selective erasure (as a character attribute, a formatted screen item)
. Many of the exotic and rarely known features of the DEC VT340/330
series: mostly formatted screen and graphics operations highly specialized
to DEC hardware.
On certain "national keyboards", such as the German keyboard, Kermit's normal
escape character, Ctrl-] (Control-Rightbracket) does not appear to work. This
is because IBM changed the way certain control characters must be typed on
these keyboards. On the German keyboard, Ctrl-] is produced by holding down
the Ctrl (Strg) key and pressing the + (plus) key. MS-DOS Kermit has no way
of knowing this, and continues to display the escape character as "^]".
If VAX/VMS thinks you have a VT220 or VT320, it sends 8-bit control sequences.
Kermit does not understand them unless you SET TERMINAL BYTESIZE 8. The
symptom is the appearance of fragments of escape sequences on the screen and
wrong cursor positioning, and possibly fractured tab settings, particularly
during EVE sessions. You can prevent VMS from sending 8-bit control sequences
(for example, if you really do not have an 8-bit connection) by giving the VMS
command SET TERMINAL /NOEIGHT. For VAX/VMS, you should also use Xon/Xoff flow
control in both directions (SET TERM /TTSYNC /HOSTSYNC on VMS).
In VT100/200/300 emulation on the IBM family, receipt of the ESC [ 4 m (turn on
underscore) command results in reverse video rather than underscore on IBM CGA,
EGA and other color monitors. IBM display adapters have one less attribute
than DEC monochrome terminals, and in addition the two systems choose to
intensify dots differently (IBM does foreground/character dots only, whereas
DEC can illuminate any dot).
SET TERMINAL COLOR 1 [3xx 4xx] (used to make the foreground color bright), if
issued when SET TERMINAL SCREEN REVERSE is in effect, results in reverting to
normal video.
If certain incomplete escape sequences are received during terminal emulation,
Kermit can hang. For example, Operating System Command. Kermit is waiting
for the string terminator that never comes. This usually happens because of
noise on the communication line. Reset the terminal emulator by pressing ALT =
(ALT and the equals sign key) which is default key binding of keyboard verb
\Kreset.
Kermit does not support 132 column mode on on the IBM monochrome adapter, CGA,
MCGA, or EGA. However, if your display adapter handles 132 columns in text
mode, and Kermit knows how to control it, Kermit can switch automatically
between 80- and 132-column mode upon host command or SET TERMINAL WIDTH { 80,
132 }. Otherwise you have to provide external commands in the files
COLS80.BAT and COLS132.BAT. Kermit does not support other widths (except, to
a certain extent, 40).
Kermit assumes 25 screen lines, but can adapt itself to other lengths to a
certain extent if it knows how to get this information from the video adapter
(but there still may be some confusion about screen length when switching
between text and graphics modes, or between 80 and 132 column mode, or
escaping back from CONNECT mode, due primarily to lack of reliable or
consistent information from the many different kinds of video adapters).
The following video boards are directly controllable by Kermit for changing
screen width or length:
ATI EGA and VGA Wonder (NEW)
AST, Dell, and other boards based on Western Digital VGA boards (NEW)
AT&T / Olivetti
Everex Viewpoint EV-659, FVGA-673, EV-678, Micro Enhancer Deluxe (NEW)
IBM XGA (NEW).
Paradise AutoSwitch EGA Mono (NEW)
Paradise Professional (NEW)
Paradise VGA Plus 16 (ROM BIOS 003056-xxx firmware) (NEW)
Paradise VGA Plus (ROM BIOS 003056-xxx firmware) (NEW)
Paradise VGA Professional (ROM BIOS 003056-xxx firmware) (NEW)
Paradise VGA1024 (NEW)
STB VGA/EM (Tseng TVGA)
STB VGA/EM Plus (Tseng 4000), VGA/EM-16, VGA/EM-16 Plus (NEW)
Tseng Labs EVA board with 132-column kit installed
Tseng Labs UltraPAK mono/Hercules with 132 column modes
Video 7 Vega Deluxe with 132X25.COM driver installed and Video 7 VGA
For other boards, create COLS80.BAT and COLS132.BAT files. If your video
board and monitor cannot do 132 columns in text mode, neither can Kermit.
On certain configurations that do not support 132 column mode at all (for
example a PS/2-50 with VGA), attempts to SET TERM WIDTH 132 might cause an
infinite loop of executing COLS132.BAT (if it exists). This problem is not
reproducable. Workaround: delete COLS132.BAT if you don't need it.
If you have a monitor with fixed horizontal frequency but a video adapter that
Kermit knows how to switch into 132 column mode, you will see only garbage on
your screen whenever Kermit switches it to 132 columns. There is presently no
way to tell Kermit to ignore the "switch to 132 columns" escape sequence.
Solution: if you buy a 132-column-capable video adapter, make sure you have a
compatible monitor.
To get properly formatted screens during terminal emulation, you must also
inform the remote host of your screen width and length.
So that key translation and macros can work on both IBM and non-IBM compatible
PCs, Kermit uses the system BIOS to obtain key scan codes. But the IBM BIOS
does not produce scan codes at all for certain keys, and may produce duplicate
scan codes for others. Num Lock, Scroll Lock, Pause are examples.
When you PUSH to DOS (including when you use Kermit's RUN command), and you
have XON/XOFF flow control enabled, Kermit sends an XOFF (Ctrl-S) to the host
when you leave, and XON (Ctrl-Q) when you return. This is good behavior, as
it prevents data transmitted by the host while Kermit's back was turned from
being lost. However, if you do this while using the EMACS text editor on the
host, the Ctrl-S will be interpreted as a Search command, and the Ctrl-Q as a
Quote command. When you return to EMACS, type several Ctrl-G's to get out of
the Search command.
Similar comments about sending Xoff and Xon apply when Kermit is commanded
to change its screen size between 80 and 132 columns. For example, if your
host insists upon seeing a particular character to begin a session, but not
an Xoff/Xon pair, then use OUTPUT <the special character> before starting
Connect mode with a screen width different than that at the Kermit prompt.
Session logging can be turned on using the LOG SESSION command, and it can
be toggled on and off during terminal emulation by using whatever keys are
associated with the verbs \Klogoff and \Klogon. One user stated the
requirement to enable a session log, but to have it initially toggled off.
This can be done as follows (using the F1 and F2 keys as examples):
SET KEY \315 {\Kloginit} ; F1 to turn on log
SET KEY \316 \klogoff ; F2 to turn log off
DEFINE loginit log session, set key \315 \klogon, define loginit
The session log is written to disk by DOS. The frequency with which DOS
updates this file is governed by the BUFFERS= line in your CONFIG.SYS file
(see your DOS manual). If you allocate a large number of buffers in
CONFIG.SYS, disk operations occur infrequently and this improves performance
of Kermit's disk accesses. If you need to have the session log updated more
frequently to minimize the loss of data when there is a power failure, you can
do this (at the expense of efficiency) by allocating a smaller number of
buffers in CONFIG.SYS.
GRAPHICS TERMINAL EMULATION
If your display adapter lacks sufficient memory (as do CGA and the early 64K
EGA boards), then when you toggle away from a graphics screen, or type the
connect-mode escape character (Ctrl-]), the graphics image is lost.
Furthermore, certain graphics images may be overlaid with vertical stripes on
small (64K) EGA systems.
PS/2 Model 25 and 30 MCGA adapter is used in low-resolution CGA mode by
default, but images may be elongated or truncated. Hi-resolution graphics can
be done (as of version 3.11) via SET TERM GRAPHICS VGA, but the PC might not
be able to keep up at speeds above 9600 bps.
When you type the escape character (normally Ctrl-]) while in Tektronix
graphics mode, the screen goes back to text memory. Then when you type the
argument character, the graphics screen reappears (unless the argument was C or
P). Ctrl-]F will not file the graphics screen, but rather the text screen,
because that's the screen that's showing after type the Ctrl-] key. To file
the graphics screen (in TIFF format), use Ctrl-End (which has the Kermit verb
\Kdump assigned to it by default).
You can't dump the Tektronix screen while the GIN-mode crosshair cursor is
active. When the crosshairs are up Kermit's keyboard translator is not
active. Key strokes (of regular typewriter keys) or mouse actions are used to
transmit the crosshair coordinates. If you press a non-typewriter key, Kermit
just beeps.
Kermit does not emulate a particular kind of colored graphics terminal, such
as a DEC ReGIS display or a Tektronix 41xx or 42xx series. However, it can be
used for color graphics by mixing ANSI color-setting escape sequences with
Tektronix or Sixel commands. This requires graphics software vendors adding
support for MS-DOS Kermit graphics to their packages (so far, WordPerfect Corp
has done this for their host-resident products). There is at least one
ReGis-to-Sixel converter on the market: RETOS, a DEC product for VAX/VMS.
Problems may occur when using Kermit with host-resident (VAX/VMS) versions of
WordPerfect because the color palette report sent by the "terminal" upon
request of WordPerfect is very long. If the host is not configured properly,
parts of the report will be lost because of overruns on the VMS side. SET
TERM /HOSTSYNC and /TTSYNC are required by WP/VMS. Even then intervening
communication boxes (e.g. terminal servers), can become overloaded with the
200++ byte response unless the server is configured to handle information of
that length or to do flow control effectively.
PRINTER SUPPORT
(Shift-)Printscreen can cause the PC to hang if there is no attached printer.
This is a BIOS feature, Kermit never receives the command. It occurs most
frequently with a printer interface that has nothing plugged into it. If this
happens during terminal emulation, try pressing Alt-= (hold down Alt and press
the "=" key) several times to reset the terminal emulator.
Serial printers are not directly supported. Kermit does not do flow control
between itself and a serial printer. To use a serial printer effectively, you
must have a driver for it that takes care of flow control.
Transparent printing is started when the host sends the sequence ESC [ 4 i,
and stops when the host sends ESC [ 5 i. Transparent printing passes all
characters, including escape sequences, that arrive at the port directly to
the printer without translation (but strips off the parity bit if Kermit's
parity is not NONE). If character translation is desired, or it is desired
not pass screen-control escape sequences to the printer, use Autoprint rather
than Transparent print (ESC [ 0 i, ESC [ ? 4 i, ESC [ ? 5 i). In that case,
characters are translated to the current IBM code page. If your printer
doesn't support your IBM code page, you need an external utility to translate
from the PC code page to the printer's character set. You can use SET PRINTER
xxxx to capture Transparent print or Autoprint data into a file.
INTERNATIONAL CHARACTER SETS
Chapter 13, "International Character Sets," of the first printing of the first
edition of "Using MS-DOS Kermit" does not mention that in order to use code
page switching, you also need to have a statement like:
DEVICE=C:\DISPLAY.SYS CON:=(EGA,437,(4,2))
in your CONFIG.SYS file. This was corrected in the second printing of the
first edition. Refer to your DOS manual for details.
It is possible to use SET TRANSLATION INPUT to define new terminal character
sets, that is new translations between whatever codes the host happens to be
sending and whatever characters are loaded in the PC's character generator.
In MS-DOS Kermit 3.01 and later, this mechanism has been extended to work with
character sets in which the C1 range (80h-9fh) contains graphic, rather than
control characters, but only if you SET TERMINAL CHARACTER-SET TRANSPARENT.
MS-DOS Kermit 3.01 changed the strategy used by SET TRANSLATION INPUT and
which is described in the first edition of "Using MS-DOS Kermit". In version
3.00 and earlier, this command worked like this:
SET TRANSLATION INPUT \xxx \yyy
where \xxx is the code for the character received at the communication port,
and \yyy is the code for the character to display on the screen. In version
3.01 and later, \xxx is the code for the character that would be displayed on
the screen in the current code page after normal translation, rather than the
untranslated character that arrives at the port. Example: modifying the
built-in Swedish character set to show character values 64, 94, 96, and 126 as
ASCII rather than Swedish characters (using PC code page 437) is now done like
this:
SET TERMINAL CHARACTER-SET SWEDISH
SET TRANSLATION INPUT \144 \64 ; What would normally be E-acute is atsign
SET TRANSLATION INPUT \154 \94 ; U-diaeresis is circumflex
SET TRANSLATION INPUT \129 \126 ; u-diaeresis is tilde
SET TRANSLATION INPUT \130 \96 ; e-acute is accent grave
SET TRANSLATION INPUT ON ; Enable translation
MS-DOS Kermit determines the current file character set, and it decides which
translations to apply to the current terminal character set, by asking DOS
what the current code page is. Code pages exist which are not distributed in
the USA, such as CP861 for Icelandic and CP862 for Hebrew. It is said that
DOS incorrectly reports these code pages to be CP437. Furthermore it's not
clear what the DOS code page reporting mechanism would be, if any, for
otherwise IBM-compatible PCs custom fitted with special character sets such as
Cyrillic, Arabic, etc, so in these cases too Kermit assumes CP437 and again,
there is no current method for the user to load the necessary character set
translation tables for file transfer.
Code page switching is reportedly not possible on old PC/ATs that have
small-memory (64K) EGA boards, and it is not possible in DOS versions earlier
than 3.30.
The right hand portion (GRight) of the Latin1 terminal character set won't be
accessed by SI/SO locking shifts unless Kermit first receives the escape
sequence ESC-A (Escape, dash, uppercase A) from the host. This is the way
Digital Equipment Corporation designed the VT300 terminals. The initial state
is G0 = G1 = ASCII, G2 = G3 = Latin1, and SI (Control-N) shifts the GLeft
pointer from the G0 to the G1 set. The escape sequence ESC-A puts Latin in
G1.Alternatively, the right hand portion is accessable by using Single Shift
2, ESC N, or Locking Shift 2, ESC n, before the text character(s). You can
also designate Latin-1 to G1 (so that SO/SI will work) by hand with the MS-DOS
Kermit command:
SET TERMINAL CHARACTER-SET LATIN1 G1
(This feature is new to verstion 3.10.) Kermit's terminal emulator sends
characters with their 8th bit set as ESC N <character without the high bit> if
parity is other than NONE.
To get international characters to display correctly on the DEC VAXmate during
terminal emulation, try SET TERMINAL CHARACTER-SET LATIN1 G2.
LOG SESSION records the characters that arrive at the serial port, before
translation by either Kermit's built-in terminal character set translation
tables or by user-specified SET TRANSLATION INPUT commands (versions 2.32/A and
earlier did apply the SET TRANSLATION INPUT command before logging to disk).
This allows the REPLAY command to work correctly, but it prevents special
characters from being logged after translation to the PC's own character set.
Screen dump (Ctrl-End or Ctrl-]F) and autoprint, however, record the translated
characters.
SET TERMINAL CHARACTER SET is effective only for text screens, not for graphics
screens. This is because the fonts for all the special characters have not
been designed yet (and may never be, and even if they are, they would require a
great deal of memory).
International characters in macro names are not case independent.
Case-independent string matching operations (e.g. SET INPUT CASE IGNORE,
IF EQUAL xxx yyy) won't work with international characters.
COMMAND PROCESSING
A command file that contains lines or commands that are too long for DOS's line
buffer can hang your PC.
Commands in TAKE-files or MSKERMIT.INI can be continued by including "-" as the
last character on the line, but NOT if the line ends with a trailing comment.
In other words, you can't have a trailing comment on a continued line. If you
need to end a line with a dash, but this dash is to be part of the command
rather than a continuation symbol, then use \45 instead or put a comment AFTER
the dash.
Trailing comments can be used only in command files. All text starting with
the first semicolon through the end of line is ignored. If you need to include
an actual semicolon in a command, precede with a backslash (\;).
The name and password that you specify in SET SERVER LOGIN must be matched
exactly by the ones in REMOTE LOGIN. Alphabetic case matters. If you need to
include spaces within the username, password, or account field of the REMOTE
LOGIN or SET SERVER LOGIN commands, surround the field with {braces}.
FILE TRANSFER
SET EOF CTRL-Z, when used with text files which actually contain Ctrl-Zs, might
result in gaps or truncation in the vicinity of the Ctrl-Z. This is an
artifact of DOS file i/o.
When using Kermit through a terminal server (particularly those that execute
the TCP/IP Telnet protocol), or directly through a SET PORT TCP connection, it
is sometimes necessary to SET PARITY SPACE in order to transfer files. It is
also often impossible to use very long packets with terminal servers. Try SET
RECEIVE PACKET-LENGTH 80, working up or down to the longest length that works.
REMOTE TYPE and other REMOTE commands resulting in an error "Unable to open
CON": insufficient FILES= in CONFIG.SYS. FILES= should be at least 20.
MS-DOS Kermit uses the program named in the DOS Environment command line
starting as SHELL= as a replacement for COMMAND.COM. Such a line is seen by
typing SET at the DOS prompt, and it is not associated with the SHELL= line
appearing in file CONFIG.SYS.
The MS-DOS Kermit command REMOTE SET BLOCK-CHECK will generally have no effect
upon a remote server. SET BLOCK-CHECK locally within MS-DOS Kermit.
Question-mark help is not available while typing a numeric field.
The host prompt for TRANSMIT is a single character (SET TRANSMIT PROMPT). It
is not possible to specify a multi-character or variable prompt.
SCRIPT PROGRAMMING
The terminal emulator is not active during execution of script commands such
as INPUT and OUTPUT. This means:
1. If the host sends the escape sequence that tells the terminal to identify
itself, it will be ignored. You have to put the appropriate INPUT and
OUTPUT commands in your script program.
2. A host-generated escape to put the terminal in Tektronix mode has no
effect. Put explicit SET TERMINAL TYPE TEK commands in the appropriate
places in your script program.
3. Screen formatting escape sequences have no effect. If you have SET INPUT
ECHO ON, they are simply displayed as-is.
If the remote host is sending ANSI (VTxxx) escape sequences during execution of
the script program, then users of IBM PCs can use the ANSI.SYS or similar
console driver to interpret the escape sequences. This is particularly useful
when running a script that logs in to a full-screen system, such as an IBM
mainframe through a protocol converter. But beware: ANSI.SYS is not totally
compatible with Kermit's VT emulator, and it may produce various unwanted side
effects, perhaps the most annoying of which is suddenly popping your PC into
40-column mode! If you experience any difficulties with your screen display
while using Kermit script programs, SET INPUT ECHO OFF before the offending
information arrives. Alternatively, remove ANSI.SYS from your CONFIG.SYS file,
reboot, and most likely the problems will disappear.
A specific example of INPUT vs ANSI.SYS: If you write a script program that
attempts to log in to a VAX/VMS system (5.0 or later), looks for the ESC Z
terminal type query, and responds with the VT320 terminal-type ID, your PC can
hang if you are running ANSI.SYS. Diagnosis: After receiving the VT320
terminal-type ID, VMS sends ESC [ 62 " p (Select Operating Level = VT300 mode
with 8-bit controls), ESC SP F (disable 8-bit controls), ESC > (enter keypad
numeric mode). The Select Operating Level sequence hangs ANSI.SYS (at least in
IBM PC DOS 3.30) and the PC. Solution: SET INPUT ECHO OFF.
PAUSE, WAIT, and similar commands also cause port input to be echoed to the
screen if INPUT ECHO is ON. Use SET INPUT ECHO OFF to defeat this effect.
Script programming hint: To test whether a readable floppy disk is available in
drive A:, do this:
SPACE A:
IF FAILURE ECHO No diskette in drive A:.
The ON_EXIT macro is intended only for automatic execution when the MS-DOS
Kermit program exits. It only works once, to prevent recursion (as would
happen, for example, if you put an EXIT command in your ON_EXIT definition).
If you invoke the ON_EXIT macro explicitly during a Kermit session, you won't
be able to use it again.
HARDWARE RELATED PROBLEMS
There have been isolated reports that MS-DOS Kermit (3.11 as well as earlier
versions) crashes with "Divide Overflow" errors on certain 486-based machines
such as the AST Bravo 486. This problem is currently unresolved. Kermit is
known to work properly on the Dell 486, and it contains no instructions that
require any kind of processor higher than an 8086/8088. Reportedly, this
problem is not specific to Kermit; Microsoft Windows is said to crash on this
machine if the BIOS cache memory is enabled, but works OK (but about 3 times
slower) if the cache is disabled.
MS-DOS Kermit will not necessarily work with all brands of internal modems,
particularly some of the built-in ones that come with laptop PCs from various
makers. Certain Everex models are known to fall into this category.
If you cannot communicate satisfactorily through such a modem, you can use the
new command SET COM1 <address> [ <irq> ] (also SET COM2 .. COM4) to identify
the port's hardware address and interrupt request line number. USE THIS
COMMAND WITH CAUTION, AS IT MIGHT INTERFERE WITH YOUR PC's NORMAL OPERATION!
If all else fails, give the command SET PORT BIOS1 (or 2, etc) and try again,
to access the port through the system BIOS -- this is much slower that direct
hardware control by Kermit. Kermit does work with most popular brands of
internal modem (such as the Hayes Smartmodem 1200B and 2400B), and with all
known external modems, both direct-connect and acoustic.
Kermit does not work properly with revision C of the built-in modem in the
Toshiba T1600 laptop computer, due to an idiosyncracy of this modem. Revision
F of this modem does not have this problem. Note: This problem occurs with
the "built-in" modem, not the "internal" modem (these are two different
devices).
Reportedly, on the PS/2 model 55SX, there is a driver called CMOSCLK.SYS which
prevents Kermit from working properly. Reportedly, removing this driver from
the CONFIG.SYS file makes Kermit work right.
Users of add-in CPU boards should be aware that the board may not handle UART
serial port details properly if the UART is not directly part of the add-in cpu
board. One symptom will be Kermit can send but not receive characters. A
workaround is to use SET PORT BIOS1. The faults are with the add-in boards and
seem to be characteristic of the species.
Reportedly MS-DOS 2.11 for Tandy 1200 machines has an internal problem if a
program opens device CON for output, as Kermit does for REMOTE commands. The
symptom is cross linkage of files on the current disk. This has not been noted
with other versions of MS-DOS 2.11. Solution: upgrade to a more recent
version of DOS.
INTERACTIONS WITH DOS
On early (original motherboard & BIOS) PCs, and on systems that mimic them
(e.g. early Compaqs), the cursor may assume a strange shape upon return from
CONNECT mode. This is caused by a bug in the early BIOS, which stored cursor
attributes incorrectly. The PC Tech Journal article discussing the problem is
"The Dashed Cursor", by Paul Pierce, PC Tech J., Dec. 1985, page 47. He
suggests the following fix:
; Program FIXCURS.ASM by Paul Pierce, PC Tech Journal, Dec 1985, page 47.
;
code segment public 'code'
assume cs:code, ds:code, es:nothing
;
; This program is set up to be made into a COM file
;
org 100H
;
; First check for the monochrome adapter.
;
start: int 11H ; set ax = equipment flag
and al,30H ; mask off all but video bits
cmp al,30H ; test for monochrome adapter
jne exit ; jump if not monochrome
;
; Now check for incorrect cursor mode returned from the Bios
;
mov ah,3 ; call bios to get cursor type
int 10H ;
cmp cx,0607H ; check for invalid (color) type
jne exit ; jump if not a bad value
;
; At this point we know that the monochrome adapter is in use and that
; the bios cursor mode is incorrect.
; Call the bios to set the cursor type correctly.
;
mov cx,080cH ; use correct cursor type
mov ah,1 ; call bios to set cursor type
int 10H
exit: mov ah,0 ; exit back to DOS
int 21H
code ends
end start
When used in remote mode, e.g. as a server, a REMOTE HOST command can invoke
the DOS critical error handler, which issues its familiar "Abort, Ignore,
Retry?" message on its real screen, and is waiting for a response from its own
real keyboard, and so the server will no longer respond. Kermit attempts to
catch many of these errors before DOS learns learns about them, but some
cannot be avoided (like disk i/o errors).
Interaction between MS-DOS Kermit and various terminate-and-stay-resident
(TSR) programs is necessarily unpredictable, depending upon how "well behaved"
they are. Certain console, mouse, or graphics drivers might interfere with
file transfer, etc. Caution should be used when invoking certain TSR programs
while PUSHed from Kermit (e.g. using the PRINT command for the first time), as
not all of these programs observe proper etiquette for allocating and freeing
memory, and more importantly the TSRs will be loaded above Kermit into the
middle of memory where they may prevent large programs from loading later.
As a concrete example of the above, certain mouse drivers may prevent Kermit
from transferring files, and possibly also from recovering from timeouts
during script execution, or even from XOFF deadlocks during terminal
emulation. Possible workarounds include: (1) remove the mouse driver from
your CONFIG.SYS file; (2) if your mouse driver can be turned off and on (e.g.
if you have MOUSE OFF and MOUSE ON commands), turn the mouse off during Kermit
execution; (3) give the MS-DOS Kermit command SET TIMER OFF. Normally Kermit
works fine with mouse drivers attached to another serial port.
If TSR programs are interfering with Kermit (by taking over the timer or
serial port interrupts), you should remove them all from your AUTOEXEC.BAT
or CONFIG.SYS files, and then put them back one by one until you have
identified the one that's causing the problem.
NETWORKS
The first edition of "Using MS-DOS Kermit" neglected to mention the 3COM(BAPI)
network interface and the command "set port net 3com(bapi)".
MS-DOS Kermit contains no built-in support for network devices (like Ethernet
or Token Ring or Appletalk cards), nor does it perform network protocols such
as Netbios (TCP/IP protocol is an exception; see special section below).
Rather, it relies on external drivers to do these jobs, and then uses
interrupts to communicate over the network using these drivers. In many
cases, Kermit has knowledge of the higher-level protocols used on particular
networks, and takes advantage of them. That's what all the network-related
SET PORT commands are for.
Sending BREAK over various network connections via SET PORT BIOS1 + Int 14h
interceptor may or may not work, depending upon the actual network and drivers
in use. Kermit uses the BREAK facility if the driver and network support it.
Frequently people discover that their PC no longer works after installing a
network board. The usual problem is they purchased a 16bit VGA display
adapter and run it in 16 bit mode. Jumper it back to 8 bits and all should
start working again.
PC-NFS apparently prevents applications programs such as Kermit from creating a
file in the root directory of a PC-NFS disk drive. When the applications
program asks if a particular file exists in the root then PC-NFS always
responds with "volume label present", whether or not the actual file is
present.
SET PORT TELAPI performance is good with version 4 of Novell's LAN WorkPlace
for DOS but it is poor with version 3.5 because that older version sends each
Kermit byte in an individual packet. Version 4 is much superior in other ways.
The Interconnections TES product, which Kermit fully supports, has a fancy menu
that pops up if you type the TES "hot key", Alt-LeftShift-T. Reportedly, this
pop-up menu interferes with the LK250 driver that is distributed with Kermit
(it works fine with regular IBM keyboards). The LK250 driver uses a special
interrupt, and the speculation is that the TES menu program does not properly
chain this interrupt. The workaround is to use TES's text-mode menu, which
Kermit brings up if you type Alt-n during terminal emulation.
For DECnet/DOS (PATHWORKS) LAT connections, it is often necessary to tell the
LAT control program on the PC to reserve enough memory for all of the local
LAT host names. By default, space for 16 names is allocated. If you have
more hosts than that, Kermit might not be able to find your SET PORT DECNET
host unless you increase your LAT control program's memory allocation.
Connections via Kermit's built-in LAT support do not work when LAT is loaded
into EMS (expanded memory) under Microsoft Windows 3.0. Load LAT into
conventional memory.
TCP/IP SUPPORT
As of version 3.11, MS-DOS Kermit contains built-in TCP/IP and TELNET protocol
support. This allows a PC equipped with an Ethernet or other network board
that is connected to a TCP/IP network to communicate with any other node on
the network, without requiring any additional TCP/IP software on your PC.
However, you still need an external Ethernet-style packet driver for your
network interface board; Kermit does not contain built-in device drivers for
any kind of network board. Packet drivers are available from network interface
manufacturers, and also via anonymous FTP (if you have a connection to the
TCP/IP Internet) from Clarkson University, host name sun.soe.clarkson.edu
[128.153.12.3], cd pub/ka9q. Most of the files are "type binary" (zip and zoo
files, etc).
"Ethernet-style packet driver" means a packet driver that controls a real
Ethernet board, or that controls another type of board (e.g. Token Ring) but
simulates the behavior of an Ethernet board, for example allowing ARP.
An Ethernet-simulation packet driver is available for systems using the NDIS
(Network Driver Interface Specification) program. NDIS is frequently used
with Lan Manager networks, including AT&T's StarGROUP network and DEC's
Pathworks for DOS. The interface program is named DIS_PKT and originated with
FTP Software Inc. Their program DIS_PKT.GUP is available by anonymous ftp to
vax.ftp.com, and a research version DIS_PKT.TXT is available from Utah State
University by anonymous ftp to netlab.usu.edu. DIS_PKT uses NDIS as the
equivalent Ethernet board. Instructions for configuring Lan Manager files to
include DIS_PKT are included with the program.
The TCP/IP code in this version of Kermit has been tested successfully with
the following boards and packet drivers (according to reports from users):
Ungermann-Bass PC/NIC board with Clarkson UBNICPC packet driver 9.1
3COM 3C501 with Clarkson 3C501 packet driver 5.0.
3COM 3C503 with Clarkson 3C503 packet driver 9.4.0.
Western Digital WD8003E with WD8003E packet driver 9.7.0
Cabletron 2000 and 3000 series DNI boards with CSIPD_E 1.0x packet
drivers on unshielded twisted pair, thin Ethernet, and thick Ethernet,
on both PC/AT and Microchannel buses (don't use CSIPD_X 2.00).
Micom-Racal NI5210 with NI5210 packet driver.
AT&T EN100 with Clarkson AT&T packet driver.
IBMTOKEN.COM 3C501 emulation packet driver 1.9 over various Token Ring
boards and drivers.
DIS_PKT over NDIS for LAN Manager networks and NDIS-compliant boards
including SD8003, 3C503, AT&T 10MB/sec thinwire
Harvard ODIPKT over LSL, LANSUP, and IPXODI over Ethernet (but not
Token Ring)
The performance of the 3C50x packet drivers is poor, but the operation seems
correct. The SLIP8250 and LocalTalk packet drivers are not supported, as they
are not Ethernet-class packet drivers.
Domain name resolution does not seem to work when you give a nickname instead
of a complete host name in the SET PORT TCP/IP command AND Kermit cannot
transform the nickname into the desired complete host name by combining it
with your SET TCP/IP DOMAIN. Workarounds: use a complete hostname, an IP host
number, or set your TCP/IP DOMAIN appropriately for the nickname you are using
(see KERMIT.HLP/MSKERM.HLP for details).
For IBM mainframe linemode connections, automatic appearance of the login
banner might not work. Type a carriage return (Enter) to get the login
banner. Local-echo and linemode operation should be negotiated automatically.
In the SET TCP/IP ADDRESS command, the words BOOTP and RARP must be spelled out
in full.
It has not yet been determined whether BOOTP requests can be made to work
through gateways. The RFCs are unclear on this subject. Gateways, such as
ciscos, are configured by default to disallow forwarding of IP broadcasts
(used by Kermit's BOOTP request).
EXIT from Kermit closes your TCP/IP session (just like HANGUP). PUSHing or
running DOS commands from Kermit keeps it open.
Kermit always connects to the TELNET port (23) on the remote host. There
is no way to specify any other port. Kermit honors TELNET protocol
negotiations, including terminal type (Kermit sends "VT100") and ECHO/SGA.
Not supported: FTP, TFTP, multiple sessions, automatic setting of PC date/time
from network, 3270 emulation (tn3270), etc. There is no PING command, but
MS-DOS Kermit responds when PINGed. The \Knethold verb does nothing.
For TCP/IP connections to IBM mainframes in full screen 3270 mode, you need an
intermediate host or device to do the 3270/ASCII terminal conversion. A
typical setup is a TCP/IP terminal server with its serial lines connected to a
protocol converter (e.g. IBM 7171), or a UNIX host that has tn3270 available.
When connecting to a 7171, even through a terminal server, you have to type a
carriage return to get its terminal type prompt. To transfer files with an
IBM mainframe, you might have to tell MS-DOS Kermit to SET PARITY SPACE.
Inbound connections to MS-DOS Kermit are not supported. You can't set up a
Kermit server to wait for inbound TCP/IP connections. MS-DOS Kermit does not
provide any services (except PING -- i.e. ICMP ECHO -- replies) to outside
requestors. You can't "finger" it, mail to it, telnet to it, etc etc.
To make Kermit TCP/IP connections under Windows 3.0 (Enhanced Mode), configure
its .PIF file to "Lock Application in Memory". But only one copy of Kermit
can have a TCP/IP connection at a time. Packet drivers don't let multiple
applications use the same protocol (Kermit uses IP, ARP, and RARP).
Reportedly, Kermit's TCP/IP support does not interact correctly with Network
Research Corp's TCP/IP implementation for VAX/VMS.
The SET TCP/IP and SET PORT TCP/IP commands only return failure codes if there
is a parse error. The values you specify are not actually used until the
first attempt to communicate with the remote host: CONNECT, PAUSE, OUTPUT,
etc, at which time Kermit tries to make the connection. While connection
establishment is in progress, you can't interrupt the program with Ctrl-C.
To check in a script program if a host is available, do something like this:
SET PORT TCP/IP OOFA.XX.YY.EDU
PAUSE
IF SUCCESS GOTO OK
ECHO Host OOFA.XX.YY.EDU not reachable
STOP
:OK
Performance hints: Set your Kermit packet size to about 500, so it will fit
inside network packets, or to some multiple thereof. A packet size of, say,
600 (or 1100, etc) will give poor performance, because the result on the net
is a long and a short packet. SET FLOW NONE helps too -- lets TCP/IP do the
flow control, eliminates Kermit's need to check for Xon/Xoff.
Other hints:
DEFINE TELNET SET PORT TCP \%1, CONNECT ; "telnet hostname"
DEFINE <hostname> SET PORT TCP <hostname>, CONNECT ; "hostname"
****
Problems noted since September 7, 1991:
Kermit's TCP/IP support cannot be used simultaneously with PC NFS because both
applications want to register use of ARP, UDP, and other protocols with the
packet driver, but each protocol can only be assigned to one application.
This is only one particular case of the more general rule: only one TCP/IP
based application can use the packet driver at once.
Kermit does not negotiate Telnet parameters correctly with certain kinds of
terminal servers, e.g. MICOM Interlan NTS100.
TCP/IP support does not work over the Harvard ODIPKT driver on a Token Ring
network, which requires Kermit to use Token Ring, rather than Ethernet,
frames. Kermit uses only Ethernet frames for TCP/IP communication.
Dump screen via Ctrl-]F turns on LOCAL-ECHO. Workaround: SET LOCAL-ECHO OFF
after dumping the screen. After doing this, dump screen seems to work OK.
This problem is corrected by Patch #2.
"O" is no longer a sufficient abbreviation for OUTPUT, because of the new
OPEN command. If you have a script with "O" commands in it, it will fail.
If, in addition, you have exactly one macro defined that starts with "O",
it will be executed. Solution: Change abbreviations of OUTPUT from "O" to
(at least) "OU".
The SET ALARM / INPUT example shown earlier in this file is wrong. It
should be:
SET ALARM 30
INPUT 30 Login:
IF SUCCESS GOTO OK
IF ALARM ECHO INPUT Timed out
IF NOT ALARM ECHO INPUT Interrupted from keyboard
The MSKERMIT.INI file distributed with the second edition of the book had
a comment that stated that the DIAL command concatenates its arguments into
one argument, removing the spaces between them. In fact, it preserves the
spaces.
The MSKERMIT.INI file distributed with the second edition of the book had
a typographical error in its definition of the NORMAL macro: "wet window 1".
This should be "set window 1".
****
End of MSKERM.BWR