This project is a bootloader and firmware for a Macintosh ROM SIMM programmer, along with control software for Mac OS X, Windows, and Linux. The ROM SIMM is compatible with the SE/30, IIx, IIcx, IIci, IIfx, and IIsi.
This particular repository contains the main firmware that runs on the programmer board. There are two variants of the firmware that are built from this source code:
- The firmware for my original programmer, the Big Mess o' Wires programmer, and the CayMac Vintage revision 1 programmer. These programmers use the Atmel/Microchip AT90USB646/1286 AVR microcontroller. The current compiler version used with this version of the firmware is avr-gcc 4.8.2. Using a different version of gcc may result in worse performance due to some very tight optimizations performed on this project to decrease programming time.
- The firmware for the CayMac Vintage ROMmate-2, which uses the Nuvoton M258KE3AE ARM Cortex-M23 microcontroller. The compiler that has been tested with this firmware is ARM GCC 6-2017-q1-update.
Binary downloads can be found at the following links:
The project is spread over a few repositories. Some of them have a wiki.
Repository | Repository location | Wiki location |
---|---|---|
Programmer Firmware (AVR microcontroller) | https://github.com/dougg3/mac-rom-simm-programmer | https://github.com/dougg3/mac-rom-simm-programmer/wiki |
Bootloader (AVR microcontroller) | https://github.com/dougg3/mac-rom-simm-programmer.bootloader | |
Programmer Software (Windows/Mac/Linux) | https://github.com/dougg3/mac-rom-simm-programmer.software | none |
Windows Driver (.inf file, not needed on Windows 10) | https://github.com/dougg3/mac-rom-simm-programmer.windriver | none |
CAD for programmer, along with 2 MB and 8 MB SIMM PCBs | https://github.com/dougg3/mac-rom-simm-programmer.cad | none |
Mac ROM patcher | https://github.com/jpluimers/macrompatcher/ (from https://code.google.com/p/macrompatcher) | none |
This firmware is used on my original programmer, the BMOW programmer, and CayMac's original programmer.
As mentioned earlier, this is an AVR project that is currently optimized for avr-gcc 4.8.2. It can be built using either CMake or Eclipse with the AVR Eclipse plugin. To build with CMake, make sure avr-gcc is in your path, and then run:
mkdir build_avr
cd build_avr
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-avr.cmake ..
make
This firmware is used on the CayMac ROMmate-2.
Tested with ARM GCC 6-2017-q1-update. To build with CMake, make sure arm-none-eabi-gcc is in your path, and then run:
mkdir build_arm
cd build_arm
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-m258ke.cmake ..
make
The build processes described above will create a SIMMProgrammer.bin file that can be programmed to the board using the Windows/Mac/Linux software. You can also generate a combined firmware image containing both the AVR and ARM builds that automatically flashes the correct firmware based on the detected board when using software version 2.0 or newer:
cat build_avr/SIMMProgrammer.bin \
<(echo -en "\xDB\x00\xDB\x01\xDB\x02\xDB\x03\xDB\x04\xDB\x05\xDB\x06\xDB\x07") \
<(echo -en "\xDB\x08\xDB\x09\xDB\x0A\xDB\x0B\xDB\x0C\xDB\x0D\xDB\x0E\xDB\x0F") \
<(echo -en "\xDB\xDB\xDB\xDB\xAA\xAA\xAA\xAA\xDB\xDB\xDB\xDB\x55\x55\x55\x55") \
build_arm/SIMMProgrammer.bin \
> SIMMProgrammerFirmware.bin
What | Where |
---|---|
IIci booting from ROM disk | https://www.youtube.com/watch?v=SEFcQRmYtBI |
Mac IIci Modified (Slower) Startup Chime | https://www.youtube.com/watch?v=lyIIRtR3Aw0 |
Playing with IIci ROM - other death chimes | https://www.youtube.com/watch?v=mlmt1AealLo |
Mac IIci with a newer Mac's startup chime | https://www.youtube.com/watch?v=bRJtMMYCf0E |
Mac IIci with Super Mario Bros startup chime! | https://www.youtube.com/watch?v=omL7mx0zxvI |
Mac IIci Mario Startup Chime Part 2 -- Long! | https://www.youtube.com/watch?v=Yen0omvBo2Y |
Mac IIci - Another Custom Startup Chime | https://www.youtube.com/watch?v=1R4W3mApAio |
Mac IIci ROM hack (custom startup icons): https://www.youtube.com/watch?v=LALaYy7ZLy0
Blog posts
- Mac ROM SIMMs where you can order them too.
- Soldering using solder paste, a dispenser, and a toaster oven
- linux
udev
rules - 8 MB Mac ROM SIMM
- Mac ROM SIMM programmer
- Review of Seeed Studio Fusion PCB service
- Mac IIci custom startup chime, part II
- Mac IIci custom startup sound ROM hack