Memory model

The following addresses are subject to change. Visit this page for updates.

Zeropage

PET VIC-20 C64 C16 Plus/4 C128 M65

$02-$14 19 bytes XC=BASIC Virtual Registers
$15-$3A 38 bytes Floating point workspace
$3B-$69 47 bytes Free space for FAST variables

X16

$22-$34 19 bytes XC=BASIC Virtual Registers
$35-$7F 75 bytes Free space for FAST variables
$A9-$CE 38 bytes Floating point workspace

Other reserved areas

VIC-20 C64 C16 Plus/4 C128

$033C-$03FB 192 bytes Temporary storage during string operations

PET

$033A-$03F9 192 bytes Temporary storage during string operations

X16

$0400-$04BF 192 bytes Temporary storage during string operations

Program code and data

Commodore-64

$0801 - $080C 12 bytes BASIC Loader (can be disabled)
$080D - ???? Program code
???? - ???? Library
???? - ???? Variables
???? - $CEFF Function stack (growing downwards)
$CF00 - $CFFF 256 bytes String stack

Commodore VIC-20 (Unexpanded)

$1001 - $100C 12 bytes BASIC Loader (can be disabled)
$100D - ???? Program code
???? - ???? Library
???? - ???? Variables
???? - $1CFF Function stack (growing downwards)
$1D00 - $1DFF String stack

Commodore VIC-20 (3K Expansion)

$0401 - $040C 12 bytes BASIC Loader (can be disabled)
$040D - ???? Program code
???? - ???? Library
???? - $1CFF Function stack (growing downwards)
$1D00 - $1DFF String stack

Commodore VIC-20 (8K expansion)

$1201 - $120C 12 bytes BASIC Loader (can be disabled)
$120D - ???? Program code
???? - ???? Library
???? - ???? Variables
???? - $3EFF Function stack (growing downwards)
$3F00 - $3FFF String stack

Commodore-16

$1001 - $100C 12 bytes BASIC Loader (can be disabled)
$100D - ???? Program code
???? - ???? Library
???? - ???? Variables
???? - $3EFF Function stack (growing downwards)
$3F00 - $3FFF String stack (growing downwards)

Commodore Plus/4

$1001 - $100C 12 bytes BASIC Loader (can be disabled)
$100D - ???? Program code
???? - ???? Library
???? - ???? Variables
???? - $7EFF Function stack (growing downwards)
$7F00 - $7FFF String stack

Commodore-128

$1001 - $100C 12 bytes BASIC Loader (can be disabled)
$100D - ???? Program code
???? - ???? Library
???? - ???? Variables
???? - $BEFF Function stack (growing downwards)
$BF00 - $BFFF 256 bytes String stack

Commander X16

???? - $06FF Function stack (growing downwards)
$0700 - $07FF 256 bytes String stack
$0801 - $080C 12 bytes BASIC Loader (can be disabled)
$080D - ???? Program code
???? - ???? Library
???? - ???? Variables