Commodore 64 CPU Maximum Addressable Memory Capacity
This article details the specific memory addressing limitations of the Commodore 64 home computer system. It explains the architecture of the MOS 6510 processor and defines the exact amount of memory space the CPU could access directly. Readers will gain a clear understanding of the 64 KB address space and how it was divided between RAM, ROM, and input/output registers.
The central processing unit responsible for driving the Commodore 64 is the MOS Technology 6510. This chip is a customized version of the popular 6502 microprocessor, featuring an integrated 6-bit I/O port. Like its predecessor, the 6510 utilizes a 16-bit address bus. In binary computing, the width of the address bus determines the maximum amount of memory locations the processor can uniquely identify. With 16 lines available for addressing, the calculation for total addressable space is 2 to the power of 16.
Mathematically, $2^{16}$ equals 65,536 individual bytes. Since 1,024 bytes constitute a kilobyte in binary terminology, this results in a total addressable capacity of 64 KB. This hardware limitation is the primary reason the machine was branded as the Commodore 64, as it shipped with 64 kilobytes of random-access memory installed. However, the addressable space represents the total map available to the CPU, not solely the user-available RAM.
While the CPU can address 64 KB of space, the memory map is segmented to accommodate different system functions. Portions of this 64 KB address space are reserved for the BASIC interpreter ROM, the Kernal operating system ROM, and character generators. Additionally, specific addresses are mapped to input/output registers for managing hardware peripherals. Through memory banking and mapping techniques, the system could switch between different ROM configurations, but the CPU could never access more than 64 KB of addressable space at any single instant in time.
In conclusion, the maximum memory capacity addressable by the Commodore 64 CPU is strictly 64 KB. This limit was imposed by the 16-bit address bus of the MOS 6510 processor. While the physical RAM installed matched this limit, the usable memory for software was often less due to the necessity of mapping system ROMs and I/O areas into the same 64 KB address space.