Macintosh IIci DIP32 ROM replacement issues (SST39SF010A)

Boctor

Well-known member
Recently, I ordered four SST39SF010A chips and flashed them with the correct four parts of the Mac IIci stock ROM (DWORD bytes 1,2,3,4 interleaved). I inserted them to my sockets in the correct orientation and order, powered on the IIci, and got the normal speaker pop with no chimes or any further activity. CPU is on, but it can't seem to see anything. The underside resistor (R97) and jumper for ROMSEL have the correct continuity as in the Apple schematic. I checked every single +5V, GND, address, and data line on every one of the four ROM chips/sockets via probing the 64-pin SIMM slot, and found nothing broken there, either. No traces are suspicious or scratched, and this area is far from any former electrolytic SMDs. The battery in this machine had never leaked before I removed it, and the only trace damage from the caps was under two of the gate chips in the power-on circuit, which I fixed up weeks ago.

1751521530157.png
(These bodges were carefully done to correct my own clumsiness while desoldering UM9. I screwed up at the last possible minute!)

Best case scenario, these flash ROMs are somehow incompatible with this machine, but that just seems too good to be true at this point, and I have no evidence to support this. They follow the right JEDEC standard, have the correct pinout, and their write pins are correctly left unconnected. I figured they would qualify as drop-in replacements for the IIci's mask ROMs. I am worried that something is instead wrong with my ROMSEL/ROMDEF circuit or worse, UK11/MDU.

For the time being, this IIci works just fine with a SIMM slot ROM, and properly ignores the slot when I reinsert the ROMSEL jumper. Before I desoldered and removed the old mask ROMs, the jumper setting had no effect: The machine would behave as if ROMSEL was open no matter what. Now, that circuit at least behaves as expected. Hopefully that's a specific enough symptom to be familiar to someone, or provides a clue on where to look next.

I'd greatly appreciate any second opinions, troubleshooting ideas, or advice from people with more IIci experience than myself.
 

croissantking

Well-known member
I may have missed this in a previous post, but what was the reason for desoldering the original mask ROM chips?
 

Bolle

Well-known member
Those chips need /WE tied to VCC to work.(unless you're actually going to write to them obviously)
I believe on the IIci logicboard that pin is not connected at all as you said, so a solder bridge between pins 32 and 31 on each chip should do.
 

Boctor

Well-known member
I may have missed this in a previous post, but what was the reason for desoldering the original mask ROM chips?
Oops, sorry if I forgot to clarify this, me mucking with ROMs just to get stock ones must've sounded pretty silly in the OP. I was using a ROMinator this entire time because there was a fault in the mask ROMs in my otherwise fully functional IIci. I've been trying to get the machine's built-in ROMs replaced for the sake of being able to run it stock again, and play with curiosities like A/UX, while hopefully learning things in the process.

Those chips need /WE tied to VCC to work.(unless you're actually going to write to them obviously)
I believe on the IIci logicboard that pin is not connected at all as you said, so a solder bridge between pins 32 and 31 on each chip should do.
D'oh! You're absolutely right, thanks so much for pointing this out! I could've sworn there was some gotcha with using those flash chips instead of OTP/UV ones, but I didn't pick up on that. I should've looked closer at the datasheet. I believe someone once made a similar mistake with PLCC32 adapters as well, and corrected it in the same way. My IIci seems to be chiming just fine now!
 

Boctor

Well-known member
Yes, and the relevant part of the datasheet (which I completely missed) supports this. OE has to be low input and WE high to read. Vice versa during erasing and flashing. Since I used a normal OTP/windowless EPROM for the IIcx ROM repair on the same day, this one difference with the flash chips didn't occur to me.

1751571406858.png

This page on doing a similar replacement, but with higher-capacity PLCC32s in pin adapters, noted the same behavior. Yesterday was my first time owning or using a ROM programmer (which I have to use via VirtualBox and USB passthrough) so I'm glad I just made an obvious beginner's mistake.
 

Boctor

Well-known member
I got a TL866II Plus, which was pretty affordable and works great in Windows VMs. I considered a Relatively Universal ROM Programmer as well, but my Arduino is currently serving as a Nintendo 64 Joybus to USB adapter, and the thought of having to adjust a trimpot to control programming voltages (is that still how it works?) made me nervous.

As a bonus, the TL866II was able to read the bad MH ROM from my IIcx. I converted the files to hex and had a look with diff. Only two nybbles were messed up, with a 4 becoming a 0 and an F becoming an E. I'm still curious how this happens, physically. With the IIci, I want to say at least one ROM's supporting circuitry totally failed and not just the data, since ROMSEL would always use the SIMM slot, and did not change based on the jumper until the original ROMs were desoldered.
 

eharmon

Well-known member
Those chips need /WE tied to VCC to work.(unless you're actually going to write to them obviously)
I believe on the IIci logicboard that pin is not connected at all as you said, so a solder bridge between pins 32 and 31 on each chip should do.
Oops. I posted a guide on replacing these and I didn't realize it needed to be Vcc, specifically...I need to correct that. If anyone notices any other errors here I'd appreciate it so this can be a better reference now that EPROMs are getting harder to source: https://eharmon.net/retro/eproms/

@Boctor if you want something drop in, an SST27SF010 or W27C010 don't require any bodges to my knowledge.
 

Boctor

Well-known member
Oops. I posted a guide on replacing these and I didn't realize it needed to be Vcc, specifically...I need to correct that. If anyone notices any other errors here I'd appreciate it so this can be a better reference now that EPROMs are getting harder to source: https://eharmon.net/retro/eproms/

@Boctor if you want something drop in, an SST27SF010 or W27C010 don't require any bodges to my knowledge.
Oh, good idea. I actually used your webpage to pick the SST flash parts in the first place, because the other replacements weren't carried by Digikey. I also picked the IIcx EPROM replacement with help from that page, so it's already been incredibly helpful.

I don't personally mind bodges in this use case, since it's to the chips themselves and not the PCB, and I never plan to reprogram them. Having the IIci confirmed fully working is immensely satisfying. I never thought I'd be able to get one, let alone repair it.

Oh, yeah, those are nifty.

If you don't mind the command line, you don't need to have Windows installed to drive that: look at https://gitlab.com/DavidGriffith/minipro
This looks really useful. I was afraid to deviate from official software at all for my first attempts, but it might be worth trying in the future. Especially with reprogrammable flash, where mistakes wouldn't come with penalties beyond "wait two more seconds."
 

cheesestraws

Well-known member
This looks really useful. I was afraid to deviate from official software at all for my first attempts, but it might be worth trying in the future. Especially with reprogrammable flash, where mistakes wouldn't come with penalties beyond "wait two more seconds."

Yup, understandable; always best to check something works properly with the official software first.

For what it is worth, I too use a TL866 II+, and at this point I exclusively use that minipro tool; it works great for me.
 

eharmon

Well-known member
Oh, good idea. I actually used your webpage to pick the SST flash parts in the first place, because the other replacements weren't carried by Digikey. I also picked the IIcx EPROM replacement with help from that page, so it's already been incredibly helpful.

I don't personally mind bodges in this use case, since it's to the chips themselves and not the PCB, and I never plan to reprogram them. Having the IIci confirmed fully working is immensely satisfying. I never thought I'd be able to get one, let alone repair it.
Yeah, though they are easier to source and easier to work with, the more modern chips are still out of production in many cases. I've had good luck with used parts from China, though.

You could also consider OTP parts, which are just EPROMs without the window. Those tend to have a lot more stocked options still.
 
Top