
/article-new/2021/03/iPhone-trade-in-16x9.jpg)
We take it all for granted today, but this probably seemed revolutionary at the time. The OS slowly evolved throughout the years, gaining features like networking, multitasking, system extensions and virtual memory. This was almost two years before the first Windows was released! The screen was black and white (you didn't even get shades of grey), and you could only run one app at a time, but it was still pretty cool. The first Mac had a Motorola 68000 microprocessor, 128KB of RAM and a basic (by our current standards) operating system. While the user interface has many similarities, that's pretty much where it ends. You could be forgiven for looking at a screenshot of Mac OS 9 and thinking it's broadly the same. It's got lots of proprietary Apple libraries on top of it, fancy graphics, and various quirks, but it's still POSIX-compliant. When you think of a Mac today, what comes to mind is probably Mac OS X macOS - a Unix-like system built on top of the XNU kernel. Here's an introduction to the platform just so you know what we're dealing with. I've never touched any form of classic Mac development before, so this is a bit of an adventure. am I masochistic enough to try and implement my own? (Spoiler: yes) There's an existing project on GitHub ( ksherlock/mpw) which does this, but only for 68K executables, so that wouldn't do the job for me. Could I get these to run externally somehow? You get a persistent document you can enter commands into, and you execute one by placing the cursor on the line and pressing ⌘-Enter - with the output being added to the document underneath.Īll of the tools I needed could be accessed via MPW. MPW is the Macintosh Programmer's Workshop, a rather strange tool that represents 80s Apple's take on a combined IDE and shell. There's fixes and workarounds for these issues, but it would be a lot nicer if I could just use my standard text editor outside the emulator. There's also a strange issue where the mouse cursor occasionally jumps to the corner of the screen. Getting files in and out of QEMU requires faffing about with networking, and editing code in an IDE from 1998 is cute but rather impractical for somebody used to VSCode and Neovim. These tools run okay in an emulated Mac OS environment using QEMU (except for the debugger), but it's not the most pleasant experience. I won't talk too much about the game here because I would like to write another post about it at some point, but to cut a long story short, it appears to be compiled using Metrowerks CodeWarrior Pro 1 and the Metrowerks PowerPlant library from Pro 2. I've wanted to try my hand at decompiling it, but to do that, I need a comparable compiler. I've been poking on-and-off at the classic Mac version of Yoot Tower, an underrated simulation game. Wherein I run classic Mac command-line development tools on a modern computer, using Rust, Unicorn Engine and a pile of hacks. Mpw-emu: Emulating 1998-Vintage Mac Compilers
