Add the stable diagnostic catalog (src/common/diagcat.inc, one line per
diagnostic, included as constants and as messages), src/common/errors.inc,
and src/compiler/diagnostics.s, which prints the 40-column screen form and
writes NAME.ERR, with a default limit of 20 errors. Extend diskio.s with
output-file and DOS-command wrappers.
src/common/diagcat.inc, src/common/errors.inc, src/common/diskio.incsrc/compiler/diagnostics.s, src/compiler/diskio.stests/diag/scripts/build-diag-test.ps1, scripts/verify-diag-test.ps1,
scripts/lib/Nova128Test.psm1docs/diagnostics.md (generated from the catalog), docs/architecture.mdplanning/claims/E02-S04.mdbuild/src/common/diagcat.inc across nine
category ranges; the build rejects out-of-range, duplicate, or reused
numbers and any grammar .expect symbol missing from the catalog.E023 DIAG.N8 65535 255).diag.err read back from the D81 equals the expected six lines exactly;
a stale diag.err was replaced and a stale clean.err was scratched when
no diagnostics occurred.limit.err holds 20 errors plus E221; no files are
left open after any phase. An unwritable ERR name (DOS 33) shows E201 once
and leaves no file. A mutation that stops counting is caught.The grammar fixtures’ symbolic .expect names become catalog symbols
unchanged. Later stories append diagnostics within their category range.
find_message
clobbered X, the formatter's buffer index. Fixed; found by dumping screen
RAM and the format buffer.c1541 -read needs name,s for SEQ files.scripts/verify-diag-test.ps1 (pass plus counting mutation).diag.err, limit.err, and the
directory all match expectations.src/common/diagcat.inc, src/common/errors.inc,
src/common/diskio.inc, src/common/c128.inc (CHKOUT),
src/compiler/diagnostics.s, src/compiler/diskio.s, tests/diag/,
scripts/build-diag-test.ps1, scripts/verify-diag-test.ps1,
docs/diagnostics.md, docs/architecture.md,
tests/grammar/README.md, this claim.Powered by TurnKey Linux.