Icon The Kermit Project   |   Now hosted by Panix.com
New York City USA   •   kermit@kermitproject.org
…since 1981

C-Kermit 4.2, 5 March 1985

Frank da Cruz
January 28, 2016

[~] ./wermit
C-Kermit 4.2(030) PRERELEASE # 2, 5 March 85, AT&T System III/System V
Type ? for help

Type ? for a list of commands, type 'help x' for any command x.
While typing commands, use the following special characters:

 DEL, RUBOUT, BACKSPACE, CTRL-H: Delete the most recent character typed.
 CTRL-W: Delete the most recent word typed.
 CTRL-U: Delete the current line.
 CTRL-R: Redisplay the current line.
 ?       (question mark) display help on the current command or field.
 ESC     (Escape or Altmode) Attempt to complete the current field.
 \       (backslash) include the following character literally.

From Unix command level, type 'kermit -h' to get help about command line

The first release of C-Kermit, version 4.0, was announced February 5, 1985, in the Info-Kermit Digest V2 #1. Although it was called version 4.0, it was a completely new program. Its predecessor was called Unix Kermit and was not interactive at all; it was driven purely by command-line options. The last Unix Kermit version was 3.0 from 1984, and since C-Kermit was to replace it, continuity of versioning was preserved. In the screenshot above you can see some anachronisms like the reference to an "Altmode" key (that's Teletype talk) and the non-"Y2K-compliant" date.

Kermit was designed to be portable to different operating system families, but by March 1985 it ran only on a handful of 16-bit and 32-bit Unix varieties (we had about half of these in-house):

  1. Berkeley Unix 4.1 and 4.2 on the DEC VAX.
  2. Microsoft Xenix/286 on the IBM PC/AT.
  3. IBM PC/IX AT&T System III on the IBM PC/XT.
  4. Interactive Systems AT&T System III on PC architecture.
  5. Vanilla AT&T Bell Labs System III, e.g. on 3B2, 3B20.
  6. The DEC Pro/350 (Micro PDP-11) with the Venix operating system.
  7. NCR Tower 1632 OS 1.02.
There were 14 modules, 4 header files, and a makefile for a total of 8720 lines. The source code was written in K&R C, years before there was an ANSI C. C-Kermit 4.0 did dialing, serial communications, terminal emulation*, and file transfer. But not script programming, network communication, character-set conversion, autodownload/upload, souped-up Kermit protocol, automatic text/binary mode switching, streaming, or other modern conveniences.  (* terminal emulation without emulating any particular kind of terminal)

Until today, the first version of C-Kermit was lost. Now we have a complete source set for version 4.2.030, just a few weeks newer than (and not much different from) the 4.0 version. It was sent to me by Oliver Lehmann in Leverkusen, Germany, who has it on a 1987-vintage East German desktop computer called the EAW P8000 (EAW = Elektro-Apparate-Werke) running a version of AT&T System III called WEGA. Some modifications were required for C-Kermit to run on this machine but he also had the original distribution, which is now available here for software archaelogists:

FTP:  ftp://ftp.kermitproject.org/kermit/archives/ck030.tar
HTTP: http://www.kermitproject.org/ftp/kermit/archives/ck030.tar
Unfortunately it can't be added to the archive at Columbia University because it was closed and frozen in 2011.

Obviously the C language and all its supporting APIs and header files and libraries have changed a lot in 30 years, so this thing won't build out of the box in most cases. A first attempt on Linux failed spectacularly. A second attempt on Solaris 9 (circa 2002) using Sun's C compliler (i.e. cc instead of gcc) was more promising. A few minor changes and it compiled, linked, and ran successfully. The biggest change was global renaming of the macro 'unchar' to 'xunchar' to avoid a conflict with header files that came out after this version of C-Kermit (naturally, this was done with C-Kermit 9.0's CHANGE command... coming soon in C-Kermit 9.0.304). Here are the diffs:

FTP:  ftp://ftp.kermitproject.org/kermit/archives/ck030.diff
HTTP: http://www.kermitproject.org/ftp/kermit/archives/ck030.diff
There's also a new 'solaris' makefile target:
#Sun Solaris 9 (this target added in January 2016).
#The -Xs flag specifies K&R (not ANSI) C.
solaris9 solaris:
        make wermit "CFLAGS = -Xs -DUXIII -DSOLARIS -i -O" "LNKFLAGS = -i"

The size of the executable is 137532 bytes (137K), compared to 2889020 (2.88MB) for C-Kermit 9.0 on the same SPARC architecture.

  C-Kermit 4.2 from 1985 / kermitproject.org / 28 January 2016