Info-Kermit Digest Tue, 18 Feb 1992 Volume 15 : Number 2 Today's Topic: Announcing C-Kermit 5A BETA Digest submissions may be sent to Info-Kermit@WATSUN.CC.COLUMBIA.EDU or KERMIT@CUVMA.BITNET. Requests for addition to or deletion from the Info-Kermit subscriber list should be sent to LISTSERV@CUVMA.BITNET or LISTSERV@CUVMA.CC.COLUMBIA.EDU. These messages must be of the form: SUBSCRIBE I-KERMIT (To start a subscription) UNSUBSCRIBE I-KERMIT (To cancel a subscription) REGISTER I-KERMIT (To correct your name) Kermit files may be obtained over networks and by mail order. On the Internetwork, use FTP to log in to host WATSUN.CC.COLUMBIA.EDU, a SUN-4/280 running UNIX (SUNOS 4.1), IP host number 128.59.39.2. Login as user anonymous (note, lower case), any password, and GET or MGET (MULTIPLE GET) the desired files. The Kermit files are in directories kermit/a, kermit/b, kermit/c, kermit/d, and kermit/e. Test versions are in kermit/test. All files in these directories should be transferred in text (ASCII) mode. Binaries are in kermit/bin (use ftp in binary mode). You can also get Kermit files over the BITNET/EARN network; to get started send a message with text HELP to KERMSRV, the Kermit file server, at host CUVMA. For detailed instructions, read the file kermit/a/aanetw.hlp (AANETW.HLP on KERMSRV). To order by mail, request a complete list of Kermit versions and an order form from Kermit Distribution, Columbia University Center for Computing Activities, 612 West 115th Street, New York, NY 10025 USA. ---------------------------------------------------------------------- Date: Sat, 8 Feb 92 23:31:00 EST From: Christine M Gianone Subject: Announcing C-Kermit 5A BETA Keywords: C-Kermit 5A, UNIX Kermit, VAX/VMS Kermit, Amiga Kermit Keywords: Atari ST Kermit, OS/2 Kermit, OS-9 Kermit Keywords: Sliding Windows, Script Programming, International Character Sets Keywords: TCP/IP and C-Kermit Xref: Commodore Amiga, See Amiga We are very pleased to announce the availability of C-Kermit version 5A, edit 179, for public Beta testing. Over three years in the making, C-Kermit 5A was written by Frank da Cruz of Columbia University with contributions from hundreds of other programmers all over the world. Its major new features include: ADVANCED KERMIT FILE TRANSFER PROTOCOL Sliding window packet protocol, up to 31 window slots, for improved efficiency, especially on connections with long delays (public networks, satellites, etc). The maximum packet size has been increased to 9024. Sliding windows and long packets can be used together. Using combinations of long packets and sliding windows, file transfer efficiencies up to about 95% can be achieved (and more when Kermit can compress the data). CHARACTER-SET TRANSLATION C-Kermit translates character sets during text-file transfer and terminal emulation. Most Roman-alphabet-based character sets are supported, as well as Cyrillic character sets and Japanese Kanji. A new locking-shift mechanism is provided for efficient transfer of Kanji and other predominantly 8-bit character sets in the 7-bit communication environment. SCRIPT LANGUAGE PROGRAMMING C-Kermit now has a powerful and easy-to-use script programming language similar to MS-DOS Kermit's. Write script programs to automate your logins, interact automatically with remote computers or services, and even run your scripts late at night, unattended, when phone rates are lower and networks less congested. NETWORK SUPPORT On UNIX computers that have Berkeley Sockets libraries and a TCP/IP connection, and on VAX/VMS systems with TGV MultiNet, C-Kermit now can make TCP/IP TELNET connections. Unlike regular TELNET, C-Kermit brings its script language capabilities and character-set translation ability to the Internet world. And unlike FTP, C-Kermit can translate text file character sets as part of the file transfer process. On SUN computers with SunLink X.25, X.25 connections are also supported. SYSTEMS SUPPORTED BY C-KERMIT C-Kermit 5A is available for the following platforms: - Most known variations of UNIX including V7, 2.x BSD, 4.x BSD, AT&T System III and System V R2, R3, and R4, POSIX, Ultrix, SUNOS, NeXT OS, AIX, HP-UX, DGUX, IRIX, SCO XENIX, DNIX, UMAX, RTU, DYNIX, PTX, etc, etc, on hardware platforms of all makes, models, sizes, and shapes - VAX/VMS, including a completely new RMS interface - OS/2 1.3 and 2.0 - Commodore Amiga - Atari ST - OS-9 Full ANSI C and/or POSIX compliance can be selected. OTHER NEW FEATURES Kermit File Transfer Protocol: Packet lengths shrink and grow dynamically based on the quality of the connection. Even, Odd, or Mark parity is detected automatically during packet operations. Low-level packet readers and writers recoded for increased efficiency. File transfer performance improvements (see below) Transfer of files with international character set translation (see below) Sending and recognition of file attribute (A) packets: File size, creation date, file type, character set, system ID. Incoming file's creation date set from Attribute packet. Control of use of attributes via SET ATTRIBUTES. Automatic entry into binary or text mode when receiving files that specify the file type in the attribute packet. New MSEND command to send a list of files ("msend foo.* dir/*.c aaa bbb") New MAIL and REMOTE PRINT commands (work in both directions). SET FILE COLLISION { APPEND, BACKUP, DISCARD, OVERWRITE, RENAME, UPDATE } REMOTE SET commands are now supported in both directions. REMOTE LOGIN, LOGOUT, and KERMIT commands (client end only). GET, BYE, FINISH, REMOTE commands now work in both local & remote modes. SET ATTRIBUTES ON/OFF can be used to enable/disable attribute packets. DISABLE and ENABLE commands to control client access to server functions. Ability to read packets without terminators, based on length field. Printable start-of-packet character now supported. Packet buffers allocated dynamically, overall size specifiable by user. Ability to run external protocols. Increased maximum number of files that can be sent in a single operation. Non-Error-Checked File Transfer: New TRANSMIT command for uploading text files, complete with character set translation and many other options via SET/SHOW TRANSMIT. LOG SESSION for downloading text files or capturing other screen data, complete with character-set translation and TEXT/BINARY mode selection. Command parser: Expansion of variables and functions in commands (see below). Partial as well as full completion of filenames. Improved error and help messages. Commands in progress can be interrupted, with return to prompt. Macros and variables, compatible with MS-DOS Kermit: DEFINE macros and variables. ASSIGN variable's current value to another variable. INCREMENT and DECREMENT numeric variables by 1 (or any other number). Execute macros using DO or just by giving their name. Arguments are passed as parameters \%1..\%9 Global variables \%a..\%z (and others). Access to environment variables via \$(name). Access to builtin Kermit named variables via \v(name), e.g. \v(date). Long variable names: \m(name). Backslash notation for numbers and characters as in MS-DOS Kermit. Dynamically allocated space for macro names and definitions. Variables and backslash codes in all commands are fully expanded. And beyond MS-DOS Kermit (at least for now!): Built-in string and arithmetic functions. User-defined functions. Arrays. Script programming language, mostly compatible with MS-DOS Kermit: INPUT, OUTPUT, REINPUT, PAUSE, GOTO, IF, ASK, ASKQ, ECHO, STOP, END, GETOK, and other new commands. INPUT, PAUSE, and WAIT interruptible from keyboard. SET INPUT, SET TAKE, SET MACRO, SET SCRIPT commands to control echoing, error handling. WRITE . OPEN, READ, WRITE/APPEND, and CLOSE local files. FOR and WHILE loops, which may be nested. BREAK and CONTINUE allowed in FOR and WHILE loops. Trailing comments ; like this one, allowed in all contexts. Command line continuation using hyphen (-) or backslash (\). Relaxed prefixing rules; backslashes no longer doubled. Conditional branching or execution of commands via IF. The IF command: May have an ELSE part. IF NOT can be used to reverse the truth of the following condition. IF <, IF =, IF > for numeric variables. IF EQUAL, LLT, LGT for string comparison. IF NUMERIC for checking numbers. IF COUNT for looping. IF EXIST for files. IF DEFINED for variable and macro names. IF SUCCESS, IF FAILURE based on success of previous command. Extended IF statement (XIF) allows nested, compound parts. Terminal emulation: Key-mapping via SET KEY command SET TERMINAL CHARACTER-SET SET TERMINAL LOCKING-SHIFT SET TERMINAL NEWLINE-MODE Flexible session logging TELNET protocol New escape functions: Suspend, Shell, Send Long BREAK, etc Improved efficiency Other: Improved use of Xon/Xoff software flow control during file transfer. Ability to use RTS/CTS hardware flow control when host computer supports it. Ability to couple to external protocols via open file descriptor (UNIX). Many file-format-related options for VMS. Tilde-expansion in local UNIX filenames (~ = home directory). Ability to ask shell to expand wildcards ("send ck[cuw]*.{[cwh],{doc,ps}}"). Alternative initialization filename specifiable on command line with -y. Kermit "application files" start Kermit automatically (UNIX only). Correct handling of Suspend interrupt (Ctrl-Z) in UNIXes with job control. New SUSPEND (Z) command. New TYPE command, interruptible by Ctrl-C. New PRINT command. New DELETE command. New RENAME command. Command synonyms added for compatibility with MS-DOS Kermit: RUN, PUSH, etc. And with UNIX: RM, LS, etc. And with VMS: SET/SHOW DEFAULT, SPAWN, @, etc SHOW command divided into SHOW FILE, SHOW PROTOCOL, SHOW COMMUNICATIONS, etc. SET SPEED no longer required with SET LINE - current speed used by default. 75/1200 Split-speed communication supported in some implementations. Improved control and monitoring of modem signals. Improved interaction with Hayes modems. Support for speed-matching modems. Support for many new modem types including Telebit, Microcom. New SET DIAL command controls: HANGUP, TIMEOUT, INIT-STRING, DISPLAY, etc. New REDIAL command. Compatibility with new and distributed (struct dirent) file systems. Improved use of UUCP lockfiles. Improved operation and security when run setuid/setgid on UNIX. Improved handling of disk-full and disk-write errors. More detailed and accurate statistics reporting. New debugging display available during CONNECT. Append mode available for all logs. Under UNIX, Kermit no longer appears "idle" while transferring files. Program exit status code now reflects protocol success/failure. EXIT n explicitly sets program's exit status code to n. Many new additions and improvements to UNIX makefile. Simplification and expansion of makefile configuration options. New documentation - user manual, man page, improved built-in help text. Many bugs fixed. ACKNOWLEDGEMENTS C-Kermit 5A has been a three-year cooperative effort involving hundreds of people in all parts of the world. It is not possible to list them all here (but we have tried to keep track of them in the documentation); here is a very much abbreviated list of just a few of the major designers, developers, and testers: Chris Adie, Edinburgh U, Scotland (OS/2 support) William Bader, Moravian College (VMS, mostly) Fuat Baran, formely of Columbia University (lots of help) Jim Barbour, U of Colorado Donn Baumbartner, Dell Jack Bryans, California State U at Long Beach Nelson Beebe, U of Utah John Chandler, Harvard U / Smithsonian Astronomical Observatory Joe R Doupnik, Utah State U (many, many things) Kristoffer Eriksson, Peridot Konsult AB, Oerebro, Sweden (many things) Marcello Frutig, Catholic University, Sao Paulo, Brazil (X.25 support) Hirofumi Fujii, Japan National Lab for High Energy Physics, Tokyo (Kanji) James Harvey, Indiana/Purdue U (VMS) Chuck Hedrick, Rutgers U Ron Heiby, Motorola Christian Hemsing, RWTH Aachen, Germany (OS-9) Mark Johnson, Apple Computer Luke Jones, AT&T Peter Jones, U of Quebec at Montreal (MIPS) Sergei Kartashoff, Inst. of Precise Mechanics & Computer Equipment, Moscow Howie Kaye, Columbia University (lots of help) Terry Kennedy, St Peter's College, Jersey City, NJ (VAX/VMS, 2.11 BSD) John Klensin, MIT (standards, sage advice) Bo Kullmar, Central Bank of Sweden, Kista, and ABC-Klubben (many things) Bob Larson, USC (OS-9 and more) Bert Laverman, Groningen University, Netherlands David MacKenzie, Environmental Defense Fund, University of Maryland Fulvio Marino, Olivetti, Ivrea, Italy Peter Mauzey, AT&T Bruce J Moore, Allen-Bradley Co, Highland Heights, OH (Atari ST) Andre Pirard, U of Liege, Belgium (character sets) Paul W Placeway, (formerly of) Ohio State U (Macintosh & more) Piet W Plomp, ICCE, Groningen University, Netherlands Manfred Prange, Oakland U (Coherent) Frank Prindle, NADC Alan Robiette, Oxford University, UK (VMS) Kai Uwe Rommel, Technische Universitaet Muenchen (OS/2) Larry Rosenman (Amiga) Jay S Rouman, U of Michigan Benn Schreiber, DEC Steven Schultz, Contel Gisbert W Selke, WIdO, Bonn, Germany Warren Tucker, Tridom Corp, Mountain Park, GA (many things) Konstantin Vinogradov, ICSTI, Moscow (Cyrillic and more) Stephen Walton, Calif State U, Northridge (Amiga) Jamie Watson, Switzerland (RS/6000) Ken Yap, formerly of the U of Rochester Michael Yaroslavtsev, Inst. Precise Mechanics & Computer Equipment, Moscow HOW TO GET IT C-Kermit 5A(179) BETA is available on the Internet via anonymous ftp from host watsun.cc.columbia.edu [128.59.39.2], using text (ASCII) mode, in the directory kermit/test, and on BITNET/EARN from host CUVMA through the KERMSRV file server, in the T: area. Warning: some files might have records longer than 80, making it impossible for KERMSRV to MAIL them to you. You can also order C-Kermit 5A on magnetic media (9-track tape, TK50 cartridge, or quarter-inch tape cartridge) from Columbia University by mail order as "Tape T" (see the order form, kermit/a/aaxfly.doc or aaxfly.ps). The C-Kermit filenames all start with the letters "ck" (for C-Kermit). The third letter in the filename is used for grouping: c = Portable C, u = UNIX-specific, v = VAX/VMS-specific, etc. The following sections give brief synopses of the files you will need for each version. A detailed description of the file naming conventions and organization is given in the file ckaaaa.hlp. Notation: * = match any string of characters [abc] = match the single character a, b, or c ALL VERSIONS All C-Kermit versions include the files ckc*.c, ck*.h, and ckcpro.w. These files implement the Kermit file transfer protocol. The user manual is ckuker.doc (plain text), ckuker.ps (postscript). It applies to all versions, but (so far) includes system-specific information only for UNIX, VAX/VMS, OS/2, Amiga, and OS-9. THE UNIX VERSION UNIX sources: ck[cuw]*.[cwh] UNIX build: ckuker.mak (for 2.1xBSD, use ckubs2.mak) UNIX executable: (none, build from source code) UNIX doc: ckuker.doc, ckuker.ps To build the UNIX version, rename ckuker.mak (or ckubs2.mak) to makefile, read the comments at the top of the makefile to select the make-option appropriate for your computer, and then give the appropriate "make" command, for example "make bsd", "make sunos41", "make sys5r4", etc. Read the file ckuins.doc for further instructions and hints. There is also a compressed tar archive of the UNIX sources in kermit/bin/cku179.tar.Z, which you can ftp in BINARY mode: 595K. THE VAX/VMS VERSION This version is not quite finished. Work on an interrupt-driven communications I/O module is still in progress. However, the file system interface is more or less complete, and is quite advanced, thanks to endless and unenviable hours of work by Terry Kennedy of St Peter's College in New Jersey. The result is quite usable, provided you don't push the communications too hard (very long packets and/or big sliding window sizes), especially on small, slow, or old VAXes. A special feature of VMS C-Kermit 5A is called "labeled files", which allows VMS files of any type to be transmitted to a foreign system and then brought back to a VMS system with all their attributes and formats intact -- or for that matter, between two VMS systems directly. VMS sources: ck[cuwv]*.[cwh], plus ckvcvt.c (labeled-file decoder) VMS build: ckvcdt.com plus ckvker.com (DCL), ckvker.mak (VMS MAKE), or ckvker.mms (DEC MMS) VMS executable: ckvker.hex, use ckvdeh.mar to decode it into .EXE format. VMS doc: ckuker.doc, ckuker.ps THE OS/2 VERSION C-Kermit was originally adapted to OS/2 by Chris Adie, of Edinburgh University in Scotland in 1988. Kai Uwe Rommel of the Technical University of Munich in Germany has brought Chris's version up to date and added many new features in the bargain. This program runs in an OS/2 window under both OS/2 1.3 and 2.0, performs VT102 emulation complete with key mapping, screen rollback, etc. OS/2 sources: ck[cuwo]*.[cwh], ckwart.def, ckoker.def OS/2 build: ckoker.mak OS/2 executable: ckoker.boo (unboo with ckbunb.c), kermit/bin/ckoker.exe OS/2 doc: ckuker.doc, ckuker.ps THE COMMODORE AMIGA VERSION The adaptation of C-Kermit 5A to the Amiga was handled by Steve Walton, California State University at Northridge. The original adaptation (for C-Kermit 4E) was done by Jack Rouse of the "Software Distillery" in 1986. The files are: Amiga sources: ck[cuwi]*.[cwh] Amiga build: ckiker.mak (use Aztec C V5.0b) Amiga executable: ckiker.boo, kermit/bin/ckiker.exe Amiga doc: ckuker.doc, ckuker.ps THE ATARI ST VERSION This one is hot off the press, just in from Bruce J Moore of Allen-Bradley Company in Highland Heights, Ohio. This is not a desktop application; it must be run under a character-mode shell like msh (which comes with Mark Williams C), gulam, ksh, or bash. Atari ST sources: ck[cuws]*.[cwh] (Mark Williams C) Atari build: cksker.mak Atari executable: cksker.boo (decode with ckbunb.c), kermit/bin/cksker.ttp Atari doc: cksker.bwr (more coming) THE OS-9 VERSION OS-9 is a UNIX variant from Microware Systems Corporation, designed mainly for the real-time processing environment, mostly on Motorola CPUs. C-Kermit 5A was adapted to OS-9/68K by Christian Hemsing, RWTH Aachen, Germany, and Bob Larson of the University of Southern California. OS-9 sources: ck[cuw9]*.[cwh] OS-9 build: ck9ker.mak or ck9ker.gcc OS-9 executable: (None, build from source code using cc or gcc) OS-9 doc: ckuker.doc, ckuker.ps OTHER VERSIONS Macintosh Kermit is not at BETA level yet. Much work remains to be done and is, in fact, underway at this moment. Announcements to come in forthcoming Info-Kermit Digest issues. Previous editions of C-Kermit were available for Apollo Aegis and Data General AOS/VS. The Aegis version appears to be pretty much dead; most people run a UNIX-like environment on Apollos now, under SR10. The Apollo SR10 UNIX environments are fully supported by the UNIX version. Work on updating the Data General AOS/VS support has recently begun. Watch this space for announcements. Anybody who might have plans to adapt C-Kermit to any other kind of system, please contact us first so we can keep all efforts coordinated. DOCUMENTATION Much of the documentation listed below needs additional work. Improved documentation will be announced as it becomes available. ckaaaa.hlp Explanation of file naming conventions ckaplm.doc C-Kermit "program logic manual" ckuker.ann This message ckuker.doc plain-text user manual, UNIX and VMS ckuker.ps Postscript user manual, UNIX and VMS ckuker.mss Scribe source for user manual + ckuhdr.mss ckuker.nr UNIX man page, NROFF source (NEEDS WORK!) ckuins.doc UNIX and VMS installation instructions, plain text ckuker.bwr UNIX and VMS "Beware file", plain text ckvker.bwr VAX/VMS-specific "beware file", plain text (mostly obsolete?) ckvker.hlp VAX/VMS help file, for VMS HELP command (needs updates) ckiker.bwr Amiga beware file ck9ker.bwr OS-9 beware file ckuker.upd C-Kermit program update history, plain text, BIG As you might guess from the contents of this message, C-Kermit has grown considerably in size and complexity since version 4E. Consequently, many of its features are now deselectable via feature-selection switches at compile time: network support, script programming language, character sets, etc. This is necessary when the target computer (or compiler or linker) does not have the capacity (memory or address space) to support this version in its full glory. The feature-removal techniques are documented in the file ckuins.doc, and the various build procudures (UNIX makefile, etc) show which (if any) features are removed from which versions. In most versions, the SHOW VERSION command also lists which features are present and which are absent. WHAT NEXT? As far as features are concerned, this is the end of C-Kermit 5A. Bugs will be fixed, support for various systems will be updated, and then it will replace version 4E(072) as the standard, supported, released version. New features will be added to future releases. Please report successes or failures to Frank da Cruz, FDCCU@CUVMA.BITNET or fdc@watsun.cc.columbia.edu. ------------------------------ End of Info-Kermit Digest *************************