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

MEMORY MAP

ADDR CPU VIEW DETAILS VIC-II

REGION DETAILS

Hover over memory cells to see details here.

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 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.