Prove that a Nova128 source written only in the editor is a valid PETSCII SEQ
file that the C128 compiler front end consumes without a host conversion, that
the editor itself can reopen it unchanged, and that the exact bytes match an
independently computed expectation. D151 moves this check to the target machine:
the editor is ../vim/vim128.prg in x128 80-column mode, autostarted from the
session disk.
tests/disk/tokenize-seq.s (new): load ROUNDTRIP.N8 through src_load,
tokenize it, dump tokens in the lexer-test.s format, report through the
mailboxscripts/build-tokenize-seq.ps1 (new)tests/disk/vim-roundtrip.tests.ps1 (new): two editor sessions plus the
tokenizer sessiondocs/decisions.md (D151), docs/editor-workflow.md,
docs/architecture.md (§10)planning/claims/E07-S03.mdbuild/vim-roundtrip/keybuf into
vim128 (file: prompt, y to create, i, text, RUN/STOP, :wq) and then
runs the new C128 tokenizer, which loads the disk file with src_load, lexes
it, and reports 31 tokens that match the host reference lexer line for line.
Nothing rewrites the file between Vim and the C128.x128 session opens
roundtrip.n8 and writes the buffer to copy.n8; the extracted bytes are
identical (107 bytes), so the editor restored the saved text exactly.ConvertTo-Nova128Petscii
(the mapping prepare-disk.ps1 uses) and compares every byte; c1541 -read
only transfers the file.program, alpha) and uppercase ones (RoundTrip,
BETA), and the test asserts the written file contains bytes in $41-$5A
and $C1-$DA before tokenizing.source.s and lexer.s, so it proves the reader and lexer rather than a
copy of them.../vim/vim-improved.d81 and ../vim/vim128.prg are only read; the session
works on build/vim-roundtrip/work.d81, and the test checks the source
image's SHA-256 is unchanged.:wq.cannot write because drive 8
defaulted to a 1541, which cannot write a D81. -drive8type 1581 fixed the
device; a -drive8truedrive variant also failed to store the file.vim128 from the session disk (work.d81:vim128, run from the image's
folder) makes the writes land; the launcher and module now use that path.-exitscreenshot; -exitscreenshotvicii produced a blank
40-column capture, and -exitscreenshotvdc is not a VICE option.tests/disk/vim-roundtrip.tests.ps1 (two x128 editor sessions
on a copied D81, then one x128 tokenizer session),
tests/disk/launchers.tests.ps1, git diff --check.vim source round-trip passed; the editor wrote 107 bytes with both
PETSCII letter ranges, the reopened copy was byte-identical, and C128
produced 31 tokens matching the reference lexer. The source image hash stayed
0FF83A621B59B312F1BAE9F1D0785421500D22FD00F833A9CA918EBCA7105983.keybuf is wall-clock driven, so a heavily loaded host can
deliver keys before a prompt is ready; the test's cycle limit and per-key
delay are the guard, not a handshake. Lines longer than the editor's 80-byte
limit are split by the editor on load and cannot be reproduced by this test,
and the tokenizer only accepts the single fixed file name ROUNDTRIP.N8.Powered by TurnKey Linux.