Updates:
Preview of SD CartA partially finished prototype has been send to Rob Daviau (MaximumRD on YouTube) to preview. He should be posting his thoughts on how things are working so far pretty soon.
Pre-Ordering Production RunI will only be able accept orders for 100 carts in the pre-order, regardless of what the price might end up being. Right now I have limited time and have to put some limits on what I can produce if I want to actually get it done and in players hands before classes start again.
More Hardware InfoThe hardware on the cartridge is completely reconfigurable at runtime, but one of the built-in modes is the 'Hybrid 512KB' mode, which is essentially the same as Mega-Cart 512KB ROM mode but with additional 8k/8k windows for read/write access to the full 512KB of RAM from the ColecoVision side and different bank switching addresses.
This is done to make it very easy to 'update' any existing mega-cart code to also use read/write access to the RAM.
The memory map of a game in Mega-Cart ROM mode is:
8000-BFFF - Fixed Area
C000-FFFF - Banked Area (16k Read-Only banks)
A 16k Bank is selected by touching an address in FFxx, depending on the size of the Mega-Cart.
The memory map of a game in 512KB Hybrid R/W mode depends on if a 16KB R/O window is selected or if 8k/8k Read/Write windows are selected. If a 16KB read-only window is selected, the scheme is identical to Mega-Cart mode, except the banking addresses are in the fixed area, not the banked area.
8000-BFFF - Fixed Read-Only Window (16KB, same as Mega-Cart ROM mode)
C000-FFFF - Banked Area (16k Read-Only banks)
If an 8k/8k R/W window is selected, all 512KB of SRAM can be read/written in 64 separate banks.
8000-BFFF - Fixed Read-Only Window (16KB, same as Mega-Cart ROM mode)
C000-DFFF - 8kB Banked Area (8k Read-Only Window to 512KB onboard SRAM)
E000-FFFF - 8kB Banked Area (8k Write-Only Window to 512KB onboard SRAM)
For the actual bank switching in Hybrid 512KB mode, to select a 16KB Read-Only window (essentially 512KB Mega-Cart mode), touch a bank switching address @
BF80-BFBF
The RAM is write protected in this mode. No actions by the CV will cause RAM to be changed, other than to select a R/W bank (below) and then change memory.
To select a 8k/8k Read/Write window
BFC0-BFFF
I'm going from memory here so if there are any errors I'll try to edit this later. I'll also post some C code for reading and writing to cartridge memory, which is pretty trivial.
In addition to the read/write memory detailed above, the onboard CPU has full access to the SRAM and you can ask the onboard CPU to make changes, fill memory, load and save SRAM pages to/from SD card, etc, all while your program is running. Of course these functions can be easily supplemented later with firmware updates from SD card.
I'll post some examples of the CPU communications code for people to use soon.