Calling all ROMs! Collecting DeclROM data

Arbee

Well-known member
Bitsavers just posted the DeclROM dump and PCB photos for a full-size Duo Dock. The DeclROM parses well with the Hex Fiend extension. @joevt's SlotsParse works but claims the CRC mismatches and should be 00000000, which seems like a possible bug. It's about the only DeclROM I've seen that has a byteLanes value of 0x0F (0,1,2,3), which may be related.

 

joevt

Well-known member
Bitsavers just posted the DeclROM dump and PCB photos for a full-size Duo Dock. The DeclROM parses well with the Hex Fiend extension. @joevt's SlotsParse works but claims the CRC mismatches and should be 00000000, which seems like a possible bug. It's about the only DeclROM I've seen that has a byteLanes value of 0x0F (0,1,2,3), which may be related.

fhLength is zero. Is that a valid length? Length 0 causes checksum to not calculate. I can special case this.

Slot 0 DeclROM (the data in the Mac ROM that you can extract using the tbxi command or SlotsDump or SlotsGrab) has byteLanes 0x0F (because it's in the Mac ROM).
 

Arbee

Well-known member
Ahh, that makes sense. I need to see what the Slot Manager does in that case.

...and it looks like it's special cased. It looks for the "RussSWC!" signature at 0xFEFFFFE4 and does special things if it finds it. Similar to the PowerMac video cards.
 
Last edited:

eharmon

Well-known member
Ahh, that makes sense. I need to see what the Slot Manager does in that case.

...and it looks like it's special cased. It looks for the "RussSWC!" signature at 0xFEFFFFE4 and does special things if it finds it. Similar to the PowerMac video cards.
Oh interesting. I should add detection for that flag.
 

joevt

Well-known member
Slot manager has this:
Code:
			move.l	fhLength(a4),d2					; d2 = length of declaration ROM data
			beq.s	@Done							; zero length - ignore checksum calculation

If fhLength is zero, then checksum is ignored.

The checksum does not match whether fhLength is zero or 128K. Maybe they manually patched the ROM and didn't want to checksum it again.
I changed SlotsParse so it calculates the expected checksum based on the expected fhLength.
 

eharmon

Well-known member
It's interesting that every single ethernet device seems to hold its MAC in the first bytes. I guess it makes sense, no offsets to calculate, and the other alternative, storing it at the end, would interfere with the DeclROM trailer.
 
Top