I got fed up with messing around with memory configurations and trying to remember the various SYS addresses for starting Scott Adams, VICMON and Programmers Aid, so I wrote a little BASIC program to help. I have also tried to collect together a complete set of Commodore VIC20 cartridge images (for my NTSC system.)

This little program does a few things for you:1) Shows which memory banks are enabled and disabled2) Presents a menu with all Commodore carts allowing easy startup3) Stops you loading a cart into an unwriteable (or non existent bank)4) Handles messing around with memory layout so Scott Adams works with BLK1 present5) Handles two part load (eg: for Pinball cart)6) Handles special startup SYS command for Scott Adams, VICMON, Programmers Aid

Incidentally, it seems that cartridge Star Post (and only that one) will not run unless you set BLK5 (or all of expansion memory) read only. I will add a warning for that in the program. If you want to add more carts, just append a new DATA line for each cart (format should be obvious from the other entries.)

Let me know of any bugs. Thanks to Mike for helping get Scott Adams to work without having to disable BLK1.

Not all the problems are caused by copy protection. Some are optimizations using shifts to move bits directly from memory to the carry bit without going through a register. Running from ROM works fine as the shifted value cannot be stored back, but with RAM the new value is used next time (with unplanned consequences).