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

47 lines
1.9 KiB
Markdown

# 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.