Using Linux to give life to old computers – Part 2

Screen shot of Quadra desktop. Notice the floppy drive has been read successfully.
Almost a barrel full.

In the previous post, I installed Debian Linux on an old Dell laptop so that I could use its floppy drive and network connection to get files off the internet onto an ancient Apple Macintosh Quadra 700.

Macintosh Quadra 700. This machine was a top-of-the-line computer that cost $6000 in 1991.
Macintosh Quadra 700. This machine was a top-of-the-line computer that cost $6000 in 1991.

I got this old Mac from eBay for a price that is higher than I care to admit, especially for a computer that probably has less than 1/100th the processing power of the cell phone I used to take its picture.

The machine was worth it, in my opinion, because it came fully loaded with RAM and VRAM, (20MB and 4MB respectively) and has an original and working hard drive. The chassis and all of its connectors are in very good condition.

When I stopped in Part 1, the Zip and floppy drives were working and I was able to read and write to them from the Linux laptop. But I ran into a big problem that I had forgotten about after all these years. When copying from a UNIX file system to a Mac file system, the UNIX file system ignores the Resource Fork, a crucial part of the Mac’s executable files. Though Linux has the ability to mount, read, and write HFS file systems, it does not know how to handle this resource fork and only can copy the data fork.

There are utilities for doing this in Linux. In Debian, they can be installed with the Apt packages hfsprogs and hfsutils, but after several failed attempts, I gave up. I needed a different approach that did not require a UNIX file system as an intermediate step.

After many different tries and google searches that revealed nothing, I figured out the right approach. There is a classic Macintosh 68k CPU emulator called Basilisk II that uses a ROM from one of these old machines. It runs on Linux and the other OSes. From inside the emulator, I copied the downloaded files to the floppy drive which was mounted in the emulator at launch time.

Adding the block device to Basilisk II’s settings for the floppy.

Figuring out how to mount the floppy drive was tricky because it had to be mounted in a way that bypassed the UNIX file system entirely. The solution is to add the block dev file, ‘/dev/fd0‘ to the list of volumes in the Basilisk II configuration window that appears at launch. For this to work, the floppy can not be mounted in Linux or with the linux HFS tools. Amazingly, Basilisk II knows exactly how to handle a raw block device like this.

Running Basilisk II in Linux; emulating a Quadra 650; running System 7.5.5; and copying files to a physical floppy called ‘asdf’. This mounted floppy can be seen in the lower right of the emulator window.

The only drawback to this approach, which isn’t a big deal considering the other difficulties, is that I have to quit the emulator to swap out the floppy out, or else I would get file system errors that required me to reformat the floppy with the Quadra. The emulator treats the floppy block device like a non-removable hard drive rather than a removable floppy, so in order for changes to the file system to be updated correctly, the machine had to be Shut Down entirely.

That’s it! I was able to successfully copy 2 applications over to the Quadra that will be needed when I get my Ethernet transceiver, MacSSH 68k and Stuffit Expander 5.5. With these programs, the Quadra should be able to connect to other machines with its own Ethernet and copy files.

Mac OS 7.5.5 desktop booted on actual Quadra 700. Notice floppy ‘asdf’ is mounted.