BANK SWITCHING
CPU PORT ($01)
$37 (default)
CARTRIDGE SIGNALS
QUICK PRESETS
VIC-II BANK ($DD00)
$0000-$3FFF
MEMORY MAP
| ADDR | CPU VIEW | DETAILS | VIC-II |
|---|
REGION DETAILS
Hover over memory cells to see details here.
Memory Map
The cells on the right of each memory region show documented memory locations from "Mapping the Commodore 64".
Current Configuration
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.