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.
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 headerfsc-0045.001— Type-2.2 packet headerfsc-0048.002— AuxNet Type-2 variantfsc-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.