Jump to content

Another IIci ROM hack

Recommended Posts

  • Replies 1k
  • Created
  • Last Reply

Top Posters In This Topic

Wait no longer :-)


It works!!! My code would have worked fine the first time if I hadn't accidentally commented that line out.



And for anyone without YouTube, you can at least hear it in action:




The only limit holding me back from longer sounds is ROM space. That sound uses up about 31k of the 35k available, so to do anything much longer than that, we're going to have to look toward ROM expansion, which I believe Dennis Nedry did (right?). I suppose the other option would be to downsample a sound to 11 KHz to allow double the length, but then the sound quality starts to suffer.

Link to post
Share on other sites

I was never able to test the expanded ROM space, but I did provide the extra address lines to my larger ROM chips. I don't see any reason why it wouldn't work. If you have bigger ROM chips, I can tell you how to hook up these extra 2 address lines. We're basically limited to 2 extra address lines (4x storage space) because of the pins available on these sorts of ROMs. To go higher, we would have to make a special ROM SIMM instead of using the original locations on the logic board. Many additional address lines are available in the ROM SIMM slot.

Link to post
Share on other sites

The ROM SIMM Slot pinout for the IIci is here:




You can use a continuity tester to see how the address lines on the ROM chips are connected to the ROM SIMM slot. Then just use your ROM chip pinout to hook up the next two! I traced around the board and found more convenient spots to tap into these two address lines, but there's no reason why you couldn't solder wires directly from behind the SIMM slot to the extra address pins on your ROMs.

Link to post
Share on other sites

Ah, I see. Thanks for the info! Well, all the chips I have right now are the same size as the originals so I'll have to get some bigger ones. On the other hand, making a ROM SIMM sounds kind of fun too :) Decisions, decisions...


I'm going to try to get this in a usable state so others can try patching the IIci too. I'll host the necessary tools on my blog and link to it. I don't anticipate any copyright problems since the only code I'll be distributing is my own that just has to get patched over the existing ROM, but I'm not a lawyer so who knows...

Link to post
Share on other sites

Here is my preliminary blog post with instructions on how to do it and the necessary ROM patches.


I may end up having to go into more detail on some of the steps, but it's a start! Again just to be clear, I don't want to break any rules on this site. I'm not distributing any copyrighted ROM images to anyone or turning this into dougg3's Mac ROM copying service; I'm just giving instructions on how people can patch their IIci ROM with whatever custom startup sound they can dream of :-)

Link to post
Share on other sites
  • 2 weeks later...

Great hack!!


I couple years ago I discussed with someone about using the IIci ROM with an SE/30, like how the IIsi and IIfx ROMs can be used with the SE/30. The problem has always been the form-factor though since IIci's do not use a SIMM. How could a IIci ROM be transplanted to an SE/30 ROM? Any pointers on how to do it? I would be interested in helping out where I can.



Link to post
Share on other sites

The way that Gamba and I did it was to read out the code from the IIci ROM chips and program it into PLCC32 chips. Then put those chips on a SIMM.


I desoldered the IIci's ROM chips and read the contents out with my chip programmer and programmed up a couple of sets of AT49F010, which I shipped to Gamba. He layed out and etched a ROM SIMM with the appropriate pads for the PLCC32 chips, and soldered them to the board.


Using an existing SE/30 ROM SIMM with PLCC32 chips won't work (e.g. desoldering old chips, soldering in new ones) because there's a change in pinout for the PLCC32 non-volatile memory chips between 512Kb capacity and 1 Mb capacity. The SE/30 ROMs which have PLCC32 chips use the 512Kb capacity chips and so have that pinout. The IIci code needs 1 Mb capacity chips and so if you solder them on the older ROM SIMM, the pins on the 1 Mb chips won't match the pads (signal name-wise) on the older ROM SIMM made for 512Kb chips.


I've laid out a ROM SIMM board which I could have manufactured, but I don't think I'd make my money back out of it. Also, I'm not sure whether to put all four chips on the same side of the board or not. That's how I have it laid out, but that makes it difficult to hand solder the pins of the adjacent chips. Alternatively, I could put two on each side of the board and well spread. The disadvantage to that is that if I went to a toaster oven soldering method, then I'd have the problem of components on two sides of the board.


So one design is good for hand soldering. The other design is good for toaster oven soldering.

Link to post
Share on other sites

This is actually a really opportune time for this topic to come up because I've been doing some thinking/work on making a ROM SIMM. tt, I was going to point out the ROM SIMM that trag and Gamba made, but trag beat me to it :-) I wonder if a IIci hacked ROM in an SE/30 could change its startup chime as well?


I ended up buying a 64-pin Apple ROM SIMM on eBay that had eight chips on it, each a 27C010, for a total of 1 megabyte of storage. It was for a Personal LaserWriter NT. I was going to desolder the chips from it and put in sockets. I was thinking that maybe it used that "chip select 1" or whatever on the ROM SIMM pinout, four chips per chip select line. Unfortunately, I failed to realize that the Personal LaserWriter NT has a 68000, which only has a 16-bit data bus. It was a bit of a gamble, and it didn't pay off. It did give me a physical specimen that fits the ROM SIMM slot though, so it wasn't a complete waste.


trag, I saw on Gamba's site the IIci ROM SIMM you worked with Gamba on, that's awesome! I didn't realize that you actually have a ROM SIMM laid out though! I'm actually very interested in a IIci ROM SIMM. It's a pain in the butt to change out the DIPs because they are below the hard drive/floppy drive carrier so you pretty much have to take everything out to get to them. Plus it theoretically could allow a larger ROM if I'm not mistaken. I think the biggest benefit is it makes it much easier to do something like hack the startup sound now that I know how to do it.


I have actually been laying out a board of my own for the IIci ROM SIMM. I'm not a hardware guy at all (which probably means my design is doomed to fail, lol). Aside from the struggles to connect all the address lines for all the chips together with only two layers, the biggest problem I've found is that the cheap PCB places (BatchPCB for example) only offer 63 mil thick boards, and the ROM SIMM is 47 mils thick. Is it possible to somehow file down the board near the bottom so it's only 47 mils thick there? It seems like that might have been what you and Gamba did on that SIMM?


I totally understand why it probably isn't worth the money to have it manufactured. It seems like it's just not cost effective at all for low quantities. Despite that, I'm still kind of interested in trying to make one with one of the cheap PCB places that put a bunch of board designs together and have them all manufactured. They seem fairly reasonably priced...it's the 63 mil thing that's mostly holding me back, I think.


P.S. I think I found a reasonably-priced copy of GttMFH2E on Amazon over the weekend! We'll see if it's legit!

Link to post
Share on other sites

Ah yes, the Gamba/trag IIci hack...that's where I was inspired.


If there is a design out there to be made, I would be interested in putting down some cash to split the build. There are a few options out there for fabrication. Sounds like it could almost be a universal ROM package that could be used for different 68K macs for different reasons.


It would be awesome to have a PowerMac chime with a IIci ROM in an SE/30!!

Link to post
Share on other sites
. . . one design is good for hand soldering. The other design is good for toaster oven soldering.

Silly questions:

__Are you designing for a handmade ProtoPCB etching process again or for a fab house run . . . :?:

. . . if the former, I've got a couple of tricks I came up with for that process 20+ years ago. [;)]]'>

__Are two different solder pastes available with a workable activation temperature differential? }:)

Link to post
Share on other sites
__Are two different solder pastes available with a workable activation temperature differential? }:)


I think he means through-hole vs SMT components since there are only components on one side of the board. Through-hole I am guessing might be better for this application since it would allow for the use of sockets unless there are SMT sockets for the chips that are used.


I have done one PCB design in the past, I can go about making one for this ROM SIMM (wouldn't be the most efficient for me to do it), it would be a reverse engineering from an actual ROM and based on the IIci design on Gamba's website. It would just need to be tweaked for a double sided board. I would just need some help with the selection of which chips to design the board around and have them programmed since I do not have the programming hardware.

Link to post
Share on other sites

Nope, he's talking about two layouts for SMT ROMs . . . IIRC, DIP ROMs don't exist in the capacities required . . . [;)]]'>


. . . two ICs on each side = easier hand soldering of at least one side . . .

. . . four ICs on the same side = DIY SMT Component Installation (Toaster Oven Method) . . .


Two different activation temperature solder pastes = two step/two sided IC Baking! }:)


Methinks a new ROM Card Design is simmering in the Post Processing Lobes of several comrade's brains ATM! :o)

Link to post
Share on other sites

Wow. Lots of discussion on the ROM module idea.


Yes, I have a ROM module laid out. I haven't looked at the design in a couple of years though so there could be some issues:


1) There might be a few details left to fix.

2) I may have it on an 8" X 10" panel with a bunch of IIfx SIMMs.

3) I had a hard drive failure a while back which wiped out a bunch of rocket engine press-form designs. I thought that I always made backups of my designs, but if those are gone, some of my circuit boards could be gone. I need to check this.


However, none of those is much of a problem. It doesn't take very long for me to lay one of these out. I am helped on the ROM layout by the fact that the SIMM socket is the same (IIRC) as the IIfx RAM SIMM. So I already have a part created for the edge connector size and pins and latch holes on the edges. And I know that this part works, because my IIfx SIMMs work.


Yes, the 63 mil vs 47 - 50 mil is the biggest problem. In fact, it bit both Gamba and I. We were working merrily along each doing our part to make that SIMM and Gamba emails me to say he finished the assembly and he can't get it into the ROM socket. At that point it had pins on both sides of the board.


So he filed/ground down the back side of the SIMM until the edge connector was .5" instead of .063". This works because it's a SIMM and not a DIMM.


And yes, one of the biggest things holding me back was that all the cheap circuit board fabrication options I could find were for "standard" .063" board.


So I was looking at having 100 - 200 of the board made and then I could populate them as needed. However, at the time that I actively looked at that, the price would have been ~$600 for the lot and the chances that there wouldn't be enough people who want one to pay back the cost seemed high.


Enter SeeedStudio, as bigmessofwires just presented. I've seen their offer before and it looks great:



I just hadn't considered it in connection with the Mac II family ROM project. Thank you bigmessofwires. That should make it doable.


An academic issue, but perhaps of interest is that regular board fabrication has fallen in price a bit, or at least there are more special offers available. I think that having a hundred boards made, might cost more like $200 these days, because 4pcb.com keeps offering board specials with no NRE costs.


On a small run like this the NRE (non-recurring expenses) is what really kills a project.


As T80 surmises, I am discussing two different surface mount designs. There are through hole PLCC32 sockets. So it could be a through-hole design. However, if one made it through-hole, that would preclude soldering the chips directly to the board. For folks who just want a 32-bit clean ROM for their SE/30, chips soldered to the board is preferred.


On the other hand, surface mount PLCC32 sockets are a pain. If sockets are the goal, it's nicer to do through-hole.


On the gripping hand, surface mount PLCC32 sockets would be easier than through-hole if I was doing toaster oven soldering. But I'm not doing that yet. It's a dream. Maybe even a goal. But it's not on the horizon.


I suppose I could lay it out as surface mount pads with holes drilled in the middle where through hole could be mounted. I'm not certain, but I think the foot prints may be compatible.


What do people want? Hand assembly? Toaster assembly? Sockets only? Hybrid surface mount/through-hole layout?


Is there someone else who could do the assembly if I designed the boards?


And is there anyone else who is gung-ho to lay their design out immediately? It will take me some weeks, possibly months to get to this. I still need to finish the PEx ROM before I do anything else...


So, I'm willing to work on this. But I'm also willing to step aside if others can get to it faster.


Oh, and T80, very cool about the two temperature activation for the solder. One could always use leaded and lead-free solder. They have about a 20 - 30C difference in melting point. But one would need a good controller on the oven. I found a link a while back that pointed at some controllers for a little under $100. I was going to whip one up out of a microcontroller and SCR, but when it's all said and done, buying an existing product for $100 is probably cheaper than developing one's own solution, even if it looks like the DIY should be cheaper. Experience says it won't be...


Edit: T80, I just noticed that I missed your question about home-made vs. fabrication. In recent years all my thought has gone to commercial fabrication. For a while there I was going to do home-made. I was going to use the toner-transfer method:




but ultimately decided it was too much trouble.


That's why I had the ROM SIMM laid out on an 8" X 10" panel with IIfx SIMMs (and some 30 pin SIMMs, IIRC). The toner transfer paper lends itself to doing 8.5" X 11" panels, or slightly smaller. I found some .050" double sided copper clad board in about those dimensions.


Making the boards sounds easy. Here's where it gets to be too much trouble: Vias.


One is left having to hand drill all the vias and then solder a wire through the board and onto each side. Alternatively, one could build a CNC-type drill (one fellow built one out of an old plotter). Once the holes are drilled, and before the board is etched, one could squeegee electrically conductive ink onto the board and then blow it through the holes, so that it coats the inside surface of each drilled hole. Then drop the whole board in a copper sulfate tank and electroplate until the ink-covered holes are coated in copper.


Setting up to electroplate is a pain. That conductive ink is either hard to find, or ridiculously expensive.


By the time I looked at all the problems that vias were going to cause, I decided it was better to just go with commercial fabrication.


If I had a workshop, where I could set up a permanent etch tank, and electroplating tank and associated stuff, then maybe....


And then there's solder mask. It's not strictly necessary, but it certainly reduces errors when assembling (soldering) the boards. It's a photosensitive laminate. Well, I already have a laminator to make the toner transfer method efficient, but then one needs a photo-exposer thingy to get the solder mask pattern onto the solder mask laminate. And at that point, one may as well abandon the toner transfer method and go to a full-on photo-resist method of etching the boards.


But again, the vias are a pain.


So, commercial fabrication all the way. There's a point at which one's volume is large enough to make it cheaper to buy/build all the stuff to do it at home, and I think that point is where one goes into business as a PCB fabrication house. :-)

Link to post
Share on other sites

:lol: THX, trag! :b&w: Workarounds for the "it can't be done" problem set were my "stock in trade" back in the Sign Business and the Font Cartridge ( 4 x 32k ROMs) Emulator Startup day! [;)]]'>


As for the thickness issue, NoPro! :approve: Just do the SIMM Layout WITHOUT the pads on the back side!

A makeshift router-table/sliding-table jig will handily solve that problem for ProtoPCBs a/o Production PCBs! [:D]]'>


p.s. I'm best know as either Trash or jt (lower case) over on 'fritter and around these here parts! :o)


p.p.s. i see we're posting at the same time! True, Plated thru-holes are a major pain, but if you maximize the design for minimizing the Via count, things can work out great. I make the resists for double sided Proto-PCBs on the Vinyl Cutting Plotter, weed the high-performance sign vinyl VERY carefully, especially those little thru-hole centers for drill pressin' and just use a regular photo tray and CrapShack etchant.


One trick I came up with was to lay out all the signals so their side of the zener pads connected to traces through the board w/the other sides connected to common ground, which makes for a nice, quiet board! If you're doing the Toaster Oven Method, just sew up your board with bare copper wire and clip after soldering the other side . . .

. . . or do the SMT-2-Step and clip afterward! }:)

Link to post
Share on other sites

Sorry if this is a dumb idea, I don't know much about what's going on. I know that on the IIci there's a jumper you take off to use the ROM SIMM slot (at least, I think that's how it works.) While the jumper is in place and the computer is on, is it possible to access the ROM SIMM slot using some sort of utility? If so, would it be possible to make a ROM SIMM that you can flash from the OS? Have a utility where you select a sound and maybe a couple icons for the startup process, it flashes the ROM, you then shut down, pull the jumper, then boot with modified ROM.

Link to post
Share on other sites

OK, I missed the part about the component being on two side. Yes, you could do a solder hierarchy where one side is reflowed at a higher temperature than the subsequent side, but it's probably too much trouble. Hand iron soldering is the most accessible for most people to use, so I would go for that. A through-hole design is probably also the most accessible since you wouldn't need to deal with solder paste and stencils.


If PLCC32 chips comes in a through-hole package, then the homebrew assembler could install either the chips directly or the socket if they both have the same hole pattern.


Could this socket work? http://www.mouser.com/ProductDetail/ADAM-TECH/PLCC-32-AT/?qs=sGAEpiMZZMvlX3nhDDO4AF3r3Xqn7mCjvNgB%2F1LbqKk%3D


I am game for having these made if the design is made. Or if I could be pointed in the right direction for what part numbers would be used, I could probably design a board for the project as well.

Link to post
Share on other sites
Sorry if this is a dumb idea,. . .

Around these parts, the only "dumb" idea, or question, is the one that doesn't get asked! :approve:

Interesting question! ;)


With a few DIP Switches on a daughtercard with a cable to the backplane . . . it might actually work out nicely IF:

_substitution of suitable SRAM (with Battery Backup) for the ROMs on the SIMM is practicable :?:

_____one switch controls basic ROM/ROM SIMM Read Mode Select . . .

_____another switch can somehow control an address offset for the ROM SIMM . . .

_________that could put the SRAM based SIMM into Write Mode while the CPU is in MoBo ROM Mode . . .


Hrmmmmmm . . . :?: . . . < decides to mull over the implications }:) >

Link to post
Share on other sites
IIRC, DIP ROMs don't exist in the capacities required . . . [;)]]'>


But doesn't the IIci use 32 pin DIPs?


I have been looking around a little more and see that the smaller form factors come in SMT format and/or socketable with the J-leads. I glanced at the spec sheet for the ATMEL chip used in the Trag/Gamba hack: http://www.ixbt.com/comm/faq/rockwell-faq/doc0852.pdf


Could this EEPROM be a viable substitute (the one linked above is no longer made)? http://www.greenliant.com/dotAsset/40840.pdf

Link to post
Share on other sites
A through-hole design is probably also the most accessible since you wouldn't need to deal with solder paste and stencils.


Surface mount does not require solder paste and stencils. That's only needed if one is doing the toaster method. One can solder surface mount components with wire solder about as easily as through hole, sometimes easier. The difficulty, in this particular case, is that the surface mount PLCC32 sockets have their legs inside the socket, if it is an open body socket, or hidden under it otherwise. In the former case, it's cramped to solder the legs. In the latter case, one almost must use a baking method.


But for soldering the chips directly to the board, no such difficulties exist.


If PLCC32 chips comes in a through-hole package


The sockets for PLCC32 chips do. The chips themselves do not, because if they had through-hole type pins, it wouldn't be a PLCC32 package any more. :-)

Edited by Guest
Link to post
Share on other sites
IIRC, DIP ROMs don't exist in the capacities required . . . [;)]]'>


But doesn't the IIci use 32 pin DIPs?


Yes, but they're huge. They wouldn't fit on a ROM SIMM.


I have been looking around a little more and see that the smaller form factors come in SMT format and/or socketable with the J-leads.


Any Flash chip (we're really discussing Flash here, not ROMs) with a 1 Mbit capacity or larger which will physically fit on a SIMM which is not much more than 1.50" high will do. Typically, they come in PLCC32 packages or TSOP packages. The second datasheet you linked to has diagrams of both packages.


TSOP is a pain to socket (although actually a little easier to solder directly than PLCC). So we don't want TSOP. That leaves PLCC. The pinout for the 1 Mbit and larger capacity Flash chips is a JEDEC standard. So the board can be built to take pretty much any capacity chips from 1 Mbit up to at least 4 Mbit.


The one variation (I am aware of) is that some of the chips have a Reset pin which must be tied high, otherwise the chips won't work. So some provision for that must be made.

Link to post
Share on other sites
. . . use leaded and lead-free solder. They have about a 20 - 30C difference in melting point. But one would need a good controller on the oven . . .

For a 20 - 30 C differential, or for doing either in a toaster oven for that matter . . .

. . . an $18 Digital Oven Thermometer with a $2.00 Patio Paver acting as a Thermal Flywheel, you ought to do just fine. Crazy Glue a long lever to the control knob on a Goodwill Toaster Oven, mark your rough presets on the front of the oven in magic marker and you're good to go . . .

. . . for under $40 with a Digital Process Timer too! :approve:


...even if it looks like the DIY should be cheaper. Experience says it won't be...

Truer words were never typed . . . of course the JackLeg Approach RULZ! }:)

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...