Egghead.page Logo

Was the Commodore VIC-20 Compatible with PET Software?

Many enthusiasts wonder about the cross-compatibility of early Commodore machines, specifically whether the Commodore VIC-20 could run software written for the Commodore PET. The short answer is generally no, as significant hardware and memory differences prevented direct execution of most programs. While both computers shared the same MOS Technology 6502 processor and BASIC V2.0 interpreter, divergent memory maps, video architectures, and screen dimensions created substantial barriers. This article examines the technical specifications of both systems to explain why software compatibility was limited and identifies the specific conditions under which code could be transferred between them.

Processor and BASIC Similarities

On paper, the VIC-20 and the PET appeared to be close relatives. Both systems utilized the 8-bit MOS Technology 6502 microprocessor and shipped with Microsoft BASIC 2.0. This shared lineage meant that simple BASIC programs, which relied solely on standard commands without direct memory manipulation, had a chance of running on both machines. Users could often type in listings from PET magazines into a VIC-20 and expect them to function, provided the code did not depend on specific hardware addresses.

Memory Map Incompatibilities

The primary obstacle for machine language software and advanced BASIC programs was the memory map. The Commodore PET typically started BASIC memory at address 1025 ($0401), whereas the VIC-20 started BASIC at address 4097 ($1001). Machine language programs hardcoded for the PET’s memory structure would crash or fail to load on the VIC-20 because the expected data locations did not exist or were occupied by different system functions. Additionally, the VIC-20 launched with only 5 KB of RAM, significantly less than the standard 8 KB or 16 KB configurations found on most PET models, causing many larger PET programs to run out of memory immediately.

Video and Display Differences

Visual output presented another major compatibility hurdle. The PET featured a monochrome display with 80 characters per line, designed primarily for business and education. In contrast, the VIC-20 was marketed as a home computer with color graphics capabilities but only 22 characters per line. Software that utilized PET-specific screen codes or relied on the 80-column layout would appear garbled or unreadable on the VIC-20. Furthermore, the VIC-20 introduced color attributes and sprite-like capabilities that the PET lacked entirely, making software utilizing these features impossible to reverse-engineer back to the PET.

Conclusion on Software Compatibility

Ultimately, the Commodore VIC-20 was not backward compatible with Commodore PET software in any official or practical capacity. While pure algorithmic BASIC code could sometimes be transferred, any program utilizing machine language, specific memory addresses, or unique display features would require significant rewriting. Commodore treated the VIC-20 as a distinct product line rather than a successor, leading to a fragmented software library where titles were specifically compiled for either the PET series or the VIC-20, but rarely both.