In the early days of computers, compatibility between systems was not as big an issue as it is today. Before about 1993, when the PC hardware standard finally took a commanding lead over its competitors, it was standard for different computer manufacturers to have completely different operating systems, software bases, and communication methods. This state of affairs was established at the beginning of the mass personal computer market with the Commodore PET, TRS-80, and Apple II, and was accepted as something of a fact of life.
In particular, the advent of the graphical user interface and 16-bit microprocessors birthed three separate systems purpose-built with graphical capabilities in mind: the Apple Macintosh, the Commodore Amiga, and the Atari ST. (There are more, of course, but these three are the ones that were successful through a wide range of markets, which the Lisa and NeXT cube, for example, were not.) Despite all using the Motorola 68000 at their cores, there were few compatibilities between the systems. The same double-sided 3.5" floppy disk, for instance, would hold 720K in an ST (or a PC), 800K in a Mac, and 880K in an Amiga.
All three architectures were swamped by the PC and its open ubiquity, aided by the fumblings of Commodore, Apple, and Atari management. Virtually everyone who has used these machines has moved on (hi there, Amiga die-hards!); even the Macintosh faithful have moved away to a new operating system and a new hardware architecture. Much of the code and data from the earlier era is still tied to the original hardware and software from that time; a problem given the age of the hardware and its corresponding failure rate, which brings us to the subject of this writeup.
Mini vMac is a program that runs on Windows, Mac OS X, Mac OS 9, or Linux that emulates an early Macintosh computer, by default a Mac Plus. Originally, Mini vMac was a branch of the vMac emulator designed to be simpler to understand, but as the original vMac software hasn't seen any updates in over four years (the last post to its website is a "we'll be getting going again soon" message from 2002), Mini vMac has become the de facto current version of vMac. In addition to the Mac Plus, it can be configured to emulate the original 128K Macintosh, the 512K Mac, and the Mac SE.
Mini vMac is surprisingly easy to use, even on the Linux platform where emulation programs tend to only have cryptic command line interfaces (witness the Linux versions of FCE Ultra and Snes9X). If provided with a Mac ROM image with the name vMac.ROM, it will simply start and behave exactly like a Mac Plus with no disk in the drive. Disk images can be 'inserted' into Mini vMac through simple drag-and-drop, or through a file selection dialog on non-Linux systems. Once supplied with a bootable disk image the machine will boot and put you in an emulated Finder. Pleasantly, the emulator patches the ROM to allow up to 6 disk images to be mounted, with sizes up to 2GB.
Since the Mac Plus has no Control key, Mini vMac can co-opt it for its own purposes. A number of emulator options can be changed on the fly, and Mini vMac provides a self-documenting on-screen display that shows these options when the Control key is depressed. The commands include both emulation-specific commands such as speed control and full-screen/window mode toggles, and commands that correspond to the switches on a real compact Mac: the power switch and the 'reset' and 'interrupt' buttons on the programmer's switch. On a PC keyboard the Mac's Option key maps to the Windows-logo key and the Apple-logo key maps to the Alt key.
Using Mini vMac
In addition to acquiring a ROM image (which can only be done legally by someone who actually owns an early Mac), Mini vMac of course requires system software to run. Since the 800K disks used by a real Mac Plus are unreadable on PCs, and Macs haven't come with floppy drives in over five years, using the original system disks is generally impractical, though a Mac with a high-density disk drive should be able to make a disk image and transfer it to the machine running Mini vMac. Also, Apple has done the users of their early machines a favour by releasing all versions of System 6 and System 7 for free download on their website. Unfortunately, they come in the form of self-extracting StuffIt archives, a format which is inconvenient to read on non-Macintosh systems, though there is a (nagware) version of StuffIt for Windows and a well-hidden version of StuffIt for Linux on the StuffIt website.
A second problem is transferring data in and out of Mini vMac. No network capability is emulated, being difficult to implement and fairly useless given the dearth of modern machines that speak AppleTalk. On a Macintosh reading the disk images is not difficult, as even the newest Mac system software understands the original HFS file system in addition to the native HFS+. Linux machines can also be configured to read HFS filesystems, though the lack of resource forks on Linux filesystems requires that the data be formatted in a portable format, BinHex, or MacBinary. The HFStools package provides an interface to Mac disks that includes format transformation to and from MacBinary and BinHex, but it is old and unmaintained and may not work on a modern Linux system. There used to be a Windows program called HFVexplorer that worked in much the same way as HFStools, but it has become unavailable and is difficult to find.
Another option is somewhat bizarre, but has the advantage of working on all of the platforms. Mini vMac is not the only cross-platform 68K Macintosh emulator available; there is another, more complicated emulator called Basilisk II. Basilisk II emulates a 68030 or 68040-based Mac, which results in incompatibilities with early Macintosh software and in much slower emulation than Mini vMac. Basilisk II does have the advantage, though, of being able to mount the host filesystem as a pseudo-network drive inside the emulated Mac. On a reasonably fast machine Basilisk II is usable, and it is significantly more robust than other methods available on Linux, and more readily available on Windows than HFVexplorer. Furthermore, Basilisk II can run the newer StuffIt Expander 5, where the newest StuffIt that works on Mini vMac is version 4.0.1. This is a considerable advantage since the newer StuffIt format is more common on the Internet, even for data compatible with old software.
The emulation of older systems becomes more advanced and user-friendly all the time, as more and more people have old data and software they wish to use. Amiga users have UAE, old PC users have Dosbox, the C64 and Apple II both have numerous emulators available, and the old Macintosh has Mini vMac and Basilisk II. Based on my previous efforts to run vMac, I can conclude that Mini vMac represents a reasonably large stride forward in Macintosh emulation usability. The present version of Mini vMac is 2.7.1, it is released as Free Software under the GNU GPL, and it can be found online at http://minivmac.sourceforge.net .
This writeup is copyright 2005 D.G. Roberge and is released under the Creative Commons Attribution-NonCommercial-ShareAlike licence. Details can be found at http://creativecommons.org/licenses/by-nc-sa/2.0/ .