Skip to content

+ FLEX (TSC 6800/6809) disk images, in-place R/W - #510

Open
Hawkynt wants to merge 3 commits into
mainfrom
feat/flex
Open

Hawkynt wants to merge 3 commits into
mainfrom
feat/flex

Conversation

@Hawkynt

@Hawkynt Hawkynt commented Oct 23, 2026

Copy link
Copy Markdown
Owner

New Flex descriptor (catalogue row was MISSING): reader, NEWDISK-style writer, FMS-style in-place add/delete (refusals leave the image byte-identical).

Verification

  • flexfloppy (laurent-fr/flextools, black-box) catalogues/extracts our created and edited disks, adds into our edit; we read what it formats and adds (FlexExternalConformanceTests, skipped where flexfloppy is absent).
  • Committed fixture: disk made by flexfloppy + its extraction manifest.
  • TSC FLEX 9.1 distribution disk (not committed; read from test-corpus/flex when present) reads byte-identical to flexfloppy's extraction — ran locally.
  • Local: all Flex-filtered tests green (conversion-matrix pairs are KnownGap: FLEX stores whole 252-byte records); SharedExtension/CreateBoundary/CpcDsk/AppleDos suites green after claiming .dsk.

Sourcing: rung 3 — TSC 6809 FLEX Adaptation Guide + FLEX Advanced Programmer's Guide; docs/FLEX-ON-DISK.md.

Hawkynt and others added 3 commits October 23, 2026 14:59
The catalogue listed the FLEX file system as MISSING. New Flex descriptor for
raw .dsk sector images: SIR on track 0 sector 3, directory chain from
sector 5 (it grows past track 0), linked 256-byte sectors with record
numbers. Create formats as NEWDISK does (standard geometries or given);
Add/Remove edit in place as FMS does - sectors from the head of the free
chain, free or deleted directory slot, deleted entries marked $FF and their
zeroed chain appended to the free chain's tail, SIR updated. Protected files,
bad names, a full disk and a free chain disagreeing with the SIR are refused
with the image unchanged. FLEX keeps no byte length, so contents are whole
252-byte records (KnownGap target in the conversion matrix, as LIF/RT-11).
Detection: masked signature over the SIR's zero header and the first
directory sector's link to track 0 sector 6; claims .flx and the shared .dsk.

Oracle: flexfloppy (laurent-fr/flextools, black box) catalogues and
extracts what we create and edit, adds into our edited disk, and we read
what it formats and adds; TSC's FLEX 9.1 distribution disk (TSCFLX09.DSK,
not committed - test reads it from test-corpus/ when present) reads
byte-identical to flexfloppy's extraction, random file and dates included.

Sourcing: rung 3 - TSC's 6809 FLEX Adaptation Guide and FLEX Advanced
Programmer's Guide (normative); docs/FLEX-ON-DISK.md.
Retain FLEX and main fixture resources together, keep main artwork and regenerate FileSystems API documentation. Preserve the explicit conversion constraint for record-padded FLEX files.

Verified: Release solution build, 72 focused format/documentation/provenance tests passed with 10 skips, documentation generation completed without errors.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant