No Easy Conversion From VIC To 64
Being the previous owner of a VIC–20, I have several VIC programs that I would like to use with my new 64. Is there a conversion factor for memory locations available?
Translating programs from the VIC to the 64 is not always simple. There are many significant differences between the two computers. For example, the SID (Sound Interface Device) chip in the 64 is much more complex than the VIC chip (Video Interface Chip) in the VIC, so sound routines have to be rewritten.
Color and screen memory in the 64 are both 1024 bytes long, while in the VIC they are 512 bytes. Also, the screen and color memory locations in the 64 and VIC are different. This means that all POKEs and PEEKs to screen and color memory have to be changed. There is also the problem of "shifted" ROM. BASIC is stored in permanent memory beginning at address $A000 in the 64, while BASIC starts at address $C000 in the VIC. For example, the print fixed-point value routine in BASIC ROM is at $BDCD in the 64, and $DDCD in the VIC.
The way to convert your programs is to go through them one line at a time, and rewrite where necessary.