Monday, May 27, 2024

Refurb weekend: Canon Cat

It's the Memorial Day holiday weekend and it's time for a little deferred maintenance, especially on those machines I intend to work on more in the near future. So we'll start with one that's widely considered to be a remarkable cul-de-sac in computing history: the Canon Cat.
Many people take a casual glance at this machine and say, "Isn't that an overgrown word processor?" And one could certainly think so, in part because of its keyboard-centric operation, but mostly from the utterly uncomprehending way Canon advertised it in 1987. Canon dubbed the Cat a "work processor" because of its built-in telecommunications, modem and word processor even though Jef Raskin, its designer, had intended it as a "people's computer" that could be inexpensive, accessible and fully functional — all things he had hoped to accomplish at Apple after first launching the Macintosh project, prior to departing in 1982.

Canon, however, never fully grasped the concept either. Apart from the tone-deaf marketing, Canon sold the device through their typewriter division and required the display to only show what a daisywheel printer could generate, limiting its potential as a general purpose workstation. There was also an infamous story where Canon engineers added a hard power switch not present in the original prototype, believing its absence to be an oversight — over Raskin's objections, who intended the machine as an always-on, instantly useable system. The Cat nevertheless launched at an MSRP of $1495 ($4125 in 2024 dollars) in July that year to many plaudits and design awards, but alleged corporate shenanigans and uncertainty within Canon doomed it internally, causing them to dropkick the product after just six months and 20,000 sales. In the wake of the 1987 Black Monday stock market crash Raskin's investors subsequently pulled the plug and the company closed in 1991.

But what was actually under the hood was a unique all-in-one 68000 machine with a bitmapped display and a full Forth environment hidden in its ROM-based, fast-start operating system. There's no hard disk, just a single 3.5" floppy drive to save your documents and the current Forth dictionary. Although the default mode is the built-in word processor, its tForth ("token-threaded Forth") dialect was easily unlockable and Information Appliance, Inc., Raskin's company that produced the Cat and licensed it to Canon, published substantial documentation on how to enable and program in it.

We'll have more to say about that in a future entry when we get into the guts of the OS. Today, we have two tasks: replace its settings battery and shore up the nearly unobtainium custom Canon floppy drive, its most common point of failure. It's time for a Refurb Weekend.

Before we begin the job, let's have a little tour. The Cat's notability is such that there are many analyses of it (PDF), including Raskin's own musings in The Humane Machine, and I probably couldn't do justice to it in this particular article. But a brief historical digression is always in order around these parts.

After Raskin left Apple in 1982, he took his ideas and founded Information Appliance, Inc. in Palo Alto later that year. "By choosing to focus on computers rather than the tasks we wanted done, we inherited much of the baggage that had accumulated around earlier generations of computers," Raskin wrote in 1986. "It is more a matter of style and operating systems that need elaborate user interfaces to support huge application programs." He envisioned an environment that provided word processing, information retrieval (i.e., search), programming and telecommunications in a single integrated package — it would do the basic tasks you need and be expandable to the later ones you'd want. This concept was first formalized as the original Swyft project. Swyft started as a 6502-based platform which quickly evolved into a system not unlike the released Cat except for using a 68008 CPU (i.e., a 68000 with an 8-bit data bus and a 1MB addressing range). However, IAI's investors were concerned that its development was taking too long and prevailed upon Raskin's team to commercially surface the technology earlier.

Thus was developed the SwyftCard, a port of the Swyft's software on a 16K EPROM and some glue logic for bankswitching that went in slot 3 of the Apple IIe. Its sole function was to instantly start the environment when the machine was powered on (no need for booting off floppy). 40K of the IIe's 64K was available as the user's workspace, which was loaded at the start of a session and written out at the end of it. The SwyftCard did not interfere with booting most regular Apple II software and could bank itself out without needing to physically remove the card.

Like the Swyft, the SwyftCard came up in a word processor mode as its default interface in which you could immediately type and print text. The workspace stored everything centrally: data from any source, even serial telecommunications such as a modem call, went right into the document too (you could even dial up a Swyft system if it had an auto-answer modem and send it text remotely). The workspace was one big document, subdivided into smaller ones which could be printed, edited or erased individually — which is to say, there was no file system at all. To switch workspaces, you just switched floppies, and the software kept track of whether the current document workspace matched the disk in the drive. The Swyft's most notable innovation was the concept of "leaping," where you held a "leap" key down and typed in the phrase you were looking for, and special attention was paid to making this unique means of workspace navigation as fast as possible. For the SwyftCard, this was implemented with the two Apple keys.

Porting from the Swyft was relatively straightforward since much of the high-level operating system was written in Forth, a language well-established on the 6502 as well, though the 6502's smaller 64K addressing space mandated using the banking logic on the card for memory management. However, a notable difference from Swyft was that SwyftCard users programmed it in good old Applesoft BASIC. You could type a BASIC program directly into the editor, highlight it, and then have it execute — and the output went into your document. This was an easy way to do calculations, for example, but most any appropriate BASIC operation would work such as string variables for templates and frequently used text. IAI offered the entire package in 1985 for $89.95 (in 2024 about $260) with the SwyftCard, a tutorial disk and a ProDOS interchange utility, and won strong reviews from Apple II magazines at the time. David Thornburg wrote in A+ that "[i]t not only outperforms any Apple II word-processing system, but it also lets the Apple //e outperform the Macintosh."

While the Cat was reportedly developed on time and on budget, IAI's investors remained unhappy with its gestational pace, and refused to invest sufficient capital to allow IAI to sell it under its own name. This forced IAI management to find a willing licensee for the product, and they found it in Japanese electronics manufacturer Canon, who was looking for another way to crack the microcomputer market after years of repeated failures. Raskin's original target price point was $795, but this was again vetoed and the higher price instituted for better margins. Internally the machine is called the Canon V777.

Here's the default editor. The Cat inherits the same interface as the Swyft (and, by descent, the SwyftCard). What's most noticeable is what's not visible: other than a small section at the bottom showing document settings, margins and a free memory gauge, there are no windows or menus of any kind. There's a cursor, but no pointer.
In fact, there aren't even conventional cursor keys. The Cat has the same "leap" keys as the Swyft and SwyftCard, in a bright but tasteful pink, and they work the same way to jump to portions of the document or into other documents. You can also use them to scroll with the SHIFT key, or move by single letters, sentences or paragraphs. The LEAP keys are also how you highlight text blocks to manipulate by LEAPing to the beginning, LEAPing to the end, and then pressing them together.
Much, but not all, of the rest of the interface is exposed on blue labels on the front of the keys. These are accessed by USE FRONT, which is basically the Cat's Command key, and even the LEAP keys have special functions with USE FRONT. For some operations you'll keep USE FRONT and other keys down and add others into chords. Raskin was emphatic that the Swyft and Cat should not have modes — when you release the keys, the operation is over, whatever that ends up meaning.
For everything else, there's built-in online help with the EXPLAIN key combination (USE FRONT+N). Besides on-demand assistance, the EXPLAIN facility also serves as the "error centre." If the Cat hits an error, you don't get a modal dialogue; instead, it just politely beeps. You can then ask it to explain itself and it will give its objections in prose.
As the Swyft and Cat were independent systems (unlike the SwyftCard), they're Forth through and through, and via a hidden setting you can program in it (or in 68000 assembly). Like most Forth environments of the day, Forth didn't run under an operating system; Forth was the operating system. The particular dialect on the Cat is tForth, for "token-threaded" Forth, which instead of storing direct execution addresses for each instruction in a Forth word executes using smaller tokens which are looked up instead. This exchanges the cost of an indirect lookup in a table for substantially greater code density.

Canon did not mention its programming capability in their user documentation, but IAI discussed it at length in their own documents, as the "secret" programmer's setting was never intended to be truly secret. When Forth is enabled, you can either type in Forth words at a traditional ok prompt, or you can type Forth code into your document, highlight it and execute it (USE FRONT+ANSWER). When running code this way, any output appears in your document.

The Cat also featured a reasonable amount of I/O. There's a DB-25 RS-232 port, RJ-11 jacks for modem and phone handset (optional), a Centronics-style printer port and a small recessed push button switch which starts diagnostics if depressed (with a pin or some such) at power on.

I'll have a lot more to say about Forth and the Cat's operating system in the upcoming entry. Let's get inside.

The logic board sits in a "pan" on the underside. Undo the screws (except for the ones in the feet).
The pan is now loose. With a little gentle tugging with a nylon spudger or some such, you should be able to free the lip on the side opposite the rear ports and get it lifted up slightly.
Doing so carefully because there are still cables attached, slide the ports out from their openings on the back.
The logic board is attached to the top case by three cables: a white flat ribbon to the keyboard, a 20-pin ribbon to the floppy disk, and power and video lines to the CRT. Gently pull out the end of the white ribbon from the keyboard. You should be able to get enough play in the floppy disk and power cables to pull the board up and to the side. We're going to pull off those cables shortly but if you're just replacing the battery for the settings RAM, you only need to disconnect the keyboard.
Lay the logic board flat and remove the screws holding the Faraday cage on. If you have chosen not to disconnect the other two cables then you can't remove the cage completely, but with care you'll be able to elevate and rotate it enough for the next step.
The logic board. For some reason some of the silkscreened board identifiers on this unit were blacked out with a marker (I didn't do that). The rear ports in this view are west (left). In addition to the serial, printer and phone ports, there is a small switch SW1 not accessible from the rear panel with "T"erminal and "H"ost settings for the serial port; it should normally be set to "H"ost.

The Cat uses a full 68000 instead of the 68008 of the Swyft (at IC1), which also makes it faster. The 256K system ROM is provided as four 64K EPROMs with coloured labels interleaved to yield the standard 68K 16-bit word. The 128K ROM at IC6 south of (under) the coloured EPROMs is the spellcheck dictionary, referred to as the SV-ROM. This is the USA/Japan chip; other locales may be at any position of IC6, IC7 or IC8.

In the northeast (top right) corner is the RAM, each one a Fujitsu MB81464 32K (256Kbit) 150ns DRAM chip, used both as the system memory and partially as the frame buffer. This unit has the default 256K of RAM (eight), with sockets to add another 128K to equal 384K. An upgrade to do some other time. It should be possible to populate the other unsocketed row as well but I'd prefer not to solder on a rare system if I can avoid it.

The show is primarily run by three custom Canon gate arrays at IC30 (NH4-5001, GA#1), IC13 (NH4-5002, GA#2) and IC31 (NH4-5003, GA#3). GA#1 controls the main system oscillator X1, a "20MHz" (actually 19.968MHz) crystal used directly for RAS, CAS and the video data shift clock, which it divides by four for the CPU's "5MHz" (actually 4.992MHz) clock, and also generates the horizontal and vertical video sync for the CRT. It handles fetching video data from shared RAM which is fed into GA#2. GA#2 actually emits the pixels to the monitor, as well as handling the watchdog timer (if the CPU doesn't regularly reset this timer, GA#2 will pass it an NMI, and then reset it if necessary), sending the regular keystrobe interrupt (via the 68681 DUART at IC34), and controlling the modem off-hook status. GA#3 handles the printer, keyboard and floppy drive.

The Motorola MC68681P DUART is a two-port UART. One port handles serial communications from the internal modem and the other port handles either the external RS-232 or the printer port, as configured. It also manages the beeper at "BZ" and is a source of two IRQs, the keystrobe interrupt from GA#2 (keyscan is done every 6.5ms), and when a telephone ring is detected by the modem. It takes a 3.6864MHz clock provided by GA#1; earlier board revisions had a discrete crystal for this located where the large trace is northeast of the DUART.

The modem hardware is logically in the southwest (bottom left) corner, closest to the phone jacks. The major chips here are the AMI S35213 at IC37, a Bell 212A 300/1200bps modem-on-a-chip, an AMI S2579 DTMF touch tone generator at IC40 and the AMI S35212A Bell 212/V.22 modem filter at IC38. The S35213 is clocked by the 2.4576MHz crystal at X3 and the S2579 is clocked by the 3.579545MHz crystal at X4. The modem feeds into the DUART.

The "ROM" at IC11 is actually an 8K 150ns static RAM, an NEC D4364C with specific support for battery backup. The service manual calls this the SV-RAM. This is what the CR2032 battery powers at the southeast (lower right) corner. It's dead, of course, so with a little gentle levering we pop it out with the nylon spudger and replace it.

To get into the top case, we'll now need to free the CPU board from the other two connectors, so once we've replaced the battery and put back on the Faraday cage, we'll disconnect the mainboard completely. These connectors, fortunately, are keyed.
Now to get at the floppy drive. We remove two screws from the back and two screws under the handle, and pull the back cover off.
This exposes the rear of the CRT cage and the power supply. The rear of the floppy drive is on the left in this view.
The floppy drive is secured in a bracket on the side of the CRT cage with four mounting screws. If you have a slim enough 90-degree screwdriver, you might be able to just get the floppy drive unscrewed directly. Mine isn't thin enough, so I had to take out the bracket first.
The bracket is secured in three locations like a triangle. This is the triangle's "apex." In this view, it is the bottommost screw sitting on that tab. It was very difficult to extract, very easy to strip and just as hard to tighten. You may have to work on it for awhile to get it and the tab it's bolting to the CRT cage free.
The other two are easier. They are the two screws on either side of the bracket's tab (not the third, lower one on the right). You've already disconnected the floppy drive by unplugging it from the motherboard, so the bracket can come straight out. Unscrew the drive's four mounting screws on the bracket and pull out the floppy drive.
There it is, the notorious Canon MD-3301. Just leave the cable connected. This is a custom drive by Canon known only to have been used in the Cat. It has a 20-pin interface instead of the regular 34-pin PC floppy interface, though with some logic and cabling it is possible to use a regular PC 3.5" floppy drive in it.

This unit fortunately still works, so what we're going to do next is a little preventive maintenance (other than the usual inspection, cleaning, etc.).

There are two tiny little screws on each side holding on the metal cover. Once removed, this side goes down to take the cover off.
I'm fortunate to have a drive still in very good condition. A close inspection showed no obvious damage.
The problem that occurs with this drive has to do with the head's guide rail. (This section is with thanks to Dwight Elvey, the unofficial "godfather" of the Canon Cat.) In this view the head is the white square with the black line through the middle, and the rail it rides on is the metal post to the east (right) of it. This is a 2x enlargement, so the head is actually a fairly small part.
The guide rail extends towards the back of the unit where the cable is. If you draw an imaginary line between the silkscreened backwards "20" and "21" digits on the PCB, you can see the other end of that same rod. This photo is 1x, so you're looking for a relatively thin cylinder.

Along that rod are two white nylon pieces secured by screws. These nylon tabs, in particular the rearmost, serve to clamp down the rod so it can't pop up. These tabs here are luckily in excellent condition, but that isn't the case for many Cat drives where the nylon has degenerated with age. When both tabs either crack or loosen, the rod is no longer held in. Ejecting a disk, even gently, could now cause the head to tilt into the open metal window of the floppy disk and get stuck. Should that happen and you innocently attempt to remove the floppy, you might accidentally end up pulling the head off. Doing so is catastrophic and would be extremely difficult to repair.

There are several strategies for dealing with this problem. While the middle tab is subject to the same age-related breakdown as the rearmost tab, the drive can survive the middle tab failing as long as the rearmost one is still intact. Unfortunately, the rearmost tab is correspondingly the one under the most mechanical stress. Here, both tabs are in very good shape, so we're going to concentrate on the rear tab, though what you do to the rear tab could also be done to the middle one.

If the nylon tabs are still holding, then you could reinforce them with something like a very small layer of JBWeld (other kinds of epoxy may not be strong enough), though this is fiddly and you'd better not get the goop anywhere else in the drive. It should also be possible to fashion a similar plastic piece of similar thickness. I don't know if a 3D printed one would have enough strength, so you might consider starting with a solid piece of good quality high-strength polymer and shaving and drilling it to fit.

Or you can do what Canon probably should have done in the first place and back it up with metal. I went to Home Despot and bought a roll of 28-gauge galvanized steel pipe hanger tape which at 0.015" thick (0.38mm) is still thin enough to fit on top of the piece. (It also gave me an excuse to use those metal snips I bought that were just sitting around.)
The nice thing about this particular type of pipe hanger strap (Oatey #33526) is that it has a pre-drilled hole of just about the right size. We'll get out the snips and trim it down.
Looks good.
Secured in position. The screw is not very long, so you can't use a very thick piece of metal here, but there was still enough room to get it attached firmly over the original nylon. I inserted a disk and checked that it fed in and the head stayed clear when it ejected.
Now with the machine reassembled and ready to go, it's time to get into that project I've been meaning to. It boots now, so I'll just leave you with this teaser since I've made some progress on it already:
IAI developed one additional Swyft-family unit, the prototype Swyft Model III. This was supposed to be a portable unit with an external floppy drive, a 640x200 supertwist LCD, 512K of RAM and a 2400bps internal modem. Since it had no hard disk or internal floppy drive, battery life was reputed to be six hours with 8 AA NiCads (longer with alkalines), though the processor wasn't specified. It was never released before IAI closed its doors. While Raskin retained the patents and even tried resurrecting the concept in software with the Archy environment, no one ever developed a full system like it again. Raskin died of pancreatic cancer in 2005 at the age of 61.

2 comments:

  1. I'm an avid reader of your blog, and find the detail which you go into with your posts makes for extremely pleasant reading. Normally, most people wouldn't bother to go into such detail, but you are an exception to the rule.

    Having said that, I am fascinated by the technological innovation that is the Canon Cat. I always liked the minimalistic interface Raskin designed for the machine, and to this day, am upset that Canon didn't treat the machine with the respect it deserved; for example, with the tabs being made of plastic instead of metal. Guess Canon thought that the extra cost wouldn't be worth it, since sales of the device wouldn't be enough to justify it.

    As it stands, however, the word processor/computer combo era has come and gone, and while I would have liked to see the Cat concept extended somewhat further than it was, it still could serve as an inspiration for someone who is a hardware design guru, and has the patience, time, and money to pursue a design that is derived from the Cat.

    Keep up the good work, Cameron!

    Matt

    ReplyDelete
    Replies
    1. Thanks for the kind word, Matt! But stay tuned - the Cat's gonna do a whole lot more when I get through with it.

      Delete

Comments are subject to moderation. Be nice.