Manual · 4

Space report

A 2600 has 128 bytes of RAM and cartridges of a few kilobytes, so space runs out sooner than anything else. After each build, VCSIDE measures what is used and what is left, bank by bank.

The Space panel with a bar per bank and one for RAM
The Space panel: one bar per bank and one for the console's RAM.

ROM

RAM

The console's RAM is $80 to $FF, and the stack grows down from the top of it. The report counts the variables declared in uninitialised segments (SEG.U with ds) and shows what is left above them for the stack.

Cartridge RAM

Some cartridges add RAM: the Superchip (128 bytes), FA (256) and CV (1 KB). Variables declared through either the read or the write window are counted together. E7's RAM is addressed by banks, so it is shown as not measured.

Warnings and thresholds

A bank warns when it reaches space_warn_percent (90 % by default) and is an error when it overflows. Both settings live in the .vcsproj. The warnings go to Problems with their line, and the status bar shows a summary.

batari Basic

For batari Basic, the free bytes of each bank come from the compiler's own output (banks of 4 KB, numbered from 0 as in the emulators). Its RAM is not measured, because its variables are fixed.

ELF cartridges

For C projects, VCSIDE reads the ELF file: code, code that runs from RAM (.RamFunc), constants, and variables with and without a starting value.

It measures them against the cartridge chosen when the project was created, which can be changed in the project settings:

The Space panel for an ELF project, with code, constants, variables and the Chameleon Cart's flash and RAM
An ELF project: its sections and the Chameleon Cart's memory.