Discussion:
VIC-20 cartridge format?
(too old to reply)
z***@gmail.com
2006-06-24 21:26:08 UTC
Permalink
In a VIC-20 cartridge (not a program file, but an actual cartridge):

The first two bytes are the entry point, fine.
The bytes from x004-x008 are the "a0CBM" signature, fine.
What are the two bytes between these two? Checksum? How is it
calculated?

i.e.: from Omega Race:

A000 09 A0 ; entry point $A009
A002 8D B4 ; unknown
A004 41 30 C3 C2 CD ; "a0CBM" signature
A009 D8 CLD
A00A 20 8D FD JSR $FD8D
....
Leif Bloomquist
2006-06-25 02:23:42 UTC
Permalink
Post by z***@gmail.com
The first two bytes are the entry point, fine.
The bytes from x004-x008 are the "a0CBM" signature, fine.
What are the two bytes between these two? Checksum? How is it
calculated?
The bytes at A002 and A003 are the address that the VIC should jump to when
RESTORE is pressed (warm start).

So in your example below, Omega Race will jump to B48D whenever RESTORE is
pressed.

Games can use these bytes so RESTORE takes you back to a menu. Often
though, they're set to an address (which I forget offhand) that simply
ignores the key and does nothing.
Post by z***@gmail.com
A000 09 A0 ; entry point $A009
A002 8D B4 ; unknown
A004 41 30 C3 C2 CD ; "a0CBM" signature
A009 D8 CLD
A00A 20 8D FD JSR $FD8D
....
z***@gmail.com
2006-06-25 16:22:48 UTC
Permalink
Post by Leif Bloomquist
The bytes at A002 and A003 are the address that the VIC should jump to when
RESTORE is pressed (warm start).
Thanks!

(context: I recently bought the commodoretalk.com domain, which was
previously hosting C64-centric forums. I'm planning to make it my
dedicated VIC-20 museum site).
Scott Julian
2006-06-27 10:59:56 UTC
Permalink
This post might be inappropriate. Click to display it.
Loading...