I have an irrational interest in the history of computing, and particularly retrocomputing, which refers (loosely) to the ability to actually do computing on historical devices that are still extant today and not too hard to get your hands on. (So connecting an Apple II to a LAN, or using a C-64 as a Twitter client, is retrocomputing; writing code that runs on a PDP-1 is not, because where are you going to get regular access to a working PDP-1?)
So you’re interested in the history of computing! Cool!
- I recommend a number of great movies related to the history of computing in this post, Mastergeek Theater.
- My evolving list of recommended books on this topic, in the form of an Amazon Listmania list.
- Various computer history related blog posts.
Some Retrocomputing Readings that are particularly interesting
NTSC: Nice Technology, Super Color, by James F. Blinn
IEEE Computer Graphics and Applications, 13(2):17-23, 1993. Great explanation by Jim Blinn of what an elegant hack NTSC is for representing color in a backwards-compatible way to B&W TV and within hardware cost and bandwidth constraints. Understanding the basics of NTSC is essential for retrocomputing since many early PCs and all early game consoles had to connect to NTSC video displays. NTSC gets a bad rap because it is often misused (“People who complain about not enough pixels are likely not using the ones they’ve got effectively”). NTSC maps RGB color space to YIQ: luminance (Y), which encodes black-and-white (intensity) in a backwards-compatible way; orange/blue (I); and purple/green (Q). [Geek note: this explains why any 2 adjacent Apple II hi-res graphics pixels within a single byte can be either orange/blue or purple/green, but you can't combine orange with purple or green, or blue with purple or green, within the same byte.] I and Q are then band-limited and quadrature-encoded into a composite IQ signal C, which is shifted in frequency space so its spectrum fits into the existing “gaps” in the spectrum of Y. Separation video transmits Y and C on separate wires; composite video adds them together, using low-pass filters at the decoder to separate them (with some loss of quality due to filtering artifacts). The RGB-to-YIQ mapping and band-limiting parameters are derived from models of how the human eye responds to color and luminance changes from a typical viewing distance. Computer-generated hi-res RGB images that exceed the band limits of NTSC result in nasty aliasing if not properly band-limited before conversion, but NTSC can look quite good if the hardware is adequate and the encoding done properly.
Design Case History: The Commodore 64, by Tekla S. Perry and Paul Wallich
IEEE Spectrum, March 1985. Real-world engineering hack/elegance that informed the design of the most commercially successful microcomputer ever made. For a fascinating look at the corporate culture and human side of the environment in which this design was born, read Commodore: A Company on the Edge.
Softside Magazine #60,November 1983, pp. 13-14 [you have to flip to these pages to read the article text]. Perhaps unsurprisingly, ebooks, MOOCs, and privacy problems associated with ubiquitous information, all enabled by a “smart phone” type device, were predicted and envisioned 2 decades before such devices became common and cost-effective.
Four reviews of microcomputer graphics software
All in Softside Magazine #60, these give a fascinating look at the state-of-the-art for PC graphics programming in the early 1980s during the explosion of the PC revolution:
- CEEMAC, a visual composition system for Apple II computers, by Andre Schklowsky. A domain-specific language for creating animated lissajous-type graphics on the Apple II, created by Brooke Boering. Intriguing because the DSL is platform-independent and was later released for the PC and other platforms. The free demo disk Fire Organ, featuring a series of art pieces created with CEEMAC, “went viral” (in the sense that physical copies were made at computer stores and user groups everywhere) when it was released as a way to promote the payware CEEMAC authoring environment. (Brooke Boering is now in his 90s and living in Santa Cruz! and I have the complete source code for CEEMAC!)
- The Graphic Solution, by Roberta Schwartz. A movie-film-style metaphor for creating simple animations on 8-bit micros. The author was one of the first to create a graphically-enhanced interactive adventure game for any computer.
- GraFORTH, by Tom Flynn. A version of FORTH including extensions to do Apple II hi-res graphics, specifically aimed at developers wanting to create (then-)”high end” arcade games without programming graphics in assembly language, which until that point was the only way to get adequate performance.
- Fontrix, by Roberta Schwartz. Before WYSIWYG UIs (Xerox Alto => Apple Lisa & Mac), there were still ways to create fonts and use them to generate banners, greeting cards, and so on. The challenge was severe since no printer-independent rendering language (like PostScript) then existed, so any competitive program had to ship with drivers for N incompatible dot-matrix printers each of which had its own commands for rendering bitmapped graphics. Broderbund Software’s Print Shop later became the de facto consumer product for this, but Fontrix was an early attempt at “typography” by basically creating multi-screen-sized hi-res canvases that were then dumped to dot-matrix printers.