• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Calling all ROMs! Collecting DeclROM data

eharmon

Well-known member
In order to flesh out device support in my DeclROM parser (ROM Fiend: A DeclROM, Extended DeclROM, and System ROM parser), I'm interested in testing and validating any and all DeclROMs you have!

For testing I've already collected quite a few, but I'm interested in unique versions not already posted on these forums, or any unique cards you might have.

I think it might be interesting to create a database of cards, scraped from the DeclROM data. But first we need the ROMs!

What I've tested and validated so far (including a few homebrew ROMs):
Code:
./Audio/Digidesign/Audiomedia
./Audio/MediaVision/Pro AudioSpectrum 16 NuBus
./Coprocessors/AST Research/Mac286
./Coprocessors/AVID/Enhancement Board
./Coprocessors/AVID/JPEG Processor
./Coprocessors/Apple/DOS Compatibility Card
./Coprocessors/C-Cube/Compression Master
./Coprocessors/Interware/PowerVideo AV
./Coprocessors/Interware/Video CD Player NB
./Coprocessors/Radius/Rocket 25i
./Coprocessors/Radius/Rocket Stage 2
./Coprocessors/Team ASA/Raven
./Ethernet/Apple/EtherTalk NB
./Ethernet/Apple/Ethernet NB
./Ethernet/Apple/Token Ring 4-16 NB
./Ethernet/Asante/MacCon LC
./Ethernet/Asante/MacCon MC3NB
./Ethernet/Asante/MacCon MCNB Rev A
./Ethernet/Dayna/DaynaPORT E II
./Ethernet/Dayna/DaynaPORT E II-3
./Ethernet/Dayna/DaynaPORT E II-T
./Ethernet/Farallon/EtherMac 30i-TH
./Ethernet/Farallon/EtherWave NuBus
./Ethernet/Farallon/PhoneNET SE30
./Ethernet/Racal InterLan/NIA310-10BT
./Ethernet/Sonic/EtherLAN II T
./Ethernet/Sonic/EtherLAN LC T
./Ethernet/Sonic/LC A
./Ethernet/rhalkyard/SEthernet:30
./Graphics/Apple/Display Card 24AC
./Graphics/Apple/Display Card 4-8
./Graphics/Apple/Display Card 8-24
./Graphics/Apple/Display Card 8-24GC
./Graphics/Apple/Macintosh II High Resolution Video Card
./Graphics/Apple/Macintosh II Portrait Video Card
./Graphics/Apple/Macintosh II Video Card
./Graphics/Apple/Macintosh Two-Page Monochrome Video Card
./Graphics/Apple/SE:30
./Graphics/Apple/Workstation Video Card
./Graphics/Axxyss/'Navajo'
./Graphics/Formac/ProGraph II
./Graphics/Formac/ProGraph LC
./Graphics/Formac/ProNitron GA19
./Graphics/Formac/ProNitron GA2
./Graphics/Formac/ProNitron80.21
./Graphics/Interware/VDR-2A
./Graphics/Lapis/Dual Page Video 1024x768
./Graphics/Lapis/Lapis II Dual Page Display
./Graphics/Lapis/Lapis SE30
./Graphics/MASS Microsystems/ColorSpace II
./Graphics/Micron/Macrocolor 30
./Graphics/Micron/XCEED Color 30HR
./Graphics/Miro/miroPRISMA 1152GX
./Graphics/QEMU/qfb
./Graphics/Radius/Color Pivot
./Graphics/Radius/DirectColor 24
./Graphics/Radius/GS:C-M
./Graphics/Radius/LeMans GT
./Graphics/Radius/Pivot II
./Graphics/Radius/PrecisionColor 24XK
./Graphics/Radius/PrecisionColor 8-24X
./Graphics/Radius/PrecisionColor 8XJ
./Graphics/Radius/PrecisionColor Pro 24X
./Graphics/Radius/PrecisionColor Pro 24XK
./Graphics/Radius/PrecisionColor Pro 24Xp
./Graphics/Radius/Radius FPD for SE
./Graphics/Radius/Radius TV
./Graphics/Radius/SpigotPro
./Graphics/Radius/TPDII-M
./Graphics/Radius/Thunder IV GX
./Graphics/RasterOps/24L
./Graphics/RasterOps/24MX
./Graphics/RasterOps/24MxQ
./Graphics/RasterOps/24MxRGB
./Graphics/RasterOps/24MxTV
./Graphics/RasterOps/24STV
./Graphics/RasterOps/24XLTV
./Graphics/RasterOps/8:24XLi
./Graphics/RasterOps/ColorBoard 108
./Graphics/RasterOps/ColorBoard 264
./Graphics/RasterOps/ColorBoard 264:SE30
./Graphics/RasterOps/ColorBoard 704+:LC
./Graphics/RasterOps/MediaTime
./Graphics/RasterOps/PaintBoard Li
./Graphics/Sigma Designs/L-View
./Graphics/SuperMac/ColorCard SE:30
./Graphics/SuperMac/Graphix
./Graphics/SuperMac/Spectrum Power
./Graphics/SuperMac/Spectrum SE:30
./Graphics/SuperMac/Spectrum:24 PDQ
./Graphics/SuperMac/Spectrum:24 PDQ Plus
./Graphics/SuperMac/Spectrum:24 Series III
./Graphics/SuperMac/Spectrum:24 Series IV
./Graphics/SuperMac/Spectrum:24 Series V
./Graphics/SuperMac/Spectrum:8 Series III
./Graphics/SuperMac/Spectrum:8 si
./Graphics/SuperMac/Spectrum:8-24
./Graphics/SuperMac/Spectrum:8-24 PDQ
./Graphics/SuperMac/Spigot II Tape
./Graphics/SuperMac/SpigotPower AV
./Graphics/SuperMac/Storm
./Graphics/SuperMac/Thunder II
./Graphics/SuperMac/Thunder Light
./Graphics/SuperMac/Thunder:24
./Graphics/SuperMac/VideoSpigot
./Other/Aapps/DigiVideo
./Other/Aapps/MicroTV
./Other/Apple/KanjiTalk Font Card
./Other/Apple/QuickTime Video Conferencing ISDN Card
./Other/Apple/Workgroup Server PDS Card
./Other/Ariel/AVID Audio Multi-Channel
./Other/Avatar/Mac Mainframe II
./Other/Brigent/BootBug
./Other/Computer Friends/Unigate
./Other/Daystar/RAM PowerCard
./Other/Digital Communication Associates/IRMA Workstation
./Other/Digital Communication Associates/MacIRMA
./Other/Innosys/INSCC
./Other/LaserMAX/MKX
./Other/LaserMAX/MX6C
./Other/MASS Microsystems/QuickImage 24
./Other/National Instruments/LAB-NB
./Other/National Instruments/NB-DIO-24
./Other/National Instruments/NB-GPIB-P
./Other/National Instruments/NB-MIO-16X
./Other/National Semiconductor/NS 8:16 Memory Expansion Card
./Other/SCii Telecom/SCii RNIS
./Other/Second Wave/Expanse II NB 4-8
./Other/Sigma Designs/DoubleUp
./Serial/Advanced Logic Integration/VersaLink 4 Serial Port
./Serial/Apple/Serial NB
./Serial/Apple/Serial NB (Livonia Prototype)
./Serial/Applied Engineering/QuadraLink
./Serial/Creative Solutions/Hurdler II-CPI
./Serial/Creative Solutions/Hurdler Quad Serial
./Serial/Creative Solutions/Hustler Dual Serial
./Storage/ATTO/SiliconExpress II
./Storage/Apple/Macintosh II PC Drive
./Storage/Golden Triange/DiskTwin
./Storage/MicroNet/MicroMirror?
./Storage/MicroNet/NuPORT IIa
./Storage/PLI/QuickSCSI
./Storage/Sixty Eight Thousand/Bolt Q-PDS
./Storage/Sixty Eight Thousand/SCSI Bolt
./Storage/Storage Dimensions/Data Cannon PDS:Quadra
 

halkyardo

Well-known member
Here are a couple that I have laying around, both from graphics cards (zipped because it won't let me upload them otherwise)

memplus24nb.zip: Memory Plus 24NB
futurasx.zip: E-Machines Futura SX
 

Attachments

  • memplus24nb.zip
    9.2 KB · Views: 4
  • futurasx.zip
    18.8 KB · Views: 6

eharmon

Well-known member
Here are a couple that I have laying around, both from graphics cards (zipped because it won't let me upload them otherwise)

memplus24nb.zip: Memory Plus 24NB
futurasx.zip: E-Machines Futura SX
Awesome, found a bug already with the Futura!
 

halkyardo

Well-known member
Awesome, found a bug already with the Futura!
Yeah, I’ve been diving into that one with Ghidra lately and hooo boy it’s a bit convoluted.

I’ll have to take a look at your code sometime. Ghidra is my weapon of choice for such things (I don’t think I actually have a modern enough Mac to run Hex Fiend on!) and it’d be really neat to try and incorporate some of the same smarts into a Ghidra plugin. I’ve been doing it by hand with a reasonable amount of success, but that gets old fast when you’re dealing with as many sResources as the Futura has!
 

eharmon

Well-known member
Yeah, I’ve been diving into that one with Ghidra lately and hooo boy it’s a bit convoluted.

I’ll have to take a look at your code sometime. Ghidra is my weapon of choice for such things (I don’t think I actually have a modern enough Mac to run Hex Fiend on!) and it’d be really neat to try and incorporate some of the same smarts into a Ghidra plugin. I’ve been doing it by hand with a reasonable amount of success, but that gets old fast when you’re dealing with as many sResources as the Futura has!
It seems like whatever the video mode 254 entry contains is......weird. Instead of pointing to a valid offset it just has the entry "1". I've found in other ROMs that the entries above say, 250 or so, are often funky. But I've not found any documentation officially indicating they have special meaning. So I have no idea what they're intended to represent, or if they're ever valid video modes.

If I can figure it out, I'll add some code to handle > 250 special. But for now I added a workaround that checks for nonsensical offsets and ignores them.

It's definitely portable to Ghidra! Ultimately the logic is simple, you just need to walk the tables to express every value.
 

halkyardo

Well-known member
It seems like whatever the video mode 254 entry contains is......weird. Instead of pointing to a valid offset it just has the entry "1". I've found in other ROMs that the entries above say, 250 or so, are often funky. But I've not found any documentation officially indicating they have special meaning. So I have no idea what they're intended to represent, or if they're ever valid video modes.
Interesting. I haven’t gotten that far through the video modes!

I’ve been mostly looking at the init and driver code, and it definitely does some odd things in there - there are a few sResource IDs that don’t seem to be defined, and in at least one place, it seems to “manually” load an sBlock and jump to it rather than using SExec. I’ll have another trawl through the code and see if I can identify what it’s trying to do there.

Funnily, bits of the ROM still have MacsBug symbols, but unfortunately none of the interesting stuff does.
 

eharmon

Well-known member
Interesting. I haven’t gotten that far through the video modes!

I’ve been mostly looking at the init and driver code, and it definitely does some odd things in there - there are a few sResource IDs that don’t seem to be defined, and in at least one place, it seems to “manually” load an sBlock and jump to it rather than using SExec. I’ll have another trawl through the code and see if I can identify what it’s trying to do there.

Funnily, bits of the ROM still have MacsBug symbols, but unfortunately none of the interesting stuff does.
You might try dumping the slot data from a booted system. While a physical ROM contains sResources, they can be manipulated at runtime since the OS just examines the data pointed to by the memory addresses. If they're referencing IDs that don't exist, it's possible the primary INIT or driver is defining it at boot.
I assume you've looked here? http://bitsavers.org/pdf/apple/nubus/

I notice you're missing the Coax/Twinax (Zorro) card... It's on bitsavers :D
Oh, so I am! I think I skipped over that device before I had support for detecting XOR'd ROMs.
 

Arbee

Well-known member
Here's a few off-the-beaten-path DeclROMs. All of them work except the Avatar MacMainFrame. It's $4000 bytes long, but the DeclROM header is at the halfway point. Normally I'd consider that to be a bad dump, but if it was a size problem with an EPROM reader the contents should be doubled up and they're not.
 

Attachments

  • SigmaDesign__DUAM2_2.00__Doubleup_Compression_Card._0.bin
    16 KB · Views: 4
  • Avatar_MacMainFrame_SE30_21-E006-068_Rev_1_0.bin
    16 KB · Views: 6
  • MacintoshIIPCDriveCard_342-0120.bin
    4 KB · Views: 5
  • PLIQuickSCSI.bin
    16 KB · Views: 3

zigzagjoe

Well-known member
Attached is an interware grandvimage 24-21s ROM. Dumped from the card's address space and decimated by 4. Checksum validated. Only found the slotrom utility after I did it the hard way....

Here's a few off-the-beaten-path DeclROMs. All of them work except the Avatar MacMainFrame. It's $4000 bytes long, but the DeclROM header is at the halfway point. Normally I'd consider that to be a bad dump, but if it was a size problem with an EPROM reader the contents should be doubled up and they're not.

The checksum validates if you truncate that file to 8192 bytes: this indicates the card has wired A13 to ground so only the first half is read. However, reading out the full chip in a reader would give you that empty second half.
 

Attachments

  • VDR4 A21A V1.1.1.bin
    64 KB · Views: 3

cheesestraws

Well-known member
s $4000 bytes long, but the DeclROM header is at the halfway point. Normally I'd consider that to be a bad dump, but if it was a size problem with an EPROM reader the contents should be doubled up and they're not.

edit: @zigzagjoe worked this out, I was just speculating, so deleted speculation
 

amedeo_68k

Well-known member
RasterOps Color Board 264 SE/30 ( inside the ROM I can read version 1.2, but the sticker on chip says 1.3 )
 

Attachments

  • RasterOps ColorBoard 264:SE30 1.3.BIN
    32 KB · Views: 5

Arisotura

Well-known member
Here's the ROM from the Lapis ProColorServer 8 II (NuBus) I have here.

I dumped this straight from the ROM chip. I don't know if the card does anything fancy with the address lines.
 

Attachments

  • LAPISPROCOLORSERVER.BIN.zip
    9.3 KB · Views: 5

Arbee

Well-known member
Both of those Lapis ROMs look normal (no reverse byte order, no inverted bits, readable text strings) but ROM Fiend doesn't like them.
 

Phipli

Well-known member
I have a Formac Prograph SE/30, should I grab firmware ?
Not sure if you are aware... But some of those cards, the only difference between the colour and greyscale versions are the cable to the expansion opening and the ROM.

Do you have a photo of your card?
 

powermax

Well-known member
Does anyone have DeclROM dumps for the Apple HPV cards used in the Nubus Power Macintosh 6100/7100/8100?
 
Top