Firmware for Mac ROM SIMM programmer
Go to file
Doug Brown 87e074413c
Remove mention of Quadra from compatibility
I don't think the existing pinout is 100% compatible.
2023-09-11 20:44:17 -07:00
.settings
drivers
hal Mark the M258KE board as having pulldown support 2023-09-10 05:02:44 -07:00
tests Don't assert OE and CS simultaneously during electrical test 2023-09-10 05:02:44 -07:00
.cproject Exclude M258KE code from Eclipse AVR builds 2023-09-10 05:02:44 -07:00
.gitignore
.project
chip_id.h
CMakeLists.txt Hook up the M258KE port 2023-09-10 05:02:44 -07:00
led.h
LICENSE.txt
main.c
programmer_protocol.h
README.md Remove mention of Quadra from compatibility 2023-09-11 20:44:17 -07:00
simm_programmer.c Bump version to 1.5.1 2023-09-10 05:02:44 -07:00
simm_programmer.h
SIMMProgrammer-AVRStudio.atsln
SIMMProgrammer-AVRStudio.cproj
toolchain-avr.cmake
toolchain-m258ke.cmake
util.h

Description

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:

  1. 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.
  2. 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.

Downloads

Binary downloads can be found at the following links:

Repositories

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

Firmware compilation instructions

AT90USB646/AT90USB1286

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

M258KE3AE

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

Common information

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

Videos

ROM SIMM

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

Regular ROM

Mac IIci ROM hack (custom startup icons): https://www.youtube.com/watch?v=LALaYy7ZLy0

Related articles

Blog posts

Others

Non-related articles