• Dr. Evil Laboratories

  • by kentsu

This blog recounts the history of Dr. Evil Laboratories, the creator, manufacturer, and retail sales of peripherals and software for the Commodore 64, including the Imagery! adventure game system, the SID Symphony Stereo cartridge, and the Swiftlink-232 cartridge.

Sep
15

Commodore Kermit

No, Jim Henson's favorite Muppet did not just join the Navy! Read about one of Dr. Evil Labs' first forays into software engineering and distribution.

I'm very pleased to have Ray Moody, one of the three original members of Dr. Evil Labs, describe his work on Commodore 64/128 Kermit and how that relates to Dr. Evil Labs.

Kent Sullivan

I started putting together my own simple terminal emulator software for the C-64 as soon as I arrived at Purdue as a freshman physics major in the fall of 1985. I was excited about the mainframes I had access to, and, at the time, there just was no other way to connect from a dorm room. The emulator I was building from scratch was pretty raw.

I am not sure how I ran first ran into Commodore 64 Kermit. I doubt I found it myself. Most likely, Kent or somebody in the computer lab pointed it out to me. But there it was. It had source code. It did way more than my code would. It had fewer bugs too. It no longer made any sense to continue to roll my own from scratch when something better was available for free.

From checking out the version histories below, you will notice that most of the early work I did was focused on terminal emulation. And most of the latter work was to support the new and better Commodore computers and modem hardware that became available. I never really did mess around much with the file transfer aspect of the software. I do sort of regret not adding long packet support. Long packets had been added to the Kermit standard, but I never took advantage of them. And I could have utilized this myself - downloads would have been faster, and I remember well how long I had to wait for Kermit to download itself from the cross-assembler that I used for the project. But, I'm getting ahead of myself a little. Let me back up and give a proper introduction to what Kermit it, courtesy of some info Kent put together years ago.

The term "Kermit" denotes two separate, yet related concepts: (1) a specific protocol (that is, a standardized set of rules for communicating) for transferring files between computers, and (2) a certain group of computer programs which feature the Kermit protocol. The Kermit protocol has a much different background than other protocols, like X-Modem or Punter, with which you may be more familiar. Kermit was developed in 1981 by Frank da Cruz at Columbia University in New York. Mr. da Cruz developed Kermit so that the computers at Columbia would have a method of talking to one another and exchange files. The computers at the university had many different hardware architectures and operating systems which prevented them from easily communicating. Because of this, Kermit is a very flexible protocol--practically every component of the file transfer process can be adjusted. Kermit can interoperate with unusual mainframes, operating systems, switches, etc. that cause other protocols to fail.

The Kermit specifications were made freely available, and a wide assortment of programs were written which implement the Kermit protocol. It is a tribute to the flexibility of the protocol that Kermit is able to run on such a wide array of machines. All of these programs are freely distributable, and are still available from the official distribution headquarters at Columbia.

The original Kermit for the C-64 was released in 1984. (Just as an interesting note, the first version of C-64 Kermit was ported over from Kermit for the Apple II.) Eric Lavitsky piloted C-64 Kermit through most of those early days. C-64 Kermit had two main audiences, which often overlapped: (1) People who needed to use the Kermit protocol to exchange files (usually with a large, multiuser computer), and (2) People who needed reliable DEC VT-52/100/102 terminal emulation so that they could use their C-64/128s as terminals into mainframe or mini- computers.

Kermit version history, disk images, and release notes

Version 1.7 (52)

  • Released on 1985-08-11 (approx)
  • Author: Eric Lavitsky, Rutgers University
  • Eric's source code was the basis for the three releases I did subsequently
  • His documentation was the basis for the three versions Kent did subsequently

Version 2.0 (57) disk image, release notes

  • Released on 1987-05-08
  • Major improvements:
    • DEC VT100 terminal emulation
    • C-128 80-column support
    • C-128 grey key and numeric keypad support
    • 25th line bug in VT52 emulation

Version v2.1 (68) disk image, release notes

  • Released on 1988-04-18
  • Major improvements:
    • Enhanced DEC VT100 terminal emulation (keypad); some VT102 features also
    • Limited Tektronix 4010 graphics terminal emulation (320x200 on C-64 and 640x200 on C-128)
    • Special file type for C Power / Power C source code files
    • Screen driver for Batteries Included BI-80 80-column card for C-64
    • Replacement BI-80 character ROM

Version v2.2 (70)

  • Released on 1988-11-21 (approx.)
  • Was quickly replaced by build 73 due to bug in parser and timing value bug
  • Only major improvement was 2400 bps capability when used on a C-128 in 80-column mode

Version v2.2 (73) disk image, release notes

  • Released on 1989-01-15 (approx.)

Version v2.2 (76) disk image, release notes

  • Released on 1992-09-29 (approx.)
  • SwiftLink-232 version – baud rates up to 9600 bps
  • Unique filenames created to prevent confusion with build 73
  • SET BAUD command altered to add 4800 and 9600 bps
  • SET PORT-ADDRESS command added
  • SET WORKING-DRIVE command added
  • SET RS-232 REGISTERS command altered
  • DISK command altered
  • This work was completed after CMD bought the SwiftLink product from Dr. Evil Labs and Matt Sorrels helped with this conversion
  • Files re-organized at Columbia University at this time

Early users of C-64 Kermit (i.e. prior to v2.0) used it primarily because it was the only telecommunications program for the C-64 which supported the Kermit protocol. Many people in university settings, for example, worked on large machines which supported only the Kermit protocol. C-64/128 Kermit was the only error-free way for them to transfer files from their Commodore 64 or 128 (probably at home) to work, or vice versa.

I recognized that many people needed to not only transfer files, but to have a "terminal on the cheap", so that they could actually do work from home without the cost of buying an expensive, dedicated terminal. Early versions of Kermit did support the DEC VT52 terminal. This was nice, but only went so far. I was working with UNIX in those days, and UNIX’s "vi" editor needed to redraw huge portions of the screen just to insert one new line in the file. VT100 terminal emulation was the obvious step up. The "vi" editor could use settable scroll regions to quickly insert new blank lines on the screen.

The first release of Commodore Kermit with VT100 emulation (v2.0) was pretty raw — it was just enough to handle UNIX. But not everybody used UNIX, and it didn’t take long to receive my first complaint. Fortunately, those who needed good VT100 emulation also knew where to find software to evaluate VT100 emulation (a program called "vttest") and they pointed me to it. That was just the necessary tool to bring VT100 emulation up to par for release v2.1.

C-64/128 Kermit v2.2 featured a full implementation of the DEC VT100 (long known as an industry standard), and also included full support for the VT52 mode of the VT100, plus a few VT102 "extras". As far as I know, C-64/128 Kermit is one of only two terminal programs for the C-64 which supported the VT100, the other being a commercial program, "Emulator.100", by Louis Leff. A couple of programs with VT100 emulation also existed for the C-128 (Desterm and VT100/128).

Besides support for the Kermit protocol and DEC VT-52/100/102 emulation, there were other unique features of C-64/128 Kermit. Each of these features, while perhaps interesting to only a small number of people, helped distinguish Kermit as a unique program. The main features were:

  1. Support for a wide variety of screen types. C-64/128 Kermit v2.2 supported 40 and 80 column output (through hi-res graphics) on a C-64, the built-in 80 column display of the C-128, and was the only terminal program to support the Batteries Included 80-column display for the C-64.
  2. Support for a wide variety of file types. All necessary character conversions were handled automatically with each of these file types:
    • Regular ASCII text files
    • Commodore PETSCII text files
    • "Speedscript" (the popular word processor from Compute!) files
    • Binary (memory image) files, such as BASIC programs
    • "C-Power" (now known as "Power-C") C language source code files
  3. 2400 bps support when using the C-128 screen and up to 9600 bps when using a SwiftLink-232 cartridge.
  4. Limited support for the Tektronics 4010/4014 graphics terminal. C-64/128 Kermit v2.2 emulated the main features of a Tek graphics terminal, allowing one to preview graphs and charts generated by some mainframe graphics programs. A resolution of 320 x 200 was supported on the C-64 screen, and 640 x 200 on the C-128.

Because of the focus on terminal emulation, the Kermit protocol, and special file types (all of which took a lot of memory), C-64/128 Kermit lacked some of the features found in many C-64/128 terminal programs. The major shortcomings were:

  1. No receive buffer (for screen dumps)
  2. No printer support
  3. No phone book
  4. No macro support
  5. No direct PAL system support (but see user-provided patch)
  6. No direct CBM 1600 modem support (but see user-provided patch)
  7. Unreliable performance when using C-64 screen mode (but see user-provided patch)

As Kent mentioned in an earlier post, the projects Roy and I did were mainly for fun--we sure as heck weren't going to get rich doing this! Dr. Evil Labs did offer Kermit for $5 (and, later, a printed manual for $7.50) for people who didn't want to or couldn't download Kermit for free from Columbia University (with plain text docs). Roy was working on Imagery! at the same time as I was working on Kermit v2.0. Kent tells me that Imagery! has the distinction of having the first two "sales" (freeware / shareware donations) for Dr. Evil Labs, and then Kermit ran off a string of 40 "sales" before there was another Imagery! request, which I attribute to pent-up demand. After that point, Kermit and Imagery! had a fairly similar volume of requests.

Kent did some totalling and came up with the following fun facts about Kermit distribution through Dr. Evil Labs:

  • Version 2.0: 95 disks, beginning on 1987-01-02 and ending on 1988-02-20 (+2 later, after 2.1 was available)
  • Version 2.1: 132 disks, beginning on 1988-02-21 and ending on 1988-12-31
  • Version 2.1 printed manual: 26 copies, beginning on 1988-05-09
  • Version 2.2: 129 disks, beginning on 1989-01-03 and ending on 1991-10-26
  • Version 2.2 printed manual: 82 copies
  • BI-80 replacement character ROMs: 8, beginning on 1988-04-25

Even today, you can download C-64/128 Kermit v2.2 from Columbia University. Kent continued to offer Kermit on native C-64 media after Dr. Evil Labs closed up shop at the end of 1991. By that time, however, the C-64/128 was in its waning years, and once the Internet tidal wave hit, demand dropped to zero and Kent stopped informing Columbia U. of new addresses when he moved. During the time he distributed it personally, he sent out 21 disks with version 2.2, beginning on 1992-01-11 and ending on 1997-11-20 (plus another 5 disks of the special SL-232 version, once it became available). He also distributed 12 copies of the manual during that time.

Kent was a tech writing major at Purdue and was able to update parts of the v1.7 manual (for v2.0) as a class project. Later, during the development of v2.1, he was an intern at a local software company (Pritsker & Associates) and worked for Pamela Miller, a very talented marketing manager with a print design background. She designed the very attractive page layout for the v2.1 and v2.2 manual using PageMaker and taught Kent how to use the software. The v2.2 manual won the Hugh McKee Memorial Award for technical writing and the Best of Show Award at the 1989 Purdue English Department Literary Awards. Kent still has a small stack of printed manuals for v2.2 that he's willing to sell for cost, if anyone really wants one!

Check out the links above and below to Columbia U., to text files with the various original release notes, and even a few promos for Kermit v2.2 that Kent put together back in the day.

  • Promo with original Dr. Evil Labs address
  • Promo with second Dr. Evil Labs address
  • Promo with price increase for printed manual
  • Promo after Dr. Evil Labs closed
  • Note emailed to people who had received v2.2 (70) and needed to upgrade to v2.2 (73) (same info as text file linked to earlier)

I hope you have enjoyed this trip down memory lane. If you have questions, please ask them.

Ray Moody

Leave a Comment

You must be signed-in to post comments.

Responses

core 10/25/2012

I used it in the day. Nice history lesson, documentation, links!