MegaSDCart ROM Loading
This is a quick overview of how our hamster, young Mega, loads ROMs on the MegaSDCart.
The creatiVision ROM load style is determined by the size of the ROM.
4kB ROMs load directly to
$B000.
6kB ROMs load 4kB to
$B000, then 2kB to
$A800. Deep Sea Adventure and Planet Defender should load to $A000. To accomodate this, the 2kB block is duplicated at both $A000 and $A800.
8kB ROMs load directly to
$A000.
10kB ROMs (Locomotive) loads 8kB to
$A000, then 2kB to
$7000. Again as these ROMs are only determinde by size, Werben has it's EEPROM copied to
$4000.
12kB ROMs loads 8kB to
$A000, then 4kB to
$7000. In the case of BASIC82A and BASIC82B the font dowloader looks at
$4000 for first 256 bytes - so Mega just changes $40 to $70 dynamically.
16kB ROMs loads 8kB to
$A000, then 8kB to
$8000.
18kB ROMs (Chopper Rescue) has the final 2kB loaded to
$7800.
Any ROM which is not of these sizes will be loaded as linear - so $C000-ROMsize - which allows for really small ROMs.
One of our proto programs was VGM player - which is a mere 200 bytes including ROM header
SD Format
As MegaSDCart uses the standard Arduino library, the micro SD card should be formatted to FAT16 or FAT32, as only the 8.3 short name format is supported. Currently, there is a maximum of 126 files per directory - which is way more than ROMs available!
Additional Functions
As there was some space left in the massive 8kB BIOS ROM - Mega has added a couple of library functions.
There is a libLZG 6502 specific unpacking routine - which can unpack to RAM or VRAM.
A full hex editor is also in the browser - handy for finding which wire or solder is not as expected.
A TI99 song list player is also there to make life easy - as this song list / sound effect format is extremely well documented.
In the next couple of days, Mega will write the definition of the command descriptor blocks to pass requests from 6502 to Arduino and post here. Mega has also added multiple BASIC listings within a single file - to allow multipart BASIC programs to load and play!
I knew we should not have released him from Crazy Chicky!