12 NES BASIC PROGRAMMING GUIDE
Save and load without losing work
BASIC has six named project slots. SAVE "NAME" stores source and all 512 bytes of kept editable artwork; it does not store variable values, the canvas, active sound or execution position. Names contain 1–12 uppercase letters/digits or underscore, hyphen and period. SAVE or LOAD without a name uses PROGRAM. Wait for the success notice before leaving the cartridge.
SAVE asks before overwriting an existing name. LOAD asks before discarding dirty working code/art. A/Y/Enter accepts; B/N/Select/Escape cancels. FILES and CAT list the library. KILL "NAME" or ERASE "NAME" deletes after confirmation; KILL 1 (or ERASE 1) can explicitly remove a numbered slot, including an unreadable record. A full directory reports SAVE DIRECTORY FULL; overwrite intentionally or erase a file you no longer need. Slots are not automatically reclaimed from corruption.
LOAD validates a saved record before replacing working source/art. An intact name with damaged metadata/payload reports BAD SAVED PROJECT. A damaged name can produce FILE NOT FOUND instead. Do not repeatedly overwrite your only backup while troubleshooting. A checksummed native old-record journal recovers interrupted writes at boot or the next storage command when that backup is valid. It cannot repair arbitrary electrical loss or a corrupted backup.
New records are version 3; this ROM reads versions 2 and 3 without silently rewriting older files. An older version-2 ROM rejects version-3 records. The app has scoped same-title battery migration for reviewed predecessors, keeping the old file and preferring an existing current save. Arbitrary changed ROMs are not automatically interchangeable. Keep the original ROM/save when archiving work.
The host's SAVE STATES is a separate emulator feature: snapshots belong to an exact ROM hash, core version and region. BASIC has no automatic-resume promise; use its explicit project commands. Loading an emulator snapshot keeps current committed cartridge files, rather than rolling those files back. These two forms of saving solve different problems.
On a physical board, SAVE requires compatible MMC1/SXROM banking and retained 32 KiB PRG SRAM, plus 8 KiB writable CHR RAM. A normal ROM chip alone cannot save; an 8 KiB SNROM board is insufficient. Emulator battery-file restart tests are verified, but physical NES, flashcart model, PCB/programmer and power-removal retention tests remain NOT VERIFIED.