Macintosh API Comes To Linux, Android

Unlike DOS, early versions of Windows, and most *nixes, the classic Mac operating system is weird. Contained in the ROM are subroutines to draw windows, pop up dialog boxes, and other various tasks purely related to the UI. On other systems, this would be separate from the BIOS, but in your Mac from the 80s, everything is baked into the ROM and hidden deep in the operating system. This has caused many problems for emulation; you can’t emulate an old Mac without a ROM or without a real installation of the operating system. Where BeOS — a cool but entirely forgettable operating system — has an Open Source reimplementation of the programming API, there’s nothing like that for a computer that at one point had a ten percent market share. This is weird, and we’ve all been waiting for someone to come up with an Open Source reimplementation of the Macintosh Toolbox, the API that’s responsible for everything from LoadRunner to Shufflepuck.

Now that day has finally come. The Advanced Mac Substitute is an API-level reimplementation of the classic Mac OS. You can now run classic Mac apps on Linux and Android without using an Apple ROM or Apple system software.

The Advanced Mac Substitute (AMS) is a project from [Josh Juran] to run old (pre-OS 7) Mac software without an Apple ROM. For the last twenty years, Macintosh emulators have required Apple ROMs and/or installation media because the API calls will redirect to the ROM. Unlike other emulation projects, the AMS does not attempt to emulate the hardware, except for the 68k processor. It simply launches directly into an application with the frontend being a generic bitmap terminal. This means there is no OS to speak of, but that also means we finally get flatpak for the classic Mac OS.

AMS is still in the very early phases of development; keyboards don’t work on some systems, and it doesn’t work on the latest versions of MacOS at all. Additionally, there’s no support for System 7 applications. That said, this is an excellent advance in the state of Macintosh emulation. If you’d like an example of how cool this could be, go play some Oregon Trail and tell me how awesome playing Shufflepuck or Glider on a webpage would be.

Rewritable ROM for the Mac Plus

The Macintosh Classic – a small all-in-one computer with a 9″ monochrome screen –  was one of the more interesting machines ever released by Apple. It was the company’s first venture into a cost-reduced computer, and the first Macintosh to sell for less than $1000. Released in 1990, its list of features were nearly identical to the Macintosh Plus, released four years earlier. The Classic also had an interesting feature not found in any other Mac. It could boot a full OS, in this case System 6.0.3, by holding down a series of keys during boot. This made it an exceptional diskless workstation. It was cheap, and all you really needed was a word processor or spreadsheet program on a 1.44 MB floppy to do real work.

[Steve] over at Big Mess O’ Wires had the same idea as the Apple engineers back in the late 80s. Take a Macintosh Plus, give it a bit more ROM, and put an OS in there. [Steve] is going a bit farther than those Apple engineers could have dreamed. He’s built a rewritable ROM disk for the Mac Plus, turning this ancient computer into a completely configurable diskless workstation.

The build replaces the two stock ROM chips with an adapter board filled with 29F040B Flash chips. They’re exactly what you would expect – huge, old PDIPs loaded up with Flash instead of the slightly more difficult to reprogram EEPROM. Because of the additional space, two additional wires needed to connected to the CPU.  The result is a full Megabyte of Flash available to the Macintosh at boot, in a computer where the normal removable disk drive capacity was only 800kB.

The hardware adapter for stuffing these flash chips inside a Mac Plus was made by [Rob Braun], while the software part of this build came from [Rob] and [Doug Brown]. They studied how the Macintosh Classic’s ROM disk driver worked, and [Rob Braun] developed a stand-alone ROM disk driver with a new pirate-themed startup icon. [Steve] then dug in and created an old-school Mac app in Metrowerks Codewarrior to write new values to the ROM. Anything from Shufflepuck to Glider, to a copy of System 7.1  can be placed on this ROM disk.

This isn’t the first time we’ve seen ROM boot disks for old Macs. There was a lot of spare address space floating around in the old Mac II-series computers, and [Doug Brown] found a good use for it. Some of these old computers had optional ROM SIMM. You can put up to 8 Megabytes  in the address space reserved for the ROM, and using a similar ROM disk driver, [Doug] can put an entire system in ROM, or make the startup chime exceptionally long.