OK, I just wanted to chime in on this retro stuff. Back in
1996 or so I built a laser photoplotter for making circuit
board artwork. See
http://pico-systems.com/photoplot.html
for a pic and some info. The original software was written
in Turbo Pascal on a Win 95 system so it could access the
DMA card from a user program. The limited memory under
Win95 left the program really cramped for large bitmaps.
So, I moved the program to a Win 2K system and split it in
half. the Win 2K program created a massive bitmap file
which I then compressed with zip and shipped to the Win95
computer that then sent it out to the laser. This worked
quite well. But, about 2014 I was worried that ancient Win
95 system would die, so I converted it to run from a Beagle
Bone Black. Due to the small shared memory between the PRU
and the ARM processor, I needed to compress the data. So,
for each raster line, there was a string of 16-bit tokens.
The high bit indicated laser on/off, and the rest of the
bits were a 15-bit repeat count. A token of all zero
indicates the end of that raster line. 2 consecutive zero
tokens indicates the end of the entire plot.
THEN, I hacked up the Win 2K Turbo Pascal for Windows
program from 1996 to generate these compressed files and ran
it through the Linux FPC (Free Pascal Compiler). It was
designed to handle Borland and DEC Pascal extensions, and
does a really nice job of it.
Pascal is really sort of a dialect of Algol, so I thought
this was somewhat on topic.
Jon