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]