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.
47 lines
1.9 KiB
Markdown
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.
|