Knuth, ᴍᴇᴛᴀꜰᴏɴᴛ, the letter S, and David Fuchs

As shared on the fediverse by Kartik Agaram , Knuth’s maths-heavy paper on capturing the typographic design of the letter S leads to a good discussion of phototypesetting and debugging embedded firmware in hex.

David Fuchs summarises some of the story here

The Alphatype CRS (“Cathode Ray Setter”) was nominally 5333dpi, but it’s a bit of a fudge. As the person who wrote the DVI interface for it, and personally ran the entire Art of Computer Programming, Vol. 2, 2nd Edition through it, let me explain.

and see also this interview where he says:

Knuth realized that the firmware in the integrated Intel 8008 system that ran the typesetter wouldn’t be able to handle his Metafont-generated fonts, so he decided to re-write the entire firmware system for the device. Fortunately, there were cross-assemblers available for our mainframes, and the CRS would accept a new firmware “load” from a serial port. Please realize that the code that Knuth was rewriting had to simultaneously accelerate, run, and decelerate the two stepper motors that controlled the horizontal and vertical position of the lens that was focusing the character images onto the paper, while simultaneously feeding character outline information to the two sets of two full-size S-100 bus special hardware cards that would extract vertical strokes of the character being imaged to flash onto the CRT in front of the lens (two sets because that would let you pipeline the next character while the current character was being imaged; two cards per set because with kerning, you might have two characters appearing in a single vertical swath). Plus, data would be coming in the serial port asynchronously, and all this was happening in real time. Somehow, he got the thing working with only a little hex debugger that you accessed from the 16-button front panel. And, as we learned the hard way, if you sent too much data up the serial connection too quickly, you’d crash the shared mainframe (since it only expected human typists sitting at computer terminals to be on the other end, so it had never been tested for robustness in this regard), making everyone around the CS department pretty angry.

5 Likes