Generated programs kept their state in system zero page $C0-$FE, which on the
C128 is KERNAL and screen-editor state while CHROUT runs: the print runtime's
pointer and length sat on TCOLOR/RVS/QTSW ($F2-$F4), and the KERNAL IRQ clears
its index at $C0 (CAS1). HELLO.PRG printed "HELLO FROM NOVA1ELLO FROM NOVA128"
in reverse video, which 8f8cf00 had hidden by masking bit 7 in the check.
The ENTRY stub now masks IRQs, installs CR $0E (D129), points P0 at page $1A,
sets the frame base, calls CODE and START, then restores P0, CR and flags.
prgprint switches P0 back to $0000 only around each CHROUT, inlined to stay
position independent. The driver test no longer masks reverse video.
The larger runtime exposed an 8-bit overflow in the driver's CODE base
(ENTRY + START + PRINT now exceeds 255 bytes, which surfaced as DISK ERROR);
the driver now passes the 16-bit address it already computes.
Full regression: 25 of 26 suites pass; parser fails only on baseline hashes
that predate 221e0c5.
The screen held the printed text with bit 7 set, so the converter reported
question marks and the literal search missed it; masking $80 makes the print
check read the VIC-II screen directly, and the driver suite passes through
the regression harness.
Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>
Emitted print calls pointed at a compiler trampoline and the literal at a
compiler buffer, so a built PRG could compile a print source but never show
it. Calls now use the em_pr_* cell values, a position-independent runtime is
copied into a PRINT section, an ENTRY stub runs the body, and the literal is
relocated into DATA.
Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>
The verifier proved the launcher path but never ran prepare-disk.ps1 itself,
so it now compares the injected n128c byte-for-byte with build/n128c.prg, and
the driver suite is part of the regression manifest.
Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>
The compiler had every phase and the PRG/MAP writer but no program on the
C128 that used them, so this adds the prompt, the planned code base, the
three container sections and the one-screen summary, plus a verifier that
drives the launcher through success, syntax failure and output collision
and runs the generated PRG.
Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>