Is it possible to disable the cartridge rom? I am using the magic desk cartridge. It support banking, but doesn't appears to have the option to disable the cartridge.
I have pucrunched an old demo, and put it on a cartridge. On bootup I restore the file to it's normal location (2061 without the basic header). The file is then decompressed and ran. The problem I'm having is that the file ends up using memory in the cartridge region. Can I disable the cartridge to allow access to the ram (my transfer routine is transferred to and runs from $033C, so that's not an issue).
Does this only work on cartridges that have banks at $8000 and $A000? The Prog. Ref. guide says this affects $A000-$BFFF, $D000-$DFFF, and $E000-$FFFF.
$E000-$FFFF cartridges are in the special Ultimax mode. This does not have access to the full memory of the c64, and is nowadays primarily used in freezers during the freeze process.
$37, $36 and $35 will not affect $D000-$DFFF, and I don't think the prog ref guide says that either. $34 will switch in all 64Kb of RAM. (=cartridge + $A000-$C000, $D000-$E000, $E000-$0000) $33 will switch in the character ROM at $D000-$DFFF without switching out BASIC or KERNAL. In this mode writes will go to the underlying RAM which is very useful if you need to write all 64Kb of memory for ROM based code.
The writes are going to RAM, but data read is coming from the cartridge, regardless of the value set in $1.
I don't believe you.
Anyway, I googled, and it turns out it has a disable feature. Your cartridge is mapped from $8000-$A000. If it is a Magic Desk, it has 4 banks of 8Kb, selected by writing $00-$03 -> $DE00. $80 -> $DE00 will disable the cartridge.
Also: $36 -> $01 will disable the cartridge and basic. $35 -> $01 will disable the cartridge, basic and kernal.
Quote from a document about the .CRT cartridge format for emulators: 19. Magic Desk, Domark, HES Australia
Size - 32Kb, 64Kb or 128Kb sizes (4 to 16 banks of 8Kb each) GAME - inactive (0) EXROM - active (1) Load address (banks 00-15) - $8000-9FFF
This cartridge type is very similar to the OCEAN cart type: ROM memory is organized in 8Kb ($2000) banks located at $8000-$9FFF. Bank switching is done by writing the bank number to $DE00. Deviant from the Ocean type, bit 8 is cleared for selecting one of the ROM banks. If bit 8 is set ($DE00 = $80), the GAME/EXROM lines are disabled, turning on RAM at $8000-$9FFF instead of ROM.
In the cartridge header, EXROM ($18) is set to 0, GAME ($19) is set to 1 to indicate the RESET/power-up configuration of 8 kB ROM.