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, Macintosh 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 Xref: Apple Macintosh, See Macintosh 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, including sliding windows. - International character set support. - A new, powerful, easy-to-use script programming language. - Support for TCP/IP and other networks. Systems Supported: - 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, etc, etc, on hardware platforms of all makes, models, sizes, and shapes - VAX/VMS, including a completely new RMS interface - The Apple Macintosh (see below) - OS/2 1.3 and 2.0 - Commodore Amiga - Atari ST - OS-9 - Full ANSI C and/or POSIX compliance can be selected And now a more detailed listing of the new features... Kermit Protocol Features: 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. 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. International Character Sets Conversion among all major Roman- and Cyrillic-based character sets during file transfer, as well as Japanese Kanji. SET FILE CHARACTER-SET . Supported file character sets include: Roman Alphabet - Apple Quickraw, ASCII, British NRC, IBM Code Pages 437 and 850, DEC Multinational, DG Multinational, NeXT Multinational, Dutch NRC, Finnish NRC, French and French Canadian NRCs, German NRC, Italian NRC, ISO Latin-1, Norwegian/Danish NRC, and the Portuguese, Spanish, Swedish, and Swiss NRcs. Cyrillic Alphabet - ISO Latin-Cyrillic, Microsoft CP866, Old KOI-8, Short KOI. Japanese Kanji - JIS7, DEC Kanji, Shift-JIS, Japanese-EUC. SET TRANSFER CHARACTER-SET TRANSPARENT, LATIN1, CYRILLIC, JAPANESE-EUC, ASCII SET TRANSFER LOCKING-SHIFT { ON, OFF, FORCED } for efficient transfer of 8-bit text over 7-bit connections. SET LANGUAGE { Icelandic, Norwegian, Swedish, German, Russian, etc. } to enable language-specific transliterations, like umlaut-u to ue, when transfer or file character set is ASCII. Character set information is conveyed in attribute packets from sender to receiver. Automatic recognition and translation of character set of incoming file when reported properly in attribute packet. SET TERMINAL BYTESIZE 8 to allow 8-bit characters. SET TERMINAL CHARACTER-SET for character set translation during CONNECT. SET TERMINAL LOCKING-SHIFT { ON, OFF } for using Shift-In/Shift-Out during CONNECT. Automatic recognition of ANSI escape sequences during terminal emulation to prevent unwanted translation of escape-sequence characters. TRANSLATE local files from one character set to another. SET COMMAND BYTESIZE { 7,8 } to allow 8-bit characters in commands/filenames. Correct operation in "8-bit clean" UNIX and VMS environments. File Transfer Improvements: Sliding windows, up to 31 window slots. Maximum packet size increased to 9024 (less on some systems). Sliding windows and long packets can be used together. Locking-shift protocol for efficient 8-bit transfers on 7-bit connections. 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. Low-level packet readers and writers recoded for increased efficiency. Dynamic sizing of packets based on error history. Automatic parity detection during packet operations. 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 Network Support: SET HOST or TELNET commands replace telnet and other network virtual terminal programs; files can be transferred in the normal Kermit way. Using Kermit on a network gives features otherwise unavailable such as character set translation, unattended operation via script language procedures, etc: - On 4.x BSD-based UNIX systems, support for TCP/IP connections: 4.2BSD or later, Ultrix, NeXT, SUNOS, Olivetti, many more... - TCP/IP support on other UNIX systems with Berkeley sockets libraries: Apple A/UX, IBM AIX, HP-UX, SCO Xenix with Excelan or Racal/Interlan TCP/IP, System V with Wollongong TCP/IP, AT&T System V R4, etc. - On SUNs with SunLink X.25, support for X.25 network connections, with commands to control operation at both the X.25 and X.3 level. On VAX/VMS systems with TGV MultiNet, support for TCP/IP connections. TELNET protocol negotiations are handled automatically during terminal emulation as well as during script execution. 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. Terminal interrupt (Ctrl-C) now returns to prompt rather than exiting. 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 Nat'l 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) Michel Robitaille, U of Quebec at Montreal (Macintosh) 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 Peter Svanberg, Royal Techn. HS, Sweden (Macintosh) 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) Rick Watson, U of Texas (Macintosh) 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, m = Macintosh-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. 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 MACINTOSH VERSION: Mac Kermit is not at BETA level yet. Much work remains to be done and is, in fact, underway at this moment: redesign and reorganization of the menus, installation of new character sets and fonts, terminal emulation improvements, etc. This version is basically the old Mac Kermit user interface and terminal emulator combined with the new C-Kermit protocol and command parser -- yes, now you can talk to the C-Kermit prompt in a special command window, create and execute TAKE files, macros, script programs; you can dial your modem automatically, etc etc. Rick Watson of the University of Texas (and earlier, Paul Placeway) did most of the integration work, and added a new window manager that allows cutting and pasting among windows, etc. But there is still much to be done before this one is ready for formal release. Watch Info-Kermit for further announcements. Mac sources: ck[cuwm]*.[cwhr] Mac build: ckmker.mak (rename to kermit.make, use MPW C 3.2 to build) Mac executable: ckmker.hqx (use BinHex version 4 to convert to application) Mac doc: ckuker.doc + ckmker.bwr, ckmker.fon (more coming later) WARNING: Mac sources (resource and make files) contain 8-bit text. Download in text mode, but without character set translation. 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 mainly by Steve Walton. The files are: Amiga sources: ck[cuwi]*.[cwh] Amiga build: ckiker.mak (use Aztec C V5.0b) Amiga executable: ckiker.boo (for edit 178 -- unboo with ckbunb.c) 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: 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) ckmker.bwr Macintosh beware file ckmker.fon Macintosh font proposal (implementation is in progress) ckoker.upd OS/2 updates ckoker.doc OS/2 documentation (somewhat dated) ckoker.mss OS/2 documentation, Scribe source ckiker.bwr Amiga beware file ckiker.doc Amiga user documentation, plain text ck9ker.bwr OS-9 beware file ck9ker.doc OS-9 documentation 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. 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.