Frank da Cruz
The Kermit Project, Bronx NY.
Most recent update:
Sun Jun 18 15:31:56 2023
New York time
Flip to Kermit-10
|
Bill Catchings in 1984
|
Kermit-20 — Kermit communications and file-transfer software for the
DECSYSTEM-20
— was first written at Columbia University
by
Bill
Catchings in 1981; it is coded in MACRO-20 assembly language. It was
the very first Kermit program and performed its first successful file
transfer on April 29, 1981;
read about it HERE.
Bill left Columbia in March 1983 and that same month I took over Kermit-20
development with continuous edits and releases through January 1988, when
the DECsystem-20 line was discontinued. I picked it up again in
2001 (when DEC-20 emulators started to sprout up around the Internet) to add
long packets and buffered i/o, and Tom DeBellis added some mostly TCP
related fixes. 25th-anniversary edition was released in January 2006.
|
Me with DEC-20, 1980s
|
The DEC-20 and its TOPS-20 operating system had a huge impact on what was to
become the Internet. As early as 1977 it supported several distinct
networking methods, including ARPANET (which was to become the Internet),
DECnet, and RJE connections with IBM mainframes. Users accessed it with
text terminals via serial ports or modems, or by Telnet or DECnet network
connections. There were no graphical user interfaces yet (except at Xerox
PARC), but the DEC-20 had the most user-friendly command language ever
known; you can see it today in the user interfaces of MS-DOS Kermit,
C-Kermit for Unix and VMS, Kermit 95 (now
called
C-Kermit for Windows), and of course in
DEC-20 Kermit itself. The DEC-20 supported a
proliferation
of programming languages, math and statistical packages, etc etc, and
email was practically born on the DEC-20, as were spell checkers, and on and
on; for greater detail see
this page.
In case you're curious about the version number, it's in DEC-20
versioning notation: MAJOR.MINOR(EDIT)-WHO.
UPDATE: Version 5.3(235)-5 of 11 June 2023
This version isn't installed yet, but a new directory
structure has been set up to accommodate multiple versions and this version,
as well as the 2006 version (as well as earlier versions if they can be
found), will be filled in shortly.
— fdc, 15 June 2023
From Tom DeBellis: version 5.3(235)-5 incorporates all fixes since the major
release of 5.3, Edit 230 in January of this year. These are as follows and
can be identified in the code with the edit number as the prefix of a
comment.
- [231] Fix RECEIVE with no file name
- [232] 36 bit byte file sizes
- [233] Transaction Log and Debug log fixes and enhancements:
Transaction logging
Garbled Text
Write-Protection Failures
Enhancements
Debug Log Decode Fix
- [234] Error messages may not be seen if displayed in remote server
- [235] Properly signal and handle file errors in server mode
- Additional Batch Tests
K2036P: Kermit-20 36 Bit Mode via pseudo-terminal
K2036C: Kermit-20 36 Bit Mode via pseudo-terminal with parity
Updated Help
Documentation includes
more
detail on the above list. All regression tests have passed except
for Tops-10 because of some local networking issues.
The source code is available in two archive formats, both compressed with
gzip:
Furthermore the uncompressed individual source and documentation files are
available in the following directories:
Source code
| 20 files (.mac, .ctl, .log)
|
Documentation
| 10 files (testing battery, announcement, 1988 user guide,
1985 Kermit book)
|
Data
| 26 files of different types used by the test suite
|
Testing
| Test suite and logs
|
Major new release: Version 5.3(230)-5 of 2 April 2023
|
Tom DeBellis with DEC-20, 1986
|
In April 2023,
Tom DeBellis — another former Columbia U
Computer Center systems group staffer — released a major new version
that can be used on the many emulated DEC-20s that are still chugging away
as virtual machines within Linux, Windows, and other modern platforms. The
original single module had to split into sixteen modules to accommodate
all the new stuff within the DEC-20s memory model. In Tom's words:
Version 5.3 is the first major release of Kermit-20 in nearly two decades and
represents approximately a year of development for the following
functionality:
- Adaptation to version 7 of Tops-20.
- Adds DECnet NRT transport for connections
to Tops-10, Tops-20 and Ultrix hosts.
- Adds pseudoterminal support.
- Support for batch stream execution, including extensive testing.
- Microsecond timing (limited by Tops-20)
- Efficiency Enhancements
- Symbolic (C) escape sequences and enhanced parsing
- New and enhanced commands
- Revamped and enhanced macro facility
A large amount of restructuring has been done with an eye towards
future development, instrumentation, debugging and overall robustness.
Here's the full announcement:
The source code is available in two archive formats, both compressed with
gzip:
Furthermore the uncompressed individual source and documentation files are
available in the following directories:
Source code
| 20 files (.mac, .ctl, .log)
|
Documentation
| 10 files (testing battery, announcement, 1988 user guide,
1985 Kermit book)
|
Data
| 26 files of different types used by the test suite
|
Testing
| Test suite and logs
|
Kermit-20 5.1(186) of 6 January 2006
Bill's last version was revived (by me) in 2001 with the addition of long
packets and buffered packet input for faster file transfer into and out of
emulated DEC-20s, which might not include ARPANET support (in the sense that
they have a TCP/IP stack and FTP or TELNET clients and servers), but might
still be accessible to incoming Telnet connections. Long packets were never
done for Kermit-20 before because the PDP-11/40 RSX20F front end could not
tolerate them. Emulated DEC-20s (and DEC-20 Telnet servers), however, have
no such limitation. (This improvement would, of course, also benefit
file uploads to
real DEC-20s via network connections, but
by 2006 only a couple real DEC-20s were still in operation.)
Kermit-20 5.1(186) is the last single-source-file release; it is
archived at Columbia University. Since all DEC-20s come with the MACRO-20
assembler, it is distributed in source-code form. Here are the files you
need:
- k20mit.mac
- The DEC-20 Kermit MACRO-20 source file. Transfer this to the DEC-20 in
text mode and rename to KERMIT.MAC, LOAD KERMIT,
SAVE (see
k20mit.txt
for details). NOTE: Your Web browser might not know what to do with a
.mac file; tell it to "Save as...", otherwise it might try to
play it or something.
- k20mit.doc
- The Kermit-20 chapter of the 1988 Kermit User Guide in
plain-text form. Your Web browser might think this is a Microsoft Word
document because its name ends in .DOC. Transfer
in text mode, rename to KERMIT.DOC. (Plain-text files were
.DOC files for decades before MS Word came along.)
- k20mit.ps
- The Kermit-20 chapter of the 1988 Kermit User Guide in
PostScript format. This one can be transferred in either binary or text mode.
Rename to KERMIT.PS.
-
k20mit.pdf
- The Kermit-20 chapter of the 1988 Kermit User Guide in
PDF format. Clicking on this link in any graphical Web browser should
produce the expected results.
- k20mit.txt
- Update notes for Kermit-20 5.1.
-
http://www.columbia.edu/kermit/archivefiles/dec20.html
- Access to individual DEC-20 Kermit files (source, code,
documentation, announcements, etc).
Kermit for MIT's ITS Operating System
In January 2017, Lars Brinkhoff informed me of a version of Kermit in
Maclisp for ITS, MIT's
Incompatible Timesharing System. It was adapted in 1988 from a Common
Lisp version (not sure which one yet) by Jonathan Rees of
Scheme48 fame.
Here are the files:
- kermit.170
- The main Kermit program
- kermit.info
- EMACS Info file for Kermit (original name: kermit.4).
- kermit.dumper
- Kermit dumper (needed for Maclisp)
- mlsub.17
- Library of macros and subroutines for Maclisp
Lars notes, “I don't have the
file AI: MATH; COMMON > which is referred to in
lines 16 and 40 of kermit.170“. If anybody else has a copy,
please let me know.
Kermit for Other PDP-10 Operating Systems
To my knowledge, no Kermit programs were ever written explicitly for TENEX,
WAITS, or TYMCOM-X, but since Kermit programs were written in various LISP
dialects, including Common Lisp, which presumably would have worked anywhere
that Common Lisp was available. (The Emacs LISP version wouldn't have
helped because PDP-10 EMACS was based on TECO, not LISP, and I don't think
there was ever a TECO Kermit either!)
Older releases
These are some versions prior to 5.1(186) that I was able to exhume. Each
one is a single self-contained source file that depends only on monsym.mac
and macsym.mac, which are standard parts of TOPS-20, and also cmd.mac
(COMND JSYS interface), which — if I recall correctly — was a
"goodie"; if you don't have it you can download it from the table:
Links