This is an old revision of the document!


Memory model

The following addresses are subject to change, even between minor versions.

Zeropage

Commodore machines

$02-$14 18 bytes XC=BASIC Pseudo-registers
$15-$3A 37 bytes Floating point workspace
$3B-$69 46 bytes Free space for FAST variables

Commander X16

$22-$34 18 bytes XC=BASIC Pseudo-registers
$35-$7F 74 bytes Free space for FAST variables
$A9-$CE 37 bytes Floating point workspace

Other reserved areas

$033C-$03FC 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 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 (growing downwards)

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 (growing downwards)