Prompt64 0.2 memory map #
| Range | Use |
|---|---|
$0801-$85FF |
PRG header, text, constants, initialized data, BSS budget |
$8600-$87FF |
enforced low-memory growth reserve |
$8800-$89FF |
top border sprite buffer |
$8A00-$8BFF |
bottom sprite buffer A |
$8C00-$8DFF |
bottom sprite buffer B |
$8E00-$8FFF |
guard/free area |
$9000-$A3FF |
NOLOAD 64×40 transcript characters and colors |
$A400-$A7FF |
40×25 VIC-II screen |
$A800-$BFFF |
NOLOAD dashboard row store and remaining high RAM |
$C000-$CFFF |
NOLOAD compiler scratch; software stack grows below $D000 |
$D000-$DFFF |
I/O window |
The project-owned client/link.ld shadows Rust-MOS's C64 script but retains
its unmap-basic.o startup and $D000 stack policy. Prompt64 does not add
duplicate $01 banking.
The screen moved from $8400 to $A400 so low code and BSS can grow toward
the fixed sprite buffers without reducing the transcript. VIC-II memory
control selects the $A400 screen and the character ROM visible at $9000;
the screen's sprite-pointer table is at $A7F8.
The transcript and dashboard are explicitly initialized at runtime because
their sections are NOLOAD. The build emits build/PROMPT64.map, limits the PRG
to 32,257 bytes, asserts that low sections end before $8600, and checks every
fixed NOLOAD region. The physical sprite boundary is $8800, so both the PRG
size gate and linker assertion preserve a 512-byte reserve.