Egghead.page Logo

Commodore 16 Memory Banking for Expanded Configurations

The Commodore 16 utilized a specific memory management architecture centered around the TED chip to handle system resources. This article explores how the machine managed memory banking when configured with expanded RAM or cartridge extensions. It details the role of the 8501 CPU, the TED video chip, and the register-based switching mechanisms that allowed software to access memory beyond the standard baseline configuration.

The core of the Commodore 16 architecture is the 8501 microprocessor, which shares a 64-kilobyte address space with the TED 7360 chip. While the CPU can theoretically address 64KB at once, the standard unit shipped with only 16KB of RAM. To utilize expanded configurations, users could install RAM upgrade kits or insert expansion cartridges. The TED chip acts as the gatekeeper for this memory, controlling which blocks of RAM or ROM are visible to the CPU at any given time through specific memory mapping registers.

Memory banking in expanded configurations relies on manipulating these TED control registers. When an expansion cartridge is inserted, it often claims a portion of the upper memory map, typically between $8000 and $BFFF. To switch between different banks of memory on a cartridge or to toggle between internal RAM and expansion RAM, software must write specific values to the TED’s control ports. This process effectively swaps memory blocks in and out of the CPU’s addressable range without requiring a reset.

This banking scheme allowed developers to create larger applications and games than the physical RAM limits would otherwise permit. By keeping the operating system and basic variables in one bank while swapping program code or graphics data in another, the Commodore 16 could overcome the constraints of its 8-bit architecture. Although less flexible than the memory management units found in later consoles, this register-based banking provided a functional method for handling expanded memory configurations within the Commodore 16 ecosystem.