BANK SWITCHING

CPU PORT ($01)

$01 = $37 (default: $37)

CARTRIDGE SIGNALS

QUICK PRESETS

VIC-II BANK ($DD00)

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

MEMORY MAP

ADDR CPU VIEW DETAILS VIC-II

REGION DETAILS

Focus, click or hover over memory cells for details. Keys 1, 2 and 3 toggle LORAM, HIRAM and CHAREN.

Memory Map

Focus, click or 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 CPU column shows read mappings. ROM writes usually reach the RAM underneath; I/O accesses reach devices. Cartridge hardware can change write behavior. The following describes the normal configuration without a cartridge.

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 - System workspaces, BASIC programs, variables, and data. Cartridge modes can replace or disconnect parts of this area.

$0400-$07FF: Default screen block: 1000 screen codes and sprite pointers at $07F8-$07FF. Color RAM is separate, at $D800.

$0801: Start of BASIC text - where programs are stored.

ROM Areas

$A000-$BFFF: BASIC ROM (8KB) - Contains the BASIC V2 interpreter. Requires both LORAM and HIRAM.

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

With LORAM or HIRAM high, CHAREN selects I/O (1) or character ROM (0). With both low, RAM is visible. Cartridge modes modify these rules; Ultimax leaves I/O visible and disconnects RAM in its unmapped regions.