Page 1 of 1

VIC20 ROM Cart Loader (in BASIC)

Posted: Wed Aug 16, 2017 6:50 am
by Bobbi
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 disabled
2) Presents a menu with all Commodore carts allowing easy startup
3) 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 present
5) Handles two part load (eg: for Pinball cart)
6) Handles special startup SYS command for Scott Adams, VICMON, Programmers Aid

Hope someone finds it useful. Just needs SD2IEC and 32K memory expansion (I use the Dorktronic one.)

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.

Re: VIC20 ROM Cart Loader (in BASIC)

Posted: Thu Aug 17, 2017 5:59 am
by eslapion
Bobbi wrote: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.
There are many game cartridges which try to self modify as a means of copy protection. Omega Race was one of them.

Re: VIC20 ROM Cart Loader (in BASIC)

Posted: Thu Aug 17, 2017 6:55 am
by Bobbi
Omega Race *seems* to run OK without setting BLK5 read-only. The only one I had issues with was Star Post (and I tried them all briefly.)

Re: VIC20 ROM Cart Loader (in BASIC)

Posted: Thu Aug 17, 2017 10:08 am
by srowe
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).

Re: VIC20 ROM Cart Loader (in BASIC)

Posted: Thu Aug 17, 2017 5:58 pm
by eslapion
Bobbi wrote:Omega Race *seems* to run OK without setting BLK5 read-only. The only one I had issues with was Star Post (and I tried them all briefly.)
If you have a patched version yes.
http://www.zimmers.net/anonftp/pub/cbm/ ... 20Race.prg

If you have the Commodore original ROM image then you'll have immediate problems. http://www.zimmers.net/anonftp/pub/cbm/ ... e-orig.prg

The Zimmer's server says: "Original version of Omega Race. Does not run in RAM."

Also, AFAIK, all Atarisoft VIC-20 cartridges are like that too. I also remember Krazy Antics causing problems.

Re: VIC20 ROM Cart Loader (in BASIC)

Posted: Thu Aug 17, 2017 6:10 pm
by Bobbi
That explains why my Omega Race works :)