Firmware for Mac ROM SIMM programmer
Go to file
Doug Brown a113d4da0d Don't restrict to erasing the first 2 MB of a "2 MB" SIMM
The problem is that over time, the meaning of curChipType has changed.
It was originally meant to exactly map to chips (four SST39SF040 chips
or four M29F160FB5AN6E2 chips) but over time its meaning has shifted to
simply indicating whether the unlock address needs to be shifted or not.

When curChipType is ParallelFlash_SST39SF040_x4, sometimes the
programming size is 4 MB or 8 MB. So don't restrict it to 2 MB.

Note that the erase sector sizes are just plain wrong in this case. In
the future I should read the chip ID and keep a table of sector sizes
for each known chip ID.
2023-08-02 21:01:30 -07:00
.settings Fix line endings 2023-05-28 19:34:02 -07:00
drivers Update copyright date 2023-06-25 11:38:41 -07:00
hal Update copyright date 2023-06-25 11:38:41 -07:00
tests Update copyright date 2023-06-25 11:38:41 -07:00
.cproject Switch to config header for LUFA 2023-06-25 11:38:41 -07:00
.gitignore Ignore CMakeLists.txt.user generated by Qt Creator 2023-06-25 11:38:41 -07:00
.project Fix line endings 2023-05-28 19:34:02 -07:00
chip_id.h Update copyright date 2023-06-25 11:38:41 -07:00
CMakeLists.txt Set up CMake build 2023-06-25 11:38:41 -07:00
led.h Update copyright date 2023-06-25 11:38:41 -07:00
LICENSE.txt Fix line endings 2023-05-28 19:34:02 -07:00
main.c Update copyright date 2023-06-25 11:38:41 -07:00
programmer_protocol.h Update copyright date 2023-06-25 11:38:41 -07:00
README.md Update README with build instructions 2023-06-25 11:38:41 -07:00
simm_programmer.c Don't restrict to erasing the first 2 MB of a "2 MB" SIMM 2023-08-02 21:01:30 -07:00
simm_programmer.h Update copyright date 2023-06-25 11:38:41 -07:00
SIMMProgrammer-AVRStudio.atsln
SIMMProgrammer-AVRStudio.cproj
toolchain-avr.cmake Add CMake toolchain for AVR compilation 2023-06-25 11:38:41 -07:00
util.h Update copyright date 2023-06-25 11:38:41 -07:00

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, all II-series Macs with a 64-pin SIMM socket (should include the IIx, IIcx, IIci, IIfx, and IIsi), and the Quadra 700.

This particular repository contains the main firmware that runs on the programmer board. The current compiler version used with this project is avr-gcc 4.8.2. Using a different version of gcc may result in worse performance due to some very tight optimization performed on this project to decrease programming time.

Downloads

Binary downloads (originally from Google Code) can be found at https://github.com/dougg3/mac-rom-simm-programmer/tree/downloads/downloads

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
Custom QextSerialPort for Programmer Software https://github.com/dougg3/doug-qextserialport-linuxnotifications none
QextSerialPort base https://github.com/qextserialport/qextserialport https://github.com/qextserialport/qextserialport/blob/wiki/Welcome.md
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

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:

mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-avr.cmake ..
make

This will result in a generated SIMMProgrammer.bin file which can be programmed to the board using the Windows/Mac/Linux software.

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