BANK SWITCHING
CPU PORT ($01)
$37 (default)
CARTRIDGE SIGNALS
QUICK PRESETS
VIC-II BANK ($DD00)
$0000-$3FFF
REGION DETAILS
Memory Map
The cells on the right of each memory region show documented memory locations from "Mapping the Commodore 64".
Current Configuration
MEMORY MAP
| ADDR | CPU VIEW | DETAILS | VIC-II |
|---|
MEMORY REGIONS REFERENCE
The C64's 64KB address space is divided into distinct regions, each with specific purposes and banking behavior.
Zero Page & Stack
$0000-$00FF: Zero Page - Fast access area for BASIC and KERNAL. The 6510 can address these bytes with shorter, faster instructions.
$0100-$01FF: Hardware Stack - Used for subroutine return addresses and register saves. Grows downward from $01FF.
BASIC Program Area
$0200-$9FFF: Main RAM - This ~39KB area holds BASIC programs, variables, and data. Always visible to the CPU.
$0400-$07FF: Default screen memory (1000 bytes + color RAM mirror).
$0801: Start of BASIC text - where programs are stored.
ROM Areas
$A000-$BFFF: BASIC ROM (8KB) - Contains the BASIC V2 interpreter. Controlled by LORAM bit.
$E000-$FFFF: KERNAL ROM (8KB) - The operating system with I/O routines and interrupt handlers. Controlled by HIRAM bit.
I/O & Character ROM
$D000-$DFFF: I/O Area - VIC-II ($D000), SID ($D400), Color RAM ($D800), CIA 1 ($DC00), CIA 2 ($DD00).
When CHAREN=0, Character ROM appears here instead of I/O registers.