Egghead.page Logo

What Version of BASIC Is in the Commodore 128 ROM?

The Commodore 128 features an enhanced operating system that includes a specific version of the BASIC programming language stored directly in its read-only memory. While the machine offers backward compatibility with older software, its native mode utilizes a significantly upgraded interpreter designed to take advantage of the hardware improvements. This article details the specific BASIC version found in the Commodore 128 ROM, highlights its new commands, and explains the distinction between its dual operating modes.

Native Mode and BASIC 7.0

When booted in its native C128 mode, the computer loads BASIC 7.0 from the system ROM. This version was a substantial leap forward from the BASIC 2.0 found in the Commodore 64 and VIC-20. BASIC 7.0 was designed to utilize the increased memory and improved video capabilities of the C128. It introduced structured programming commands, such as DO…LOOPS, IF…THEN…ELSE structures, and local variables within subprograms. These additions made writing complex code more manageable and reduced the reliance on GOTO statements, which were common in earlier versions of the language.

Graphics and Sound Enhancements

A key selling point of BASIC 7.0 was its integration of graphics and sound commands directly into the language interpreter. In previous Commodore machines, manipulating sprites or playing complex sounds often required poking values into specific memory addresses or loading machine language routines. The C128’s ROM included commands like SPRDEF, SPRSAV, and SOUND, allowing users to control the video display chip and sound interface chip with high-level commands. This made the system more accessible to hobbyists and educators who wanted to create multimedia applications without deep assembly language knowledge.

Backward Compatibility and BASIC 2.0

The Commodore 128 was engineered to be fully compatible with the vast library of software available for the Commodore 64. To achieve this, the ROM contains a duplicate copy of BASIC 2.0. When the user holds down the Commodore key during power-up or selects C64 mode from the boot menu, the system disables the C128-specific enhancements and operates as a C64. In this state, the computer responds to BASIC 2.0 commands only. This dual-ROM architecture ensured that users could run legacy software while having the option to utilize the more powerful BASIC 7.0 environment for new projects.

Technical Specifications of the ROM

The BASIC interpreter is part of the larger Kernal operating system stored on the ROM chips onboard the motherboard. The C128 typically ships with 16 kilobytes of ROM space dedicated to the Kernal and BASIC combined. In C128 mode, the system maps the enhanced BASIC 7.0 interpreter into the memory map, making it immediately available upon startup. This tight integration between the hardware and the language interpreter allowed for faster execution of certain commands compared to loading an external compiler or interpreter from disk.

Conclusion

The Commodore 128 stands out in the history of home computing for its flexible architecture and enhanced programming environment. The version of BASIC built into the ROM for native operation is BASIC 7.0, offering structured programming and advanced multimedia commands. However, the inclusion of BASIC 2.0 ensures complete backward compatibility with the Commodore 64 ecosystem. Understanding this dual nature is essential for collectors and developers working with the hardware today.