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.

ROM
- Bytes used and free in each bank. The measure is exact: VCSIDE asks DASM for every block of bytes it writes, with its address and length. Padding from
ALIGNanddscounts as used. - An error if the image is larger than the cartridge format allows, and a warning if it is a size the format doesn't expect.
- A warning if code or data falls on a bank-switching hotspot or on the cartridge RAM's ports, with the source line when possible. Padding over them, the usual way of skipping the Superchip's window, is not reported.
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.
- A warning if less is left than the project's stack reserve (
stack_reserve, 8 bytes by default). - An error if a variable goes past
$FF. - Variables declared with
=are not counted. Without anySEG.U, RAM is shown as not measured.
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:
- Chameleon Cart: its flash (128 KB) and RAM (36 KB). When the Chameleon image has been built, the numbers are exact. Otherwise they are estimated from the firmware's measured share, about 10,100 bytes of flash and 6,000 of RAM. For the 512 KB model, set 512 KB of flash and 144 KB of RAM.
- PlusCart or UnoCart (firmware 2.3.32 or later): the loader's 96 KB RAM buffer and the 64 KB of CCM RAM where the zeroed variables go. A file that fits the buffer is read whole into it. A bigger one goes to flash, and only the code, the variables with a value and the constants with pointers are copied to RAM.
