Last update: May 21, 2000
The GM Computer Command Control (C3) family of ECMs, used mostly in the mid 1980's, but also as late as 1995, contain 4K to 8K of non-removable ROM in addition to the socketed MEMPAK (E)PROM. The ROM contains program code. In order to fully understand the data tables in the MEMPAK, the ROM code must be dumped for disassembly. There are several ways to do this, both destructively and non-destructively. Luckily, the MEMPAK of many C3 ECMs also contains some program code, which is invoked periodically by the ROM. This provides an opportunity to substitute a ROM dumping function into the MEMPAK. With some minimal hardware knowledge, this function can dump the ROM contents out via a convenient interface. The IAC driver outputs are one such convenient interface. The nominal 12 volt peak to peak signal swing can be easily voltage shifted to resemble an RS-232C output. A simple software UART function can transmit serial data via an IAC output. This output can be captured by a terminal emulator running on any personal computer with a serial port.
Listed below are MEMPAK EPROM images for a variety of ECMs. These EPROM images are ready to use with no address offsetting required. Burn the image into an EPROM and install it into the target ECM in place of the original MEMPAK. Ground ECM pins A12 & D1. Connect a 12 volt power source to ECM pins A6, B1 & C16. Connect the positive end of a 1 µF capacitor to ECM pin C6. Note, this is not the regular ALDL output pin. Connect the negative end of the capacitor to your computer's RxD serial port input. (Also provide a ground connection between the ECM and serial port.) On the computer, run a terminal emulator set to 8-N-2 and 9600 baud. The ROM contents should now be dumped repeatedly to your terminal in Motorola S19 format.
The 1 µF capacitor value is not critical. Depending on your computer's RS-232C implementation, it may need to be adjusted up or down. The dumping is meant to be performed with the ECM on a workbench, although it should also work in circuit in a vehicle. In that case, disconnect the IAC, don't run the engine, and certainly don't drive the vehicle.
Each ROM dump iteration is terminated by a S9 record. Some EPROM programmers require this as an end flag. The normally unused address field of the S9 record is used by the dumping function to provide an extra sumcheck. This sumcheck is simply the mod 65536 sum of all the ROM bytes.
The following ECMs currently have a ROM dumping MEMPAK available:
ECM | EPROM image | Derived from | Results |
---|---|---|---|
1226459 | Spit1226459.S19 | DNN2263 | |
1226461 | Spit1226461.S19 | CMH3899 | |
1226867 | Spit1226867.S19 | HTD5293 | |
1226869 | Spit1226869.S19 | FTY9355 | |
1226870 | Spit1226870.S19 | CSR2618 | |
1226948 | Spit1226948.S19 | FWJ9999 | |
1227137 | Spit1227137.S19 | FJD8515 | |
1227148 | Spit1227148.S19 | ATJ9188 | |
1227153 | Spit1227153.S19 | HUD5128 | |
1227429 | Spit1227429.S19 | ARY0382 | |
1227170 | Spit1227170.S19 | AKYN3442 | ftp://efi332.eng.ohio-state.edu/incoming/7170ECM.S19 |
1227302 | Spit1227302.S19 | HNZ5674 | |
1227747 | Spit1227747.S19 | AKAL1158 | ftp://efi332.eng.ohio-state.edu/incoming/Spit7747_output.s19 |
1227783 | Spit1227783.S19 | AKBA1303 | |
1228746 | Spit1228746.S19 | ANLU5369 | |
16136965 | Spit16136965.S19 | unknown (ASMB1644 or AXFF0233) | |
16144288 | Spit16144288.S19 | AWHH5876 |