My retirement project is a PostScript interpreter. I've done about 260 of the 286 operators in the original Apple LaserWriter. I'm about half way through the last tricky bit, Type 1 fonts.
The internals are quite interesting, I always assumed the interpreter just processed the input as it arrives but it actually starts a PostScript program as soon as the printer boots and that controls the hardware and handling incoming jobs. A lot of this code is available through a console, ie:
userdict begin /start load == end
dumps the first program started by the printer.I have an original LaserWriter which works through the console but doesn't print. Luckily someone has done the work to get the firmware running in MAME.
My interest in this came from working with a QMS distributor in the eighties. At the time I didn't really have a chance to delve that deep into the technology but I was always fascinated by it.
Probably easier to "just" emulate the LaserWriter. The firmware for some of the models is available, the 68K/68020 emulator can be downloaded from somewhere, and the rest is actually documented well enough for some models that writing an emulator is a very realistic prospect.
I’ve spent more time in pdf than ps, but they’re close.
Digging into these details is closer to digital archeology than anything else.
The glyphs inside Type3 fonts are themselves PS programs, right? Theres so much interesting history hidden inside the structure (and in some cases you find weird little edges in the codebases that define the behaviour in a way where that’s likely the only place it lives). There’s decades of legacy in how to draw things with computers.
Glad I’m not the only one who still thinks it’s fascinating enough to spend time understanding!