VIC20 ROM Cart Loader (in BASIC)

Basic and Machine Language

Moderator: Moderators

Bobbi
Vic 20 Afficionado
Posts: 347
Joined: Thu Oct 13, 2016 11:35 am
Location: Toronto
Occupation: Programmer

VIC20 ROM Cart Loader (in BASIC)

Postby Bobbi » Wed Aug 16, 2017 6:50 am

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.
Attachments
cartldr-0.1.zip
(264.44 KiB) Downloaded 13 times

eslapion
ultimate expander
Posts: 4275
Joined: Fri Jun 23, 2006 7:50 pm
Location: Canada
Occupation: 8bit addict

Re: VIC20 ROM Cart Loader (in BASIC)

Postby eslapion » Thu Aug 17, 2017 5:59 am

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.
No one can do everything. Everyone can do something.

Bobbi
Vic 20 Afficionado
Posts: 347
Joined: Thu Oct 13, 2016 11:35 am
Location: Toronto
Occupation: Programmer

Re: VIC20 ROM Cart Loader (in BASIC)

Postby Bobbi » Thu Aug 17, 2017 6:55 am

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.)

User avatar
srowe
Vic 20 Afficionado
Posts: 468
Joined: Mon Jun 16, 2014 3:19 pm

Re: VIC20 ROM Cart Loader (in BASIC)

Postby srowe » Thu Aug 17, 2017 10:08 am

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).

eslapion
ultimate expander
Posts: 4275
Joined: Fri Jun 23, 2006 7:50 pm
Location: Canada
Occupation: 8bit addict

Re: VIC20 ROM Cart Loader (in BASIC)

Postby eslapion » Thu Aug 17, 2017 5:58 pm

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.
No one can do everything. Everyone can do something.

Bobbi
Vic 20 Afficionado
Posts: 347
Joined: Thu Oct 13, 2016 11:35 am
Location: Toronto
Occupation: Programmer

Re: VIC20 ROM Cart Loader (in BASIC)

Postby Bobbi » Thu Aug 17, 2017 6:10 pm

That explains why my Omega Race works :)


Return to “Programming”

Who is online

Users browsing this forum: No registered users and 1 guest