This change brings support for a second filesystem stored in the ROM
(if there's enough space)
The romfile code is fairly local so there was no point in keeping the
files around in a4091_save_t. Now the file state is kept locally in
init_romfiles() instead.
Since not all filesystem drivers contain a resident init structure, it
is now also possible to specify a DosType that is used to register the
filesystem in filesystem.resource.
If we are not loading CDFS through the resident rt_Init code, we need to
provide our own creator name. Make it follow the conventions of the other
filesystem drivers.
- Adds support for loading a filesystem without the need for a
resident struct.
- Factor out debugging functions from the mounter code finding CDFS:
scan_filesystems --> list_filesystems & find_cdfs
- Properly Forbid/Permit when operating on FileSystemEntries
The file size is used to determine how far to walk memory looking for a
resident structure. While that is still an approximation, using the
uncompressed file size fill make AmigaOS 3.2.2 CDFileSystem work in ROM.
This way we can transparently decompress both the driver
and filesystem.
File | Orig. | Comp. | Saved
-----------------+-------+-------+----------------
BootCDFileSystem | 19248 | 12274 | 6974 (36.23%)
a4091.device | 36652 | 23504 | 13148 (35.87%)
-----------------+-------+-------+----------------
Total | 55900 | 35778 | 20122 (36.00%)
This brings down the ROM usage for both components from
85.3% to 54.6%, leaving plenty of room for debug builds,
other versions of CDFileSystem, etc.