Stefan Reinauer 1a1fc3b5d4 Support two filesystem slots
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.
2023-12-03 11:35:17 -08:00

42 lines
1.2 KiB
Plaintext

/* rom.ld - vlink linker script for the A4091 AutoConfig ROM */
SECTIONS {
/* AutoConfig ROM code from rom.S and reloc.S gets placed
* at the very beginning of the output file.
*/
rom = .;
.bootldr : {
*(CODE)
*(DATA)
*(BSS)
}
/* Placing the a4091.device and CDFileSystem in the ROM
* file right after the AutoConfig ROM.
*/
.device ALIGN(16): {
device = .;
*(DEVICE)
}
/* Fill the unused space in the ROM with 0xFF. We use this
* mechanism also to align the size of our ROM to 64kB.
* The end of the ROM contains an eight byte magic number
* and a TOC with offsets to all relocatable binaries stored
* in the ROM.
*/
.fill : {
. = ALIGN(0x10000) - 40;
LONG(0xFFFFFFFF); /* Filesystem 2 DosType */
LONG(0x00000000); /* Filesystem 2 offset */
LONG(0x00000000); /* Filesystem 2 length */
LONG(0xFFFFFFFF); /* Filesystem 1 DosType */
LONG(0x00000000); /* Filesystem 1 offset */
LONG(0x00000000); /* Filesystem 1 length */
LONG(device - rom); /* Device driver offset */
LONG(0x00000000); /* Device driver length */
LONG(0xFFFF5352);
LONG(0x2F434448);
} =0xffff
}