The Curious Case of Jupiter Ace
Why was BASIC so important to home computers and could Forth have displaced it?
On September 22, 1982, another small home computer was launched in the UK. Named Jupiter Ace, it was created by Jupiter Cantab Limited, a tiny startup founded by two engineers who had previously designed Sinclair ZX Spectrum: Steven Vickers1 and Richard Altwasser.
What distinguished Jupiter Ace from many similar computers of its era was that its ROM contained Forth instead of a BASIC interpreter. It was not enough to make it commercial success and the production ceased after a year. While the story of this computer and its creators is fascinating, this article focuses on one aspect of it: why was having BASIC embedded in ROM so important back then, and was replacing it with Forth a mistake?
BASIC as the Operating System
It is often said that early home computers did not have an operating system and booted directly into BASIC. This is only partially true: these devices did not rely on disk drives2; the system software that controlled them was stored in read-only memory (ROM). It did not provide process isolation, memory management, file systems, security and most other features that we expect from an operating system.
It did perform two important functions, though: it controlled the hardware, and provided a user interface in the form of a command line interpreter. In some computers, the interpreter was neatly separated from the rest of the code in ROM; for instance, the Apple II had three distinct ROM sections: software for controlling the hardware, the BASIC interpreter, and the system monitor. In other computers of that era, packing as much functionality as possible in the few kilobytes that were available was considered more important - the ZX Spectrum was an example of that approach. In all instances, however, a BASIC interpreter served as the user interface - not unlike a Unix shell.
But why BASIC? The language has certain characteristics that made it suitable for home computers:
It is interactive, allowing users to issue single commands and receive immediate feedback without having to go through a compilation process.
It is compact enough to fit into tiny ROM space of that time.
It was already familiar to many people who had encountered it at college, and simple enough for newcomers to grasp quickly.
The last point was particularly important, and according to Chuck Peddle who designed the first home computer - Commodore PET 2001, it was the main reason he decided to include BASIC in the device’s ROM.
Forth Did Not Kill Jupiter Ace
The use of Forth instead of BASIC is often mentioned as the main reason for the demise of Jupiter Ace. In my opinion, Forth was actually the machine’s main selling point.
From a technical perspective, Forth was a solid choice for a home computer’s interpreter:
It is interactive, although it does involve a compilation process for new functions (“words” in Forth terminology)
It can operate under extremely tight memory constraints, which is why it was a popular choice for programming microcontrollers during the 1980s and 1990s. For example, milliForth occupies only 336 bytes.
Compared to BASIC, Forth’s main drawback was that it was less well-known and more difficult to learn. However, it was far superior for serious software development, and programs written in Forth ran much faster - almost at the speed of assembly. Forth was a perfectly viable option for developing commercial software in a relatively high-level language, which was uncommon at that time.
The real reason Jupiter Ace fumbled was that its hardware was outdated: it was shipped with only 3KB of RAM and basic graphics with no color. By the time it was released, Sinclair’s ZX Spectrum had already been available for several months; it was somewhat more expensive, but it had color and much more memory than Ace. Another example of a home computer that emerged at the same time is Oric-1 which also came with color and between 16KB and 48KB of RAM.
Ultimately, most home computer users were not particularly concerned with the programming languages in ROM - they would just learn a command to load a program from a cassette tape. Advanced users who did care for programming languages were already looking for machines with better keyboards and more memory. Ace was an attractive option only to a handful of Forth enthusiasts.
In conclusion, bundling Forth with the Jupiter Ace made it stand out among many similar computers that appeared in the early 1980s. In fact, if you want to learn Forth today (which I recommend), a fun way to do it is to fire up an Ace emulator3 and follow the excellent manual written by Stiven Vickers: Jupiter Ace FORTH Programming.
Vickers wrote the book that inspired me to become a programmer: SINCLAIR ZX SPECTRUM BASIC Programming.
The most common storage for this class of computers were cassette tapes.
The “official” page that lists Jupiter Ace emulators is unfortunately pretty outdated. One emulator that is still actively maintained at the time of writing this article is ZEsarUX which can emulate a number of old computers, including the Ace.