eharmon
Well-known member
I recently determined the Classic's built-in ROM Disk uses the same driver and format as the Portable's extensible ROM Disk, and added support for examining them in my ROM template: https://68kmla.org/bb/index.php?thr...clrom-and-system-rom-parser.46053/post-516329
You can find full documentation of the format here: https://wiki.preterhuman.net/HW_13_-_Macintosh_Portable_ROM_Expansion
Essentially, creating the proper header at any 64k boundary within ROM space enables the ROM disk to function. This was originally designed for the Portable to support expansion through ROM disks (like a really weird, non-removal cartridge system, I guess), but it appears the exact same functionality was used in the Classic, since we can see the same header structure and appended disk within it's ROM structure:
What's interesting is that we can see from later ROMs that the .EDisk driver that makes this work is still included in the resources and active for all devices. Which means, theoretically, it's loaded and usable if a disk is appended, without modifying any resources.
While in some ways less flexible than bbraun's custom ROM disk driver, this has some interesting elements:
- Theoretically it can work by just appending a disk with the correct format to an existing ROM image and flashing it. This makes it easier to modify ROMs for each machine to add a ROM disk.
- Theoretically it supports multiple disks, based on the documentation.
- It might be better supported on a wider variety of machines, if it was still being supported. Or it could be abandoned by the Universal period and work worse, who knows!
- It supports optional checksums to verify integrity.
So I gave it a try on my Quadra and hit the dumbest possible issue...I can't figure out how to activate it. Opt+Command+X+O does nothing, which isn't surprising because that might be specific to the Classic (XO) ROM branch. And removing all disks to see if it's just a fallback disk doesn't work either. But a skim of the Portable documentation doesn't reveal any way to activate the ROM disk! Maybe I'm just missing something obvious, but after putting the harder pieces together, the easier ones are elusive! Or the driver has an early exit on a Quadra...
Before I go decompiling, any ideas, or thoughts on the potential of this ROM Disk driver?
(Bonus points: the Pippin has ANOTHER ROM Disk driver as well that I haven't fully reverse engineered yet -- but it stores it's disk images in the resource list which seems significantly more limiting -- some of the Pippin folks have been using it, but only to substitute a 1:1-sized image).
You can find full documentation of the format here: https://wiki.preterhuman.net/HW_13_-_Macintosh_Portable_ROM_Expansion
Essentially, creating the proper header at any 64k boundary within ROM space enables the ROM disk to function. This was originally designed for the Portable to support expansion through ROM disks (like a really weird, non-removal cartridge system, I guess), but it appears the exact same functionality was used in the Classic, since we can see the same header structure and appended disk within it's ROM structure:
What's interesting is that we can see from later ROMs that the .EDisk driver that makes this work is still included in the resources and active for all devices. Which means, theoretically, it's loaded and usable if a disk is appended, without modifying any resources.
While in some ways less flexible than bbraun's custom ROM disk driver, this has some interesting elements:
- Theoretically it can work by just appending a disk with the correct format to an existing ROM image and flashing it. This makes it easier to modify ROMs for each machine to add a ROM disk.
- Theoretically it supports multiple disks, based on the documentation.
- It might be better supported on a wider variety of machines, if it was still being supported. Or it could be abandoned by the Universal period and work worse, who knows!
- It supports optional checksums to verify integrity.
So I gave it a try on my Quadra and hit the dumbest possible issue...I can't figure out how to activate it. Opt+Command+X+O does nothing, which isn't surprising because that might be specific to the Classic (XO) ROM branch. And removing all disks to see if it's just a fallback disk doesn't work either. But a skim of the Portable documentation doesn't reveal any way to activate the ROM disk! Maybe I'm just missing something obvious, but after putting the harder pieces together, the easier ones are elusive! Or the driver has an early exit on a Quadra...
Before I go decompiling, any ideas, or thoughts on the potential of this ROM Disk driver?
(Bonus points: the Pippin has ANOTHER ROM Disk driver as well that I haven't fully reverse engineered yet -- but it stores it's disk images in the resource list which seems significantly more limiting -- some of the Pippin folks have been using it, but only to substitute a 1:1-sized image).