BANK SWITCHING

CPU PORT ($01)

$01 = $37 (default)

CARTRIDGE SIGNALS

QUICK PRESETS

VIC-II BANK ($DD00)

VIC sees: $0000-$3FFF
RAM
BASIC
KERNAL
I/O
CHAR
CART-LO
CART-HI

REGION DETAILS

Memory Map

Hover over cells for details

The cells on the right of each memory region show documented memory locations from "Mapping the Commodore 64".

Current Configuration

BASIC + KERNAL + I/O visible

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.