Files
fpc-msgbase/docs/format-notes/dependencies.md
Ken Johnson 6181b6abce Rename to fpc-msgbase, scrub false-provenance Allfix references
Project renamed from message_api → fpc-msgbase. Folder, README title,
docs, build.sh, fpc.cfg, and test banners all updated for consistency
with the planned remote at kjgr.io:2222/kenjreno/fpc-msgbase.git.

Also scrubbed claims that backends were "ported from Allfix" or
"match Allfix's msgutil/domsg" — none of this code was ported from
Allfix; it was implemented from FTSC documents and the original
format authors' published specs (jam.txt, squish.doc, pcboard.doc,
EzyCom reference, WildCat 4 SDK headers). Author credits live in
docs/ftsc-compliance.md.

Real interop facts that mention Allfix-the-product stay documented:
the PCB Extra2 sent-bit ($40) Allfix sets when tossing, and the
FTSC-registered product code $EB. These describe external software
behavior we interoperate with, not provenance.

docs/format-notes/hudson.md removed — stale planning doc that
predates the working ma.fmt.hudson backend.
2026-04-17 12:47:43 -07:00

1.9 KiB

External dependencies

Sample test data

Real message bases for testing live under tests/data/ (vendored into the repo) for the formats covered by the test suite. Additional working bases used during development:

  • ~/fidonet/msg/ — Hudson, JAM, Squish, FTS-1 *.msg, etc.
  • ~/allfix_dev/f_drive/tpfiles/allfix/wc_dev/testdata/ — WildCat 4 (7 conferences, MSG/MSG0..MSG6.DAT/IX, DATA/ALLUSERS.DAT, etc.)

Tests should open these read-only and verify message counts, first / last messages, and specific known attributes. Do NOT write to these paths from tests — copy them into a scratch dir first. The Wildcat SDK mutates the message database during Open (btis locks, modcounters) so even "read" paths must go through a scratch copy.

Authoritative specs

The FTSC document collection at /home/ken/Source Code/ftsc/docs/ is the source of truth when validating attribute bits, packet header layouts, date strings, and kludge syntax. Key documents we cross-check against:

  • fts-0001.016 — FTS-1 packet & message format (PKT, *.MSG, attributes, date string, kludges)
  • fsc-0039.001 / fsc-0039.004 — Type-2+ packet header
  • fsc-0045.001 — Type-2.2 packet header
  • fsc-0048.002 — AuxNet Type-2 variant
  • fsc-0009, fsc-0035, etc. — kludges and control lines

Non-FTSC formats follow their original authors' published specs: jam.txt (JAM), squish.doc (Squish/Lanius), pcboard.doc, the EzyCom reference, and the WildCat 4 SDK headers vendored under src/wc_sdk/.

When in doubt about an encoding or bit position, reference the spec before changing the conversion tables in ma.types.pas.

ma.fmt.wildcat.pas

The Wildcat backend uses the WildCat 4 SDK vendored at src/wc_sdk/. The SDK is kept on its own search-path entry (-Fusrc/wc_sdk) so callers that don't need Wildcat can omit the backend without forcing the SDK onto the build line. See the active cleanup pass to trim the SDK to only what ma.fmt.wildcat actually uses.