BMOW title
Floppy Emu banner

Rewritable ROM Disk for Mac Plus

plus-flash-tool

Stuffing new technology into old hardware is fun. How about a bootable, rewritable ROM disk for a Macintosh Plus, using modern flash memory? Dream no more, the reality is here. 🙂 Using a small adapter board, the original ROM chips on the Mac’s logic board are replaced with 1 MB of flash ROM. The flash ROM contains a modified copy of the original Apple ROM data plus a special disk driver, and a disk image occupies the remainder of the 1 MB of flash. When powered on, the Mac can be booted from the built-in ROM disk with a single key press. When necessary, the contents of the ROM disk image can be rewritten from within the running system, using a custom-made flash updater program. You can fill the ROM disk with system software and a couple of games, or whatever you want to show off without needing a disk. The same thing should be possible for the Mac 128K and Mac 512K too.

This project is a combination of three smaller projects, two of which were developed by other people.

 
1. ROM Adapter Board

Swapping the stock ROMs for larger 1 MB flash ROMs requires a physical adapter, because the flash ROMs have more pins and have some signal pins in different locations than the stock ROM chips. Rob Braun designed an adapter board that fits in the stock ROM sockets of a Mac Plus, and accepts modern (well, less ancient) 29F040B flash ROM chips. In order to take advantage of the entire 1 MB, two extra wires must be connected to address pins on the CPU. This can be done using IC test clips, or by soldering wires directly to pins on the 68000 CPU.

rom-adapter-board

 
2. ROM Disk Driver

Apple provided the Macintosh Classic with a built-in ROM disk: hold Command-Option-X-O during startup, and the Classic will boot from the built-in disk image. Rob and Doug Brown studied how the Classic’s ROM disk driver works, and developed a stand-alone ROM disk driver for vintage Macintosh computers. Originally designed for custom ROMs in Mac II-series machines, Rob updated the ROM disk driver to work with the modified Mac Plus ROM as well. It even has a custom “pirate Mac” icon at the boot screen, to remind you that you’ve got a modified ROM installed. But the disk image is fixed in ROM – to change it, you need to open up the Mac and put the flash ROM chips in an external EPROM programmer.

plus-romboot

 
3. Rewritable Flash ROM

In a discussion on the mac68k.info forum, I proposed connecting the CPU’s R/W pin to the flash ROMs, to make in-system reprogramming of the disk image possible. By coincidence, I had just finished my 68 Katy breadboard computer, which also used a 29F040B flash ROM and a 68000-family CPU. So I knew in-system modification of the flash ROM data was possible. Writing to a ROM is a strange concept, and with the 29F040B, it will ignore standard attempts at writing. That’s a good thing – you wouldn’t want a software bug to go modifying your ROM! But if you write a series of magic “unlock” bytes to a series of magic addresses in the ROM, it will enter a special command mode. From this mode, it’s possible to query the chip parameters, erase blocks of flash memory, and write new values to the flash.

To make this happen, I needed to write a flash updater program that could run on a vintage Mac. It’s not rocket science, but it had been 20 years since I last did any real classic Macintosh programming, so it took me a while to dig up Metrowerks Codewarrior and remember how to create a “hello world” type program. The resulting tool isn’t pretty, but it gets the job done, and now the contents of the ROM disk can be modified from within the running system, or even the ROM code itself can be modified.

 
Build

Want to build one of these? You’ll need soldering equipment, and an EPROM programmer to write the initial image to the flash chips.

PCB Gerber files for the adapter board – plusrom5
Flash Tool for in-system ROM updating – Flash Tool 1.1
Modified ROM image (concatenate your ROM disk image to this to make a bootable ROM disk) – modplus.bin

Read 2 comments and join the conversation 

2 Comments so far

  1. Charles December 20th, 2014 5:15 pm

    lol can’t you tap into the 3 megs between SCSI and SCC ? 😛
    sorry you give me and inch and i am trying to take a mile 🙂 Flashing on on the fly… ( in machine ) is super awesome… Wonder if your software could be used with Dougg3’s 2mb and 8mb simms ? lol then people will not need to buy his programmer.

  2. Charlie December 20th, 2014 6:57 pm

    Awesome! See also Retro68 [1] for a way to compile programs for 68k Macs in a modern development environment.

    [1] https://github.com/autc04/Retro68

Leave a reply. For customer support issues, use the Contact page instead of comments.