Extracting A Vector Font From A Vintage Plotter

There is a huge variety of hardware out there with a font of some form or other baked into the ROM. If it’s got a display it needs a font, and invariably that font is stored as a raster. Finding these fonts is trivial – dump the ROM, render it as a bitmap, and voilà – there’s your font. However, what if you’re trying to dump the font from a vintage Apple 410 Color Plotter? It’s stored in a vector format, and your job just got a whole lot harder.

The problem with a vector font is that the letters aren’t stored as individual images, but as a series of instructions that, when parsed correctly, draw the character. This has many benefits for generating characters in all manner of different sizes, but makes the font itself much harder to find in a ROM dump. You’re looking for both the instructions that generate the characters, as well as the code used to draw them, if you want a full representation of the font.

The project begins by looking at what’s known about the plotter. The first part of any such job is always knowing where to look, of course. It’s quickly determined that the font is definitely stored in the main ROM, and that there is no other special vector drawing chip or ROMs on board. The article then steps through the search process, beginning with plaintext searches of the binary dump, before progressing to a full disassembly of the plotter firmware. After testing out various assumptions and working methodically, the vector data is found and eventually converted into a modern TrueType font.

In the end, the project is successful, and it’s a great guide on how to approach similar projects. The key is to lay out everything you know at the start, and use that to guide your search step by step, testing and discarding assumptions until you hit paydirt. We’ve seen similar works before, like this project to dump the voice from an ancient Chrysler Electronic Voice Alert.

19 thoughts on “Extracting A Vector Font From A Vintage Plotter

  1. i’ve used the vector-font from hp2xx for scalable fonts on LCDs and hanging plotters, the algorithm and tables are so compact, yet look great scaled up to inches…
    Totally reasonable thing to do.
    And impressive work doing-so.

  2. What a fantastic techno-archaeolgical expedition, and very nicely written up step-by-step. The bizarre animated bellydancing bear gifs do detract a little from the hackspace site, though.

  3. I remember using Hershey fonts many a time, for example to generate text to label charts drawn on a VT240 using its Tektronix 4010 interpreter or making text in my own vector graphics protocol for PCs.

    I have no idea where I got the magical files for the fonts, because we didn’t have much of an internet in those days (there were Usenet groups, but I doubt I got the goods there). I probably got a magic floppy somewhere along the line, and managed to hang on to it.

    In any case, well slurped!

  4. Ahhh…the Hershey fonts. That brings back memories of ordering documents from NTIS and entering them in by hand. Later, I think you could order tapes (&- or 9-track).

    The attraction is that they were created under US government contract, and are thus public domain and free for anyone to use.

    1. I did exactly the same thing – typed the numbers in from the book on Hersay fonts by hand. As I recall, the book was no longer in print but I got a Xerox copy from NTIS. Do you know how many points are in the Old English and Italian Gothic fonts???

    2. I wish I could remember how I got the fonts .. I know I was wayyyyy to lazy to copy them by hand. I must have had a binary file somewhere. In any case, it was great to have something like that .. nothing like jazzing up a project with vector fonts.

  5. I designed an encryption code a while back that used a 3D vector format as the first stage along with a warping algorithm to make captia images in 3D. Then sent that through a rule based rotator that used the input text to sequentially set the encoding map.
    Designed to be uncrackable by quantum systems.

  6. Very nice work. The documentation for “how to find something when you don’t know what you’re looking for” is really excellent.

    If you want an even tinier vector font ripped from a plotter, the Commodore 1520’s microcontroller dump contains the full character set. Vectors are packed one per byte, and are implemented in a tiny 8×8 point plotting language:

    https://github.com/Project-64/reloaded/blob/master/1520/rom/325340-01.s#L88

      1. I just tought that he wanted to use that font, in that case scanning them to convert would have been the fastest. I don’t believe your sound effect rom analogy apply there much though. You can repair a synth with the dump of your sound bank, he won’t be repairing his plotter with the extracted vector. But of course dumping and preserving that eprom content would be useful.

Leave a Reply to gregkennedyCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.