read


read
or learn more

8-bit Spirituals

May 20, 2020

An 8-bit Spiritual (8BS) is a modern program that hearkens back to a time when applications provided a robust experience but fit onto a single floppy disk. Modern apps are bloated by comparison, but there are applications that fit the spirit of the 8-bit days.

That said, a modern 8BS should provide a minimal set of modern features: unicode support and Internet and/or WWW support (where appropriate) seem like a minimal set.

I don’t want to limit the size of the eventual binary or linked libs because limiting to 8-bit era floppy sizes is not necessary at this point. I think modern-system-relative “small” is acceptable. Also, 8BSes are programming language agnostic and both VM-bound and direct hardware applications are fair game. 8BS is a state of mind so to speak.

For now, an example of the kinds of applications that I would be interested in WRT 8-bit Spirituals are as follows…

Programs of Yore

Before I point out a few examples of modern programs that fit the 8BS mold I’d like to take a moment to talk about a few interesting examples. Certainly, ANY program from the 8-bit era fits the literal definition of a constrained environment program by default but only a small subset could be representational of the type of program that I’m after for this post. The programs below were all constrained — but they were never constraining.

KAMAS

KAMAS was ground-breaking outliner software originally designed for the Kaypro II (eventually finding its way onto other systems) that provided a full-fledged editor, BBS system, and internal programming language interpreter — all on a 191K floppy disk.

I’m somewhat of a fan of the KAMAS software, even though I’m only able to run a truncated 1 version on the DOSBox emulator. Even minus the more advanced features found on the Kaypro versions, KAMAS for DOS is a solid application; however with those advanced features the program was a powerful digital workspace.

Electric Pencil

Electric Pencil was the first program to implement word processing-like features and ran on the MITS Altair on 8K of memory.

While certainly not at the level of many word processors that came after it, Electric Pencil set the pace for many of its successors. Indeed, many retrocomputerists consider the now defunct Word 5.1 for the Macintosh the pinnacle of word processing.

I was never fortunate enough to use Word 5.1 but it certainly seems to shine as an example of an application that an 8BS should shoot for.

Turbo Pascal

Turbo Pascal was originally released on the 8-bit CP/M OS and contained an IDE and compiler that could run programs in memory or compile them blazingly fast — all for $35.2

Pascal was a great language to the 8-bit era and amenable to fast compilation but the Turbo Pascal software is famous for being a shining example of Anders Hejlsberg’s programming prowess.3

Modern 8BSes

Having shown a few examples that act as goalposts for the modern 8BSes, I’ll offer a few examples of modern programs that hit the mark set in the beginning of this post.

Redis

Something like pre-clustering Redis is a decent candidate. Certainly it’s not a floppy-sized program but it did a lot given its small footprint. While it’s grown in scope over time, the original vision was a sleek data-structures database that performed well, was quite stable, and was even easy to understand.

Frink

Frink is a programming language unlike any other. It is generally known for its ability to handle and convert between a bevy of units of measure consistently throughout calculations. For anyone who has created a complex system (or even a simple one for that matter) that needed to juggle varying units of measure, the complexity of the problem that Frink handles seamlessly is staggering.

// Levenshtein distance is a built-in
println[editDistance["kitten","sitting"]]
//=> 3

// Convert feet to meters
38 feet -> meters
//=> 7239/625 (exactly 11.5824)

Frink requires a JVM, which is as far from an 8BS as you can get. However, VM aside “the Frink programming language including all its reference data, GUI, and graphics, can ship in less than 500 kilobytes (pack200 compression).”4

Dwarf Fortress

Dwarf Fortress is another interesting candidate.

It’s a world-builder / rougelike / simulation game that is obsessive in its approach to detail — despite its textual graphics. The game has maintained a strict vision of providing strong-simulative gameplay by its designers Tarn and Zach Adams.

PuTTY

The final program that I’ll nominate is the workhorse terminal emulator PuTTY. After 20+ years of development, PuTTY is still a 3 MB install and provides a useful set of functionality. When you need the functionality that PuTTY provides you REALLY need it to run well and right away. PuTTY has been meeting this need year after year and has been rock-solid all along the way.

8BS systems

Before I end I should point out the existence of hardware 8BSes. I suspect that the Pi, Arduino, ESP32, etc. communities have a ton of examples of viable 8-bit Spirituals to learn from. More exploration needed on my part and perhaps a future post will tackle them in more detail — though pointers and info about them is always welcomed in the comments below.

Finis

That’s all that I have for now. The 8-bit era has passed us by and is not likely to ever return in the realm of the general-purpose user-centric application. However, the spirit of the 8-bit system is still something that we can strive for and sing the praises of. The question is of course — should we?

:F


  1. If I could find a workable copy of the original Kaypro II disks then I would immediately grab an old dusty system to run it on. Alas, the KAMAS software has turned out more difficult to find than the computer to run it on. 

  2. It was eventually sold for $35 but was released for $49.99. 

  3. Pascal of the time could be scanned, parsed, optimazed, and code-gen’d in a single compiler pass. 

  4. As explained to me by Alan Eliasen – Frink’s creator. 

No Comments, Comment or Ping

Reply to “8-bit Spirituals”