• Hello MLAers! We've re-enabled auto-approval for accounts. If you are still waiting on account approval, please check this thread for more information.

Accurate ROM Images on PCI PM Era Machines?

trag

68LC040
Does anyone have any insight into whether CopyROM gives accurate ROM images for the early PCI Power Macintoshes? I makes the correct sized files.

I am trying to build a ROM module for the PEX.

When Gamba and I built the IIci ROM, we compared a CopyROM image from a IIci, interleaved across four Flash chips, to the data read off of the actual ROM chips on the IIci logic board and they matched (yes, pulled the IIci ROMs to read them out).

I assumed one could do the same on a PEX or PM9600.

However, when I interleave the Kansas 9600 ROM image across four chips it does not match the ROM images I have from the actual chips.

[Why am I looking at a Kansas board when I'm working on the PEX? The ROM module (DIMM) hardware is the same for the two machines, only the code content is different. I'm building the module for a fellow in the UK and shipping the PEX here (Texas) for me to work on it would be prohibitively costly. So our plan was to get the hardware of a ROM module working, testing it with 9600 coded chips in a 9600. Then switch out the (socketed) chips for ones with PEX code.

But if the CopyROM image doesn't give a good image on that generation of machine, then there's no way to get the PEX ROM code short of tearing apart a PEX ROM module and copying the chips directly (like anyone is going to allow that...).

Actually, the previous paragraph is not strictly true. I built a set of four adapters once... I stripped off four ROM DIMM sockets from four old 7200 boards. Then I wired the pins from one socket which corresponded to pins of a single memory chip's address/data and control lines to the corresponding pins on a DIP header. Rinse, lather repeat for all four memory chips. Then I installed a ROM DIMM in the socket, put the DIP header in a Chip Programmer and told it to read an appropriate capacity chip.

Unfortunately, the adapters only worked in a high quality BP Micro chip programmer (higher drive strength or something) and not in my lessor Needham Electronics EMP-30.

Also, unfortunately, I discarded my laboriously built (we're talking a couple weeks of painstaking work) socket adapter contraptions in a house cleaning a few months ago, thinking there was nothing I could imagine needing them for again, especially given that one can simply read the ROM content out with CopyROM (or so I believed at the time).

Sigh.

 
Sorry for the delayed response. I haven't browsed this forum very thoroughly for a while.

Could it be that the PPC Macs have wider ROMs than what you expect and interleave differently thus producing confusing results? On the IIci, I have recently confirmed with your experience that they are 8-bit and interleaved 1 byte at a time amongst 4 ROM chips. But a while ago when I interleaved the PEX FLASH ROM together, each flash chip was actually 32-bit, so I took 4 bytes from #1, 4 bytes from #2, 4 bytes from #1, 4 bytes from #2, etc. This may have nothing to do with the PEX ROM SIMM however.

It doesn't answer your question, but in my Mac ROM Verify hack that I posted somewhere, I have noticed that doing a checksum on a PPC ROM pulled via GetRom does work if you use only the first 3 MB of 4MB ROMs. This could be dumped from an internal 68k emulator or something and not the actual ROM however because GetROM is presumably a 68k app and thus is running in some sort of emulation mode.

More clues though:

All dumps that I've made on PPCs are always different on different PPC Macs. None are identical like you might expect if this is some "emulation" ROM.

All dumps I've made contain the appropriate startup sound(s), including the TAM.

All dumps that I've made match checksums with those found at various places online.

There's no answer in what I mentioned, but maybe there are helpful clues.

 
Could it be that the PPC Macs have wider ROMs than what you expect and interleave differently thus producing confusing results?
I'm certain that the PM 9600 ROM is 64 bits wide. So I build the module with four 16 bit wide chips and interleave across them, chip 1: 16 bits, then chip 2: 16 bits, etc.

I can be certain of this because my bizarre DIMM module adapters described above pulled 16 bits of the module out at a time, and that output matches what I was able to read off of the ROM chips once I had my EMP-30 and a PSOP-44 socket.

And I've built working PM9600 (Kansas) ROM modules. (Interesting aside: they also work in the 7200 and all of the x500/x600 machines and PCC clones.)

I can't be 100% certain about the PEX module, but the module is the same hardware, and the examination of the chips by the fellow in the UK with the PEX supports this conclusion. Plus the data bus on the PPC is 64bits wide, so to make the ROM any other width would be bizarre.

On the IIci, I have recently confirmed with your experience that they are 8-bit and interleaved 1 byte at a time amongst 4 ROM chips. But a while ago when I interleaved the PEX FLASH ROM together, each flash chip was actually 32-bit, so I took 4 bytes from #1, 4 bytes from #2, 4 bytes from #1, 4 bytes from #2, etc. This may have nothing to do with the PEX ROM SIMM however.
Are those the two PLCC chips on the board? Are they actually 32 bit wide chips? Or are they 8 bit chips and the board is reading four bytes at a time from each one. That's bizarre either way. In the first case, I didn't think there were any Flash chips wider than 16 bits around. In the latter case, I have trouble imagining the hardware to do that or why one wouldn't just use more flash chips to get the needed width.

More clues though:
All dumps that I've made on PPCs are always different on different PPC Macs. None are identical like you might expect if this is some "emulation" ROM.

All dumps I've made contain the appropriate startup sound(s), including the TAM.

All dumps that I've made match checksums with those found at various places online.

There's no answer in what I mentioned, but maybe there are helpful clues.
Every little bit helps.

Hmmm. The ROM dump on a 7500 should be the same as on an 8500, 9500, 7600, almost all the Mac clones (except the Tanzania based), and most of the 7200s. The ROM dump on an non-Kansas 8600 should match a non-Kansas 9600 and the 7300.

Do you have a PEX then? I might have some more questions about it. Do you understand why there are onboard chips and a separate ROM DIMM? Was this some kind of early implementation of New World architecture?

I haven't really been keeping track of the PEX discussion. I got into this because the other fellow found my name in relation to Beige ROM modules and ocntacted me. And I said, "Sure I can build you a PEX module." But it's not working out as easily as I expected. For one thing, I can't get the sockets to work. I've built about 200 of these modules which worked, so it should be easy. But those were all with soldered down chips. With the sockets, I haven't had any luck yet.

So I'm falling back to building a module with soldered down chips, but that makes it extra important to resolve any issues with the correctness of the code.

Sigh. To make matters worse, I've been working on this (off and on, mostly off) for almost a year. I told him I was busy and would be slow, but this is ridiculous. I really want to get this done. But I also want it to be right...

 
On the IIci, I have recently confirmed with your experience that they are 8-bit and interleaved 1 byte at a time amongst 4 ROM chips. But a while ago when I interleaved the PEX FLASH ROM together, each flash chip was actually 32-bit, so I took 4 bytes from #1, 4 bytes from #2, 4 bytes from #1, 4 bytes from #2, etc. This may have nothing to do with the PEX ROM SIMM however.
Are those the two PLCC chips on the board? Are they actually 32 bit wide chips? Or are they 8 bit chips and the board is reading four bytes at a time from each one. That's bizarre either way. In the first case, I didn't think there were any Flash chips wider than 16 bits around. In the latter case, I have trouble imagining the hardware to do that or why one wouldn't just use more flash chips to get the needed width.
Yes, those are the 2 PLCC chips onboard. It is a strange setup. I'm not sure of the part numbers, but could they be serial instead of parallel? That would require feasible hardware to get it to 64 bits wide parallel data.

More clues though:
All dumps that I've made on PPCs are always different on different PPC Macs. None are identical like you might expect if this is some "emulation" ROM.

All dumps I've made contain the appropriate startup sound(s), including the TAM.

All dumps that I've made match checksums with those found at various places online.

There's no answer in what I mentioned, but maybe there are helpful clues.
Every little bit helps.
Hmmm. The ROM dump on a 7500 should be the same as on an 8500, 9500, 7600, almost all the Mac clones (except the Tanzania based), and most of the 7200s. The ROM dump on an non-Kansas 8600 should match a non-Kansas 9600 and the 7300.
Yes I'm sorry I forgot about that. In my ROM archive, I have several that have a whole bunch of names on them. It is reasonable that those series of Macs would actually have identical ROMs though.

Do you have a PEX then? I might have some more questions about it. Do you understand why there are onboard chips and a separate ROM DIMM? Was this some kind of early implementation of New World architecture?
I don't have a PEX, but I was working with the ROM files that someone was extracting in a thread long ago. I believe that open firmware and the extra startup sounds were stored in the onboard chips. The normal startup sound and the rest of the ROM was stored in the DIMM.

I haven't really been keeping track of the PEX discussion. I got into this because the other fellow found my name in relation to Beige ROM modules and ocntacted me. And I said, "Sure I can build you a PEX module." But it's not working out as easily as I expected. For one thing, I can't get the sockets to work. I've built about 200 of these modules which worked, so it should be easy. But those were all with soldered down chips. With the sockets, I haven't had any luck yet.
So I'm falling back to building a module with soldered down chips, but that makes it extra important to resolve any issues with the correctness of the code.

Sigh. To make matters worse, I've been working on this (off and on, mostly off) for almost a year. I told him I was busy and would be slow, but this is ridiculous. I really want to get this done. But I also want it to be right...
Do you have an original PEX ROM DIMM? If not, maybe you could find the guy from that old thread and get him to take a high-resolution picture for you. That could help spot any differences.

 
Back
Top