Friday, July 11, 2014

Okimate 20

Just for fun I thought I'd have a go at trying to render output from the Amiga Okimate 20 printer driver. This printer is a strange beast. Apparently, you issue ESC CHR(25) commands to reset the color to yellow, and then after you issue a CR it changes the color and prints in magenta, issue another CR and it switches to cyan. After those 3 passes you issue CR LF and then do a ESC CHR(25) again to restart the process.

It has a horizontal graphics resolution of 120 dpi for 960 pixels across. It has a 24 pin mode to print 24 pixel strips.

ESC % O puts you into graphics mode and then byte0 and byte1 for the number of horiz pixels (byte0 + byte1*256). Following this you have 3 bytes for each 24 dot vertical pixel strip.

I can feel the virtual thermal ribbons burning a hole in my virtual pocketbook as it renders the prints. Goodness, they must have been expensive to print full page graphics. 3 pages must have about wiped out a single ribbon. Reminds me of my old Casiowriter thermal typewriter that had these film ribbon cartridges that would be good for about 10 pages.

If you're curious I got the information about the printer from:

I think I only implemented 3 codes: ESC CHR(25), ESC %O, and ESC J (advance n/216).

All the ESC programming codes are nicely summarized on this page:

Okimate 20 javascript interpreter


  1. I had an OkiMate 10. You're right it'd eat those cartridges like crazy. And the print quality was total crap too, unless you had its special glossy paper.

    But its cool to watch your program "print" out those screen shots. And much faster than the real thing too, it was insanely slow.

  2. The okidata javascript printer interpreter is offline!.. I hope it's not lost.