L-VSX-500-07 — SINTRAN III/VSX Version L, revision 07¶
The original ND distribution set for the version the carver knows as
L-VSX-500.
The -07 comes from the volume label 250305L07, which the carver folder
name does not record. make-segment-ref.py already depends on this
revision — VER2SYM = {"L-VSX-500": "L07"} — so the two now agree
explicitly.
The diskettes¶
| volume | image | files |
|---|---|---|
250305L07-XX-01D |
D:\ND\S\VSXL1.IMG |
MACM-1718L:BPUN (40,039 B), SINTRAN-L-1:DATA (1,095,538 B) |
250305L07-XX-02D |
D:\ND\S\VSXL2.IMG |
SINTRAN-L-2:DATA (549,938 B) |
250305L07-XX-03D |
D:\ND\S\VSXL3.IMG |
15 files: assemblers + symbol tables |
All 8″ DS/DD, 1,261,568 bytes (77 × 8 × 1024 × 2), 616 pages, single user
SYSTEM. Diskettes 1–2 dated 1988-07-08, diskette 3 1988-12-16.
A duplicate of diskette 3 exists at
D:\ND\S\Test-microprogram\test\VSXL3.IMG.
Diskette 3 in full¶
NEW-SYSTEM:PROG DMAC-1915G:BPUN COS-TADADM:BPUN
F32-FMAC-1920C:PROG F48-FMAC-1408D:PROG
FILSYS-SYMBOLS:SYMB RTLO-SYMBOLS:SYMB N500-SYMBOLS:SYMB
SYMBOL-1-LIST:SYMB SYMBOL-2-LIST:SYMB LIBRARY-MARKS:SYMB
XMSG-COMMAND:PROG XMSG-STARTEX:MODE XMSG-STARTEX:BATC
XMSG-SYMBOL-LIST:SYMB
Companion sets for this version: 210373L03-XX-01D (XMSG L03) and
211305B02-XX-01D (ND-500(0) system package for VSX L).
What is here¶
| file | contents |
|---|---|
inputs/distribution-layout-params.txt |
the verbatim 7,457-byte MACM header from SINTRAN-L-1:DATA — patching procedure, macro legend, and the NAME=page layout parameters |
inputs/distribution-layout-params.json |
the same, parsed: 34 parameters with page/madr values, plus the 21-entry macro→area legend |
carve-crosscheck.md |
the findings — what this confirms, corrects and leaves open in segment-facts.json |
The two tools for this distribution¶
Both live in E:\Dev\Ronny\NDInsight\tools\boot-floppy\tools\. They are
specific to this floppy set — they hard-code L07 paths — and each carries a
full header comment, so the file itself is the reference. Summary:
extract_layout_params.py — generates everything in inputs/¶
This is the only thing that produces the two inputs/ files. They are
committed; if either is ever doubted, re-run this and diff.
SINTRAN-L-1:DATA is the MACM generation stream ND shipped. Its first 7,457
bytes are plain text that MACM reads: NAME=octal lines giving each SINTRAN
system area's SEGFIL page number, plus a %% legend mapping patch-macro
names to area names. Everything after that first control byte is binary and
is ignored.
Why it is worth having: that header is a third, independent witness to
the segment page map — neither the live LIST-SEGMENT dump nor the OCR'd
release-manual §8.3. It is what confirmed 28 of 32 layout parameters against
carved madr values and let 30 segments rated medium only because of OCR
damage be promoted to high. See carve-crosscheck.md.
One non-obvious rule it implements: in an expression such as 300-2, the
leading additive terms are the page address and a trailing -N is a
length/in-page offset that is not part of the address. SEGFIL page
numbers relate to the carver's madr as madr = page - 0o200.
python E:\Dev\Ronny\NDInsight\tools\boot-floppy\tools\extract_layout_params.py ^
D:\ND\extract\VSXL1\SINTRAN-L-1.DATA ^
E:\Dev\Ronny\NDInsight\tools\boot-floppy\versions\L-VSX-500-07\inputs
Verified 2026-07-25: reproduces both committed files byte-for-byte in content (7,457-byte header, 34 parameters, 21 legend entries); the only difference is line endings — CRLF in the repository, LF from the script.
analyze_vsxl1.py — how the shipped MACM differs from the analysed one¶
Read-only; prints, writes nothing. It parses each BPUN tape into the
program it actually loads (skips the NUL leader, finds !, reads the
big-endian base and word count, then the words and the trailing checksum)
and reports base, length, span and checksum validity for the floppy's
MACM-1718L:BPUN against the standalone D:\ND\BPUN\MACM-1718L.BPUN. It
word-diffs them only when base and length match.
Why it is worth having: every Ghidra finding in
../../MACM-DIALOGUE.md and
../../MSTYP-SWTYP-BRIDGE.md was made on the
standalone binary, and ND shipped a different build. MACM-DIALOGUE.md
open question 7 records this and says the floppy copy "was not examined".
This is the tool for it.
Measured 2026-07-25:
| copy | base | words | span | checksum |
|---|---|---|---|---|
| floppy | 076203 |
19738 | 076203–144634 |
121055 OK |
| standalone | 077120 |
19273 | 077120–144630 |
117607 OK |
Both checksums verify, so the difference is real, not tape damage. They are different programs: the floppy build is 465 words larger, with its base 461 words lower and its top 4 words higher (461 + 4 = 465) — i.e. extended almost entirely downward, both images ending at nearly the same address. Content near the top sits at close to the same address in both builds; content near the bottom is displaced by ~461 words. That is the constraint on whether an address-specific finding carries over. Which side the MSTYP tables fall on is still open — this script does not resolve it.
Large binaries are not copied in. SINTRAN-L-1:DATA is 1.05 MB and the
floppy images are 1.2 MB each; they stay at their D:\ND\S\ paths and are
extracted on demand.
Do not add -p here. VSXL1.IMG holds MACM-1718L:BPUN and
SINTRAN-L-1:DATA, both 8-bit binaries; -p strips bit 7 and destroys them
(no BPUN checksum then verifies). -p is for text files only (:SYMB,
:PATC).
ndtool -x -o D:\ND\extract\VSXL1 D:\ND\S\VSXL1.IMG
ndtool -x -o D:\ND\extract\VSXL3 D:\ND\S\VSXL3.IMG
Findings in one line each¶
- 28 of 32 layout parameters match carved
madrvalues exactly. - Segment 61's description is a copy-paste of segment 60's — the floppy shows it is XMSG XROUT, not the kernel.
- 30 segments marked
mediumconfidence only because of OCR damage in the manual can be promoted tohigh— this is a third, non-OCR witness. - One symbol-table corruption in the repo:
ENT0-011302→ENT0=011302. - One genuine open conflict (
PRDvsS3SDPIT) — flagged, not "fixed".
Details and evidence: carve-crosscheck.md.