Date: Thu 26 Jul 84 20:38:19-EDT From: Frank da Cruz Subject: New MS-DOS Kermit for IBM PC, DEC Rainbow, HP-150, Wang PC This issue of the Info-Kermit Digest is devoted to the long-heralded (and overdue) announcement of version 2 of Kermit for MS-DOS systems (Kermit is Columbia University's file transfer protocol for use over telecommunication lines, and it runs on a wide variety of systems). We announced our intention to provide this new release back in January, and have been working on it ever since. The previous release was 1.20, 28 November 1983. The new version is called "Kermit-MS" rather than "Kermit-86" and the version number is 2.26. It is available for several systems: System DOS Versions ------ ------------ IBM PC, PPC, and XT 1.1, 2.0 & above DEC Rainbow 100 and 100+ 2.05 & above HP-150 2.0 Wang PC 2.01 Others (Generic DOS) 1.1, 2.0 & above Versions for the IBM PCjr and Heath/Zenith 100 are soon to be added (version 1.20 already run on these machines). If your MS-DOS system is not on this list, you are invited to add support for it by supplying the appropriate system- and device-dependent modules (described below). The IBM version has been tested on IBM PCs with the old and new motherboards and ROMs, as well as on the XT and Portable PC, on hard disks, floppy disks, and RAM disks, and on color and monochrome monitors. It has NOT been tested on the Compaq, Columbia, or other "PC compatible" product; there is some chance that it might not work on the compatibles even when the previous release (1.20) did, because of greater dependence on the display hardware. Version 2 of MS-DOS Kermit has been tested successfully up to 9600 baud on the IBM, DEC, HP, and Wang micros, in communication with full duplex systems like the DEC-20 and VAX, and half duplex systems like IBM mainframes. Kermit-MS requires about 80K RAM, and certain functions like PUSH and RUN will need additional memory. Thus, for DOS plus Kermit, you will need a machine with at least 128K. Version 1.20 can run on a 64K machine. Version 1.20 will remain available indefinitely because it has proven quite stable, runs on a variety of PC-compatible systems, and is considerably smaller than version 2. Here is a summary of the changes: * Program organization: The program has been broken up into separate source files, assembled separately, and linked together. The modules are: System/Device Independent: MSKERM.ASM - Main program MSSEND.ASM - File sender MSRECV.ASM - File receiver MSSERV.ASM - Server operation MSFILE.ASM - File i/o MSCMD.ASM - Command parser MSTERM.ASM - CONNECT command MSCOMM.ASM - Communications port buffering & flow control MSSET.ASM - SET, SHOW, and STATUS commands MSDEFS.H - Data structure definitions and equates System/Device Dependent: MSXxxx.ASM - System-dependent code for system xxx MSYxxx.ASM - System-dependent screen and keyboard code MSZxxx.ASM - Modem control (modem-dependent) MSXSYS.DOC - Description of system-dependent modules The modular organization allows easier modification of the program, quicker transfer of modified portions from system to system. The modules are designed to be well-defined and self-contained, such that they can be easily replaced. For instance, someone who prefers windows and mice to typing commands could replace the command parsing module without having to worry about the effect on the other modules. * Kermit Protocol Improvements: Kermit-MS now supports: . 8th-bit prefixing for passing binary data through 7-bit communication links . 12-bit checksums and 16-bit CRCs as alternate block check types . Compression of repeated bytes . Server operation . Advanced commands for servers, including: REMOTE DELETE REMOTE DIRECTORY REMOTE HELP REMOTE HOST REMOTE SPACE REMOTE TYPE These advanced protocol features can be used in conjunction with other advanced Kermit implementations, including itself, as well as the current Kermits for the DECsystem-10, DECSYSTEM-20, VAX/VMS, PDP-11 (RSX, RSTS, RT), DEC Pro-350, and others, and soon to include IBM VM/CMS and UNIX. * Local command execution: The following new commands provide access to DOS functions from within the Kermit-MS program: DELETE DIRECTORY SET DEFAULT DISK PUSH (to DOS) SET DESTINATION (device - disk or printer) SPACE (runs CHKDSK) RUN (a program) * Command parsing: The command parser has been improved in many areas. For instance, "?" now works much better than before (though still not perfectly). ESC now provides completion not only in keywords, but also in filenames. CTRL-W deletes the previous "word" on the command line. CTRL-C always returns to the Kermit-MS> prompt. There is a command macro facility; DEFINE lets you build macros by combining Kermit-MS commands, DO executes them, SHOW displays them. DOS command line arguments are accepted, and may be strung together separated by commas, e.g. "kermit set baud 9600, set timer on, connect" Kermit-MS now reads an initialization file, MSKERMIT.INI, and can process (nested) command files with a TAKE command. * Terminal emulation: On IBM micros, the speed of Heath-19 terminal emulation has been improved by using direct screen memory access. Functions like insert and delete character now execute very rapidly. Heath-19 emulation functions, such as reverse index, missing from earlier releases are now supplied. H19 emulation may be disabled to allow the use of other console drivers, like ANSI.SYS, in conjunction with Kermit-MS. On systems with 25 lines, the 25th line is an inverse video mode line, displaying current settings, which may be kept or turned off. On the IBM and DEC systems, there are pop-up help and status screens, and the screen is saved and restored between remote/local context switches. The terminal session can be logged to disk to provide unguarded capture of remote files or session typescripts. On the IBM, DEC, and HP systems, the screen can be rolled back several pages, on a per-line or per-screen basis. On most of the systems, print-screen (screen dump) and CTRL-print-screen (toggle printing on/off) work as they do in DOS. On the IBM and DEC systems, a key redefinition facility is available to allow the layout of the keyboard to be altered to suit individual tastes, to set up keypads or function keys for specific applications, or to construct "keystroke macros". On IBM micros, the ALT key can be set up for use as a META key for use with EMACS-like editors. All versions of Kermit-MS except the generic DOS version are capable of transmitting the BREAK signal. The functions that are missing from the Wang and/or HP micros -- key redefinition, pop-up menus, screen rollback, screen print -- were omitted due to lack of information about how to get at the scan codes, screen memory, printer interrupts, etc, and may be added at a later time. Meanwhile, anyone out there who has the information and feels inclined to add missing features is invited to do so. * Communication options: The port characteristics are left alone when Kermit-MS starts (in the previous release, Kermit-MS always set the baud rate). The program allows settings for speed, duplex, flow control, handshake, and parity on a per-port basis, to allow convenient switching between ports. * File Transfer: You can now supply new names for files in SEND and GET commands. A timeout facility has been added to allow automatic recovery from deadlocks when communicating with systems (like IBM mainframes) that can't time out. The file transfer display has been reformatted, and includes more useful information, including a percentage for outbound files. The various counts are updated more reliably. Several options are available for interrupting file transfer, including ^X (cancel current file), ^Z (cancel entire batch), ^E (user-generated "error"), ^C (return immediately to command level), CR (simulate a timeout). The options are displayed during file transfer. There is a new end-of-file option to allow selection of DOS-style (believe the DOS byte count) or CP/M-style (file ends at first CTRL-Z) EOF detection. * Remote operation: Kermit-MS may be run from the back port in either interactive or server mode. This allows micro-to-micro file transfer without requiring an operator on both ends. * New Bootstrapping Procedure: The Kermit .EXE files for the various systems are now encoded using a printable 4-for-3 encoding, with compression of repeated 0 bytes. The result tends to be smaller than the original .EXE file. A new set of bootstrapping programs has been provided: MSMKBOO.C Encode. Can be used on any binary file. Written in C. MSBOOT.FOR Send the encoded file from the mainframe. Fortran. MSPCTRAN.BAS Decode the encoded file on the micro. MS Basic. MSPCBOOT.BAS Receive on the micro, decode on the fly. MS Basic. * Documentation: There's an entirely new manual, available now as a separate document, soon to be incorporated into the Kermit User Guide. It describes operation of the program in detail, along with the new bootstrapping procedure. * How To Get It: Kermit is available for a wide variety of systems -- micros, minis, and mainframes. It is distributed by Columbia University via network or on magnetic tape. For further information about Kermit, send network mail to INFO-KERMIT-REQUEST@COLUMBIA-20, or write to the Kermit Distribution address below. To be added to the Info-Kermit network mailing list, mail to INFO-KERMIT-REQUEST@COLUMBIA-20. The new MS-DOS Kermit files are available from COLUMBIA-20 via anonymous FTP after 6pm daily (ARPANET), though KERMSRV at CUVMA on BITNET (BITNET users should type "SMSG RSCS MSG CUVMA KERMSRV HELP" for information about the Columbia Kermit file server), and on all the Columbia DEC-20 systems in the KERMIT area. The file names all begin with "MS" (on BITNET, omit the "KER:" prefix). The executable programs have the suffix .EXE and are in 8-bit binary format. The corresponding 7-bit ASCII encoded files have the suffix .BOO. The system-specific programs are available in both .EXE and .BOO formats. KER:MSIBMPC -- IBM PC, XT KER:MSIBMJR -- IBM PCjr (not yet availble) KER:MSRB100 -- DEC Rainbow 100, 100+ KER:MSHP150 -- Hewlett-Packard 150 KER:MSHZ100 -- Heath/Zenith 100 (not yet available) KER:MSWANG -- Wang PC KER:MSGENER -- Generic DOS KER:MS*.ASM, KER:MS*.H are the assembler source files. KER:MSBUILD.HLP tells how to build the program. KER:MSKERMIT.DOC is the new MS-DOS section for the Kermit User Guide. KER:MSKERMIT.MSS is the Scribe source for the .DOC file. Those without network access may write to the following address for details of how to order a complete Kermit distribution on 9-track magnetic tape: KERMIT Distribution Columbia University Center for Computing Activities 612 West 115th Street New York, NY 10025 Version 2 of MS-DOS Kermit will be submitted to PC-SIG so that it can be ordered on IBM PC floppy disks. Inquiries should be directed to PC Software Interest Group 1556 Halford Avenue, Suite #130 Santa Clara, CA 95051 Phone 408-730-9291 Be sure to wait until they have version 2, because they are presently distributing version 1 on their disks numbers 41 and 42. It may take some time for them to update their distribution. * Credit: The bulk of the work was done by Daphne Tzoar and Jeff Damens of the Columbia University Center for Computing Activities. Many ideas (and "existence proofs") were contributed by Herm Fischer of Litton Data Systems -- key redefinitions, remote and server operation, etc, but those who have been using Herm's modified 1.20 will find that some of the features he added have been done differently in this release. 8th-bit quoting was originally added by Leslie Spira and her staff at The Source Telecomputing to allow Kermit to transfer binary files over Telenet. The new bootstrapping procedure and the new file transfer display were done by Bill Catchings of Columbia. Filename completion came from Kimmo Laaksonen at the Helsinki University of Technology. Some corporate support and encouragement was provided by Digital Equipment Corporation, Wang Laboratories, and IBM. * Disclaimer: Although we have been using the new version on several different kinds of systems for a good while and have done extensive testing, some bugs may have slipped through. Please hang on to your old release (1.20), and don't hesitate to report any problems to Info-Kermit@COLUMBIA-20. Suggestions and contributions are also welcome.