Revisiting the Atari ST and the 68000 processor

I mentioned in the last post that I've been playing with the Atari ST and learning more about the machine and its Operating System. I've been fascinated with this machine in particular because of its history and because a version of its OS is available under a GNU GPL license. This provides an excellent environment to dive in as deeply as I want without having to worry about hidden features, poor documentation, or moving targets. In short, it makes an excellent sandbox to play in.

I won't cover the history of the Atari ST (that is better documented elsewhere on the Internet, and I'd be restating what they said. In short, it would be college all over again), but one key element about its inception was that it was designed in six months. Designing a computer in six months is a tremendous feat, but it was also incredible that they went from concept to production hardware in a year. This of course meant creating a simple machine that didn't have a lot of custom hardware (the first Atari ST models have four custom chips, most of which are related to video display, memory management and device access). It also meant porting over another Operating System to the machine. Atari selected Digital Research's GEM environment. This allowed them to have a mature graphical interface.

In 1999 Caldera released GEM under the GPL (after their failed attempt to make GEM into a mobile OS). This paved the way in 2001 for EmuTOS to create a work-alike implementation of Atari's OS (TOS), which is still held under copyright protection by whatever entity passes for Atari these days.

EmuTOS recently hit version 1.0 after around 20 years of development. This means that it is a mature implementation of an OS that runs on the Atari platform. With the release of the source under the GPL (along with the release of the original GEM source) and with emulators like Hatari released under the GPL it means that a complete machine implementation can be understood and studied.

This is huge for me.

I never owned an Atari ST computer, so this is all new to me. What I'm finding though is the machine is not overly complicated. GEM is relatively simple to interface with (the complexity seems to be in figuring out their naming convention for functions, which are all around 8 letters), and was written in C. This also gives me an opportunity to brush up on C and Assembly. Sure, I've had Linux and x86 processors for over 20 years, but for some reason programming C under Linux has been challenging for me. I think that's in part because getting anything on the screen in Linux is complicated. I've done it using GTK+ and some SDL, but I always felt like I wasn't getting deep enough). With the Atari I have my choice of using GEM or "Line-A", which are special non-standard 68000 instructions specific to the Atari for graphics.

What I'm finding with this system is a sense of curiosity that I haven't felt in a while. It's literally an open book for me. It's not some fanciful implementation of hardware that never was - this is actual released hardware with an OS that runs on that hardware. But more importantly it's also fully documented, both in source-code form and in book form.

I have to give a quick shout-out to a company that I didn't know existed but made some of the best computer books out there. Abacus Software and Data Brecker wrote about 13 different books on the Atari ST and each one of them is excellent. You can find them online in PDF format (the physical books go for ridiculous money). What I didn't know is that Abacus Software was based in Grand Rapids, MI. (There was also Michtron, which was in Southfield, but I kinda knew about that company).

I've been finding comfort in learning about this hardware and operating environment. 68000 assembly looks pretty straightforward, and interfacing it into GEM seems relatively simple. Programming in C on the Atari isn't nearly as painful as I've seen on other platforms. Many of the development environments take advantage of the GEM environment on the Atari ST (something that is curiously not true for the Amiga's interface).

At the time I thought that the Atari ST was usurping my precious Atari 8-bit investment. I didn't take it seriously, in part because I didn't understand the benefits of the 16 bit platforms. I recognize them now as an important step in computing evolution and am happy to have a chance to revisit that past. I'll blog more about my tourism into the Atari ST in the coming weeks, but for now I'm pleased with what I've found.