A New Friend: Let’s Play Amiga Workbench 1.3!

On December 9, 1968, Douglas Engelbart produced a 90 minute presentation on a computer system he called the “oN-Line System” or NLS. In this presentation, eventually dubbed The Mother of All Demos, Mr. Engelbart presented a mostly functional prototype of an early 21st-century computing environment. To quote Wikipedia:

…a complete computer hardware and software system called the oN-Line System or, more commonly, NLS. The 90-minute presentation demonstrated for the first time many of the fundamental elements of modern personal computing: windows, hypertext, graphics, efficient navigation and command input, video conferencing, the computer mouse, word processing, dynamic file linking, revision control, and a collaborative real-time editor. Engelbart’s presentation was the first to publicly demonstrate all of these elements in a single system.

We have, essentially, known what we wanted computers to look like for longer than microcomputers have existed at all. However, the 8-bit home computer systems I’ve looked at here don’t generally live up to this promise. That said, they often coexisted with the first real attempts at such a system.

  • In 1984, Apple released the Macintosh. This was the first system to market with a really usable mouse-driven graphical windowing interface, and it swiftly found a niche for word processing and desktop publishing. It did not, however, particularly offer anything else on this list. (Outside of specially coded “desktop accessories”, it would not even gain cooperative multitasking for several years.)
  • A year and a half later, in mid-1985, Atari released the ST. It provided color graphics, but the GEM environment was harder to use and more limited than the Mac System Software. It also did not provide real task-switching capabilities beyond Mac-like desktop accessories.
  • A few months after the first release of the Atari ST, the Amiga 1000 was released. This system is still legendary, and it very obviously deserves the legend: essentially every technology on that list shipped with the system out of the gate, in mid-1985, and continued from there. About the only thing missing from the list were videoconferencing and real-time editing and version control, all of which appeared as utility software in short order.

That was not all the Amiga did, though. It was also the first consumer-level operating system with true multitasking of any kind—allowing arbitrary processes to coexist throughout memory, with truly relocatable and sharable code modules—and it did this with modern pre-emptive multitasking, a feat that Microsoft would not match until 1995 and Apple would not match until 2001. This makes the Amiga an interesting case for me; I’ve often said that I start losing interest in retrocoding once we’re in a world where you’re dealing with vastly underpowered modern computers instead of with quirky, unique artifacts. By rights, as the first really modern system, the Amiga should be very low on my list of things to mess with, and I’ll need some kind of angle to make it interesting.

Here is that angle: I’m going to learn the basics of using the Amiga to accomplish things, do some low- to moderate-effort ports of a number of my pre-existing projects, and as I do that, I’ll look into how it provides these earliest attempts at a modern computing experience. We can compare those with more modern approaches—we’ve already gone pretty low-level on both the Windows and modern macOS environments, so we’ve got modern baselines—and possibly compare it to the competition of the time as well.

What I’m not really going to do yet is look into the specifics of the Amiga hardware itself. I absolutely intend to do this once I get my feet more firmly planted—the Copper chip sounds a whole lot like the Atari’s ANTIC chip, the “Paula” sound chip was an extremely powerful influence on my DOS experience throughout the 1990s, and I’ve seen some references to Atari-like notions of “playfields” and “sprites” beyond its already formidable-for-1985 bitmap capabilities. If I want to probe the Amiga as a unique technological artifact, I have many options open to me as well.

A Word From Our Nonexistent Lawyers

The Amiga had the singular misfortune to be a widely-beloved system that commercially imploded at nearly the height of its popularity and influence. Much of the post-1995 era is a wasteland of battles over successorship rights and outright frauds hoping to cash in on suddenly-relevant nostalgia. At the end of Ars Technica’s history of the system, it noted a particular Commodore engineer who burned out during this period trying to preserve what could be preserved of the system. Said engineer, David Haynie, appeared in the comments on the article to note that it was less burnout or heartbreak than it was tiring of the “vultures and crooks trying to get a little taste of the Amiga’s mouldering body before the bones turned to dust.” He noted that by the time of that writing (2017) the worst of this seemed to be over, and indeed, the legal wrangling has mostly settled.

This does, however, also mean that unlike most of the other systems I’ve looked at here, the actual basic operating software is not treated as abandonware, and is still actively provided and sold by the current rightsholders. I have only a very slight grasp of the battles and negotiations that resulted in this, but as of 2022 the present “official” players regarding the Amiga IP are:

  • Cloanto Corporation, which either controls or has sublicensing rights to the m68k-based Amiga legacy firmware and operating systems. These are actively sold and supported under the Amiga Forever label, along with custom emulators designed to get the operating system as much out of your way as possible.
  • Hyperion Entertainment, which controls the rights to future development of the Amiga OS. They also maintain legacy development tools. As I understand it they also collaborated with A-EON to create the PowerPC-based Amiga X5000 in 2017. Ars Technica reviewed that system here.
  • Haage & Partner, which no longer advertises their connection to Amiga development, but in the aftermath of Commodore’s collapse they also ended up with a license to further develop the Amiga operating systems and development tools. Their releases are entirely independent of Hyperion’s.

Those last two will be relevant to my project because it turns out that unlike the Atari ST, it is basically impossible to develop Amiga software without access to native development kits (NDKs), even if you do not directly use them in your toolchain. Hyperion and H&P are both the official sources of those NDKs in this day and age. We’re getting ahead of ourselves a bit, though.

First Steps

This post will mostly be me writing a silly little diary with screenshots of my adventures in coming to terms with the Workbench and just generally using the machine as one might have used it back in the mid-1980s. I’m starting with a freshly provisioned Amiga 500 system from the Amiga Forever package, configured to run Workbench 1.3. (This is the first version of Workbench that can boot off of hard drives. My interest in authentic experiences does not generally extend to waiting for my DOS commands to load off of floppies.) Pretty soon, I’ve got a basic system running, and I’ve found Notepad and I’ve put something into it!

That’s a lot less hideous-looking than GEM. One point over Atari.

There’s BASIC, right there, too. Let’s write a quick little program, maybe slightly more sophisticated than Hello World…

Wait. It’s 1985. Where are the line numbers? One point over everyone but DOS.

The AmigaBASIC dialect is a Microsoft one, and it bears far more in common with the QuickBASIC of DOS’s glory days than to any of the other BASICs we’ve looked at here. (Perhaps this is unsurprising; QuickBASIC itself came out the same year the Amiga 1000 did.) Anyway, it’s time to save our work. The way mouse operations seem to work is that you use the left mouse button for everything, but holding the right mouse button down makes the menu appear so you may select things by releasing the right mouse button:

I guess hiding the menu strip by default makes it less jarring when you change windows? No points.

Now we should be able to just pick our floppy off the file chooser and…

… oh. Well. Some frantic manual-checking later, and I’ve learned that the way we specify drives in AmigaDOS is with DF0: (first floppy disk), DF1: (second floppy disk), DH0: (first hard disk), and so on. OK.

Apparently this is a file requester, not a chooser. One point to the Mac.

Well, that was fun, but if I want to actually write anything of consequence on this system, I’ll need some more powerful tools. One reason I’ve generally stuck with cross tools on everything but DOS is that it’s a real bummer to have to relearn a new set of basic productivity skills on each platform. Still, let’s see what the Utilities drawer has for us…

Excuse me, what? We shipped with Emacs in 1985? Maybe this won’t be as alien as I thought.

Five billion points for the Amiga.

One other neat thing: instead of a drive letter, you can actually use the volume label instead. This is really neat if you only have one floppy disk, because if you are working with multiple files, it will actually remember which file goes with which disk and prompt you for them by name as needed, instead of just choking on an immediate File Not Found error.

It’s not all sweetness and light, though. When we actually go open up our floppy disk to see our work…

It’s not there. What’s going on? We’ll have to dip below the workbench into AmigaDOS to find out. Fortunately, there’s a “Shell” tool right there on the screen. Let’s take a look!

Minus five billion points for the Amiga. This is not how you resource fork.

It turns out that each file visible to the workbench has a hidden .info file alongside it. Our Notepad-created file has one, and so it is visible (and it’s not a completely clean text file, either; trying to print it out ends up clearing the shell screen). No such luck for our Emacs-created source file. This extends to directories as well; if I create a new directory in the Shell with a command like MAKEDIR DH1:BasicStuff, it won’t show up in the Workbench until I give it a proper drawer info file. Fortunately, any will do, so a command like COPY DH0:Utilities.info TO DH1:BasicStuff.info will do the trick.

Having Some Fun

Well, now that I’ve more or less found my way around the system, let’s type in some programs from old books and see how they work out!

Minus one point, but it’s from Compute! this time.

Oh… oh no. This code looks fine. Do I have the wrong version of the system or something?

Given how careful I was to start from zero when learning to operate RISC OS, you’d think I’d learn, but I don’t. The Prefs tool lets me switch between 80- and 60-column modes, and this program actually said in its documentation that 60-column mode is required.

Each window can pick its own fonts, so this dance should have been unnecessary. No points deducted from the Amiga.

Much better. Also note that, much like RISC OS, this is a fully functional mouse-and-window program and it’s 100% BASIC. The abstraction level turns out to be higher, so you’ll hit a wall sooner, but as an out-of-the-box experience this is much closer to Really Getting To Program Your Shiny New Windowing-System Computer than the Mac, Atari, or Archimedes could provide out of the box.

Next Steps

So far I’ve only been working with scripting languages: BASIC, and the AmigaDOS shell. I don’t get to say I’ve written stuff for the platform until I’ve created a program in assembly language with no use of non-system libraries. Furthermore, given my experiences on DOS and the Atari ST, we’re definitely at the point where doing anything worthwhile ought to be done in C, with dips into assembly language only done when absolutely necessary. So next time, we’ll look at that.

But First, a Peek Behind the Curtain

If you actually fire up an Amiga Forever system to try to replicate this, you will notice the Workbench looks noticably different. I took the initial Workbench floppies and copied them into a blank hard disk, because I wanted to actually put together a full system on my own. The RAM Disk in the upper right of the screen shots is technically an addition by Amiga Forever, but it’s an addition that was extremely common at the time—the period guides I read all suggested setting one up in your startup sequence (think AUTOEXEC.BAT) and then copying your most-used commands and fonts into it so that you’d not have to swap disks as much.

You’ll also see a disk named HostFS. That’s a WinUAE extension that lets you mount a directory on your real system in a place where the emulated Amiga can see it. This is hugely useful for cross-development, and I relied on it very heavily in my Atari projects. I’ve gotten that set up here in advance of that.

Exciting times ahead!