You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ZA_INDEXEDBY values: declare the index values the register can hold at the indexed ZA_AUTO access just before it (var,X / var,Y / (var,X)). The access is then bounds-checked against the variable's width and assembles in silence; ranges and lists flatten like EQUB data.
The unchecked-indexed-access warning is now shown by default (it was opt-in): silent assembly requires the ZA_INDEXEDBY declaration.
ZA_WIPE: Placed directly after a zero-page wipe loop, it promises every pool byte has been freshly written: values may rely on the wipe for their zeroes, every earlier live range ends there, and the sweep's own stores are not warned about.
New opt-in warning: a store whose literal address or indexed base lies inside the ZA_POOL without naming a ZA_AUTO (the one stray pointer that is statically visible).
--warn <n>: choose the warning level (default 1; 2 adds the opt-in checks; 0 errors only).
--symbols <file>: dump every source file's resolved symbols to a JSON file - full dotted paths, sorted keys, one symbol per line, diffable.
-vv, and a reshaped -v listing: labels list with their address ( 1900 .install_irq), assignments show the value they became with the source expression bracketed (base = 18 [&12]), the byte field is wider, and -vv dumps every emitted byte and whole list values.
--pad: pad a .ssd image out to a full 80-track disc (200K).
Relaxed reserved names: labels, FOR variables, macro and FUNCTION parameters, ZA_AUTO names and -D defines may share a spelling with any keyword, mnemonic or macro. Assignments can use reserved names with the @ prefix: @next = 5 binds next. Only TRUE, FALSE and PI stay reserved outright.
ZA_DISCARD / ZA_WIPE placement is now path-accurate: a marker belongs to the path it is written on, with a label as the pivot - above the label it stays on the arm that falls in, below it it covers every arriving path.
A missing INCLUDE file is reported immediately as a fatal error, instead of surfacing as misleading parse errors downstream.
Fixed: ZA_AUTO variables reached with ,Y indexing (which has no zero-page encoding, so the access widens to absolute) were invisible to the allocator's analysis - a table read only that way could be classified unused or have its bytes reused while still live.
Fixed: FOR over a list literal could bind garbage to later iterations when the loop body's expressions were allocation-heavy.
Fixed: a string value with an embedded NUL byte cut the -v listing short. Unprintable bytes in a string now render as . in listings and diagnostics; the assembled bytes are untouched.
Numbers up to 32 bits now print exactly in listings and PRINT (&FFFF1900 no longer renders as 4.29484e+09).
Both zero-page allocation documents substantially reworked and expanded.