[comp.sys.ibm.pc] Document of Differences Between Kermit 2.30 and Previous Versions

tr@wind.bellcore.com (tom reingold) (02/09/88)

MSKERM.BWR, MS-DOS KERMIT 2.30 "BEWARE FILE"                      -*- Text -*-
--------------------------------------------

Last update: 10:12am  Monday, 11 January 1988

INCOMPATIBILITIES BETWEEN 2.29 AND 2.30 INCLUDE:

  SET KEY and SHOW KEY commands use different key identifications and syntax
  (see manual for details).  Some key combinations are no longer supported,
  e.g. arbitrary combinations of Shift, Ctrl, and Alt applied to non-Function
  keys.  A new program, SCANCHEK, is supplied to help with keycodes.  This
  program is distributed as MSUCHK, read MSUCHK.HLP for further information.

  LOCAL command prefix has been removed from 2.30.  Now, just use "DEL" rather
  than "LOCAL DEL", etc.

  CLEAR now means clear serial port buffer rather than key and macro
  definitions.  Key and macro definition string space is now garbage collected,
  so a CLEAR command for them is no longer necessary.  SET KEY CLEAR removes
  all key definitions, and macros may be undefined individually.

  The CLRINP command is gone (replaced by CLEAR).

  Numbers of the form \nnn now default to decimal rather than octal.  A radix
  can also be specified: \Onnn (octal), \Xnnn (hex), \Dnnn (decimal).

  LOG <filespec> replaced by LOG SESSION <filespec> and LOG PACKET <filespec>.

Because of these incompatibilities, old MSKERMIT.INI and other MS-Kermit
command files and macro definitions may not work under 2.30.  However, version
2.30 includes a new feature to allow a different name for the initialization
file to be specified on the command line.  This will let you run your old and
new Kermits on the same system without having to rename the init file each
time.  Keep your old init file as MSKERMIT.INI, and name your new one
something else, like MS230.INI.  Then when you run the new Kermit, invoke it
like this: "kermit -f ms230.ini".  You can also run the new Kermit with no
init file at all: "kermit -f nul".

In addition to the user interface differences, there are also some changes in
the IBM PC's VT102 emulation.  For instance, previous releases did not home the
cursor upon receipt of the DECOM sequence (ESC [ ? 6 h/l), as a real
VT100/VT102 does.  The current release behaves correctly.  However, various
software (such as Unix termcaps, sysline programs, etc) may depend on the old
behavior.  This software should be changed.  The correct sequence for putting a
message at a particular place on the screen and then restoring the cursor to
its previous location is:

ESC 7                   (save current origin mode and cursor location)
ESC [ 6 l               (set origin mode to absolute) Not required in v2.30.
ESC [ 25 ; 1 H Hi there (write message on 25th line)
ESC 8                   (restore cursor and origin mode)


** LIMITATIONS AND RESTRICTIONS OF VERSION 2.30:

The IBM PC implementation of VT102 emulation has several restrictions:
no smooth scroll, no ENQ/Answerback, no alternate character ROMs, no confidence
tests.  Double height/width characters are simulated.  132 column mode is
available to users of EGA boards supporting that width, and Kermit is able to
set several EGA boards to that width upon host command.

Interaction between MS-Kermit and various terminate-and-stay-resident (TSR)
programs is necessarily unpredictable, depending upon how "well behaved" they
are.  Certain console or graphics drivers might interfere with the file
transfer display, 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.

Because of the many new features in the version 2.30 (Tektronix emulation,
input translation, transparent printing, and other display options),
performance during terminal emulation is a few percent slower than in 2.29.
For instance, on a PC/AT, version 2.29 could run VT102 emulation at 19200 baud
without requiring Xon/Xoff flow control, whereas 2.30 may require flow control
at that speed (but not at 9600 baud).  If the host computer does not support
Xon/Xoff, then characters can be lost during terminal emulation at high
speeds.  This is a particular problem when running the EMACS full-screen
editor on the host, which disables Xon/Xoff because it uses Ctrl-S and Ctrl-Q
as commands.  The PS/2 Models 25 and 30 may lose characters at 9600 baud in
the absence of Xon/Xoff flow control.  This is most evident during long
scrolling displays on half-duplex hosts (e.g. IBM mainframes).

In Tektronix emulation, the supression of GIN mode report echos seems to
differ in construction for each emulator we've heard about.  Next time we can
gather more "specs" and improve it.

When you type the escape character while in Tek mode, the screen goes back to
text memory.  Then when you type the argument character, the screen goes back
to Tek (unless the argument was C or P).  This causes your graphics screen
image to be lost if your adapter doesn't have enough display memory.

Shift-Printscreen can cause the PC to hang if there is no attached printer.
This is a BIOS feature, rather than a Kermit bug.  It occurs most frequently
with a parallel printer interface that has nothing plugged into it.

When used in remote mode, e.g. as a server, MS-DOS Kermit can become stuck in
the DOS critical error handler, which has issued its familiar "Abort, Ignore,
Retry?" message on its screen, and is waiting for a response from its own
keyboard.  This is a DOS feature.  Similarly, The MS-DOS Kermit server can
become stuck if you give it the REMOTE SPACE command, because it simply runs
CHKDSK and sends you its output.  Sometimes CHKDSK will notice something wrong
with the disk and ask (at the real console) you if you want it to be fixed.

MS-Kermit does not attempt to monitor the communication line for carrier loss
during terminal emulation or file transfer (but now you can SHOW MODEM to
inquire about CD, DSR, and CTS).  The absence of carrier monitoring is actually
a design decision.  Interactive users will notice when carrier drops, and
timeouts will catch the situation during file transfer or script execution.

In VT102 emulation on the IBM family, receipt of the ESC[4m (turn on
underscore) command results in reverse video rather than underscore on IBM CGA,
EGA and PGA color monitors.  This is a feature of the hardware.

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.  This is caused by a bug in the early BIOS, which stored cursor
attributes incorrectly.

On the IBM PC family, NUL (ASCII 0) is mapped by default to Ctrl-2, rather
than Ctrl-@.  This can be changed, of course, using SET KEY.

On systems that support a CONNECT mode line, there is no way to have Kermit
start up without a mode line, yet still retain the ability to turn it on at a
later time.

SET DEST DISK does not redirect output of REMOTE commands to disk -- they
still come to the screen (there's currently no syntax for specifying a file
name).


** KNOWN BUGS IN VERSION 2.30:

The "SHOW KEY ?" and SHOW MACROS displays cannot be cancelled.  They must play
through to the end.

The SHOW KEY ? display pauses at the end of each screen, but the SHOW MACROS
display does not.


** IDEAS FOR NEW FEATURES:

These are collected simply for future consideration, with no commitment
implied...

A way to send files with their full path names.  Possibly also dynamic creation
of directories when receiving.  Backing up a directory tree with a single SEND
command is an example.

Breaking up the STATUS screen into several screens, e.g.  SHOW COMMUNICATIONS,
SHOW TERMINAL, SHOW PROTOCOL, ...

A way to terminate server operation automatically at a certain time, or
after a certain amount of inactivity, etc.

SET LOCAL-ECHO ON doesn't work very well between two micros when they are
CONNECTed via Kermit to each other -- LF is not supplied by remote micro when
it receives CR.  Kermit needs an option to supply LF on the local screen when
CR is typed during local echo CONNECT. The VT102 emulator supplies this
function as SET TERMINAL NEWLINE ON.

Substitutable parameters for TAKE and DO commands (but first we need a set of
rules on the language; any such language should be very very simple to receive
any attention at all).

An expanded script facility, with substitutable parameters, variables,
conditional branching, etc, with accompanying language specification.

DIAL command, telephone directory, explicit support for various modems.

Transaction file logging.

A way to accept default values for omitted trailing fields in commands.

A better built-in help facility.

Sliding windows transport protocol.

File Attribute packets.

Pause at end of screen during local TYPE (but this can be accomplished
using Ctrl-S and Ctrl-Q, or use the "RUN MORE < filename" command.

A simple way to make Alt = Meta, without many many SET KEY commands.

Redefinable keys at Kermit-MS> prompt level (but see below).

Piped operation a la UNIX (e.g. compress foo.bar | kermit send) (probably
not possible, since MS-DOS does not support true interprocess communication).

A byte-stuffing mechanism during file transfer to get past devices that are not
transparent to all printable ASCII characters.

A way to play session logs back through Kermit's terminal emulator directly
from the disk log file.

A way of getting periodic file transfer status reports during QUIET display,
like the way C-Kermit responds to Ctrl-A in local mode.

Regular file transfer display should show Kbytes per file and per batch.


** THE NEXT VERSION:

...will probably have much of the system-independent code, particularly the
Kermit protocol modules and the command parser, replaced by portable C-language
code from C-Kermit, and from CCMD, a new, portable user interface package
written in C, already working on MS-DOS (in conjunction with ANSI.SYS), and
providing many more services than MS-Kermit's current command parser.  The
system-dependent portions of the program (the interrupt-driven i/o, the
keyboard translation, the terminal emulator, etc) will remain coded in
assembler, and the major challenge in converting to C will be to provide an
interface between the C and assembler portions, retaining the current level of
performance.

[End of MSKERM.BWR]
Tom Reingold                    INTERNET:       tr@bellcore.bellcore.com
Bell Communications Research    UUCP:           rutgers!bellcore!tr
435 South St room 2L350         SOUNDNET:       (201) 829-4622 [work]
Morristown, NJ 07960                            (201) 287-2345 [home]