- comet daemon: 1.2.1 -> 1.2.2 (both protocol paths now
externalized into fpc-binkp + fpc-comet;
daemon wraps via cometbinkpfpc + cometfpc)
- fpc-filexfer: 0.1.0 pre-publish -> 0.1.1 shipped (added
SEAlink engine; note origin remote not
yet configured)
- fpc-emsi: new entry, shipped (0.1.2) with IEMSI
detection; EMSI / WaZOO / FTS-1 handshakes
+ unified 4-way answerer dispatcher. No
origin remote yet.
Per ~/.MSGAPI_MSGS.md Messages 40-43.
fpc-bbs
A unified Free Pascal library for reading and writing BBS-side file-area databases across multiple BBS systems.
Sibling to fpc-msgbase (message-base storage)
and fpc-ftn-transport (FTN wire / queue
/ bundle). Same vendoring model: each library is its own repo,
its own tests; consumers vendor it via cp / rsync; bug fix →
commit here → consumers make pull-fpc-bbs at their convenience
→ rebuild → deploy.
Scope
| Concern | Owned by |
|---|---|
| Message storage (Hudson, JAM, Squish, MSG, PCBoard, EzyCom, GoldBase, Wildcat) | fpc-msgbase |
| FTN transport (PKT, BSO, ArcMail, FilQueue, DBridge) | fpc-ftn-transport |
| TIC processing / file echo (FSC-0087) | fpc-ftn-transport (tt.tic.*) |
| BBS file-area databases (FILES.BBS, DIR.LST, per-BBS variants) | fpc-bbs |
| BBS config readers (per-BBS .CFG / .DAT / .PRM / .CTL formats) | fpc-bbs |
| BBS user databases (USERS.BBS, USER.DAT) | fpc-bbs (when needed) |
Initial backends (priority order)
| BBS | Priority | Reference |
|---|---|---|
| RemoteAccess (RA) | high | RA's CONFIG.RA + FAREA.RA |
| Maximus | high | Maximus PRM + AREA.DAT |
| Synchronet | high | SBBS XSDK conventions |
| Renegade 1.4 | high | Renegade 1.4 binary configs / file area files |
| PCBoard | secondary | PCBoard 14/15 + Allfix's PCBTYPES.PAS head start |
| ProBoard | secondary | ProBoard CFG + Allfix's PROBOARD.PAS head start |
Allfix v6 (~/Source Code/originalallfix/AllFix.1/TPFILES/ALLFIX/)
is the primary reference — its file-area handling already covers
several of these, and the migration is the practical motivation
for this library.
Status
Pre-implementation. Repo skeleton committed; first concrete
unit (bbs.api + bbs.types) lands in the next session.
Naming
Unit prefix: bbs.<category>.<name>.pas —
| Namespace | Owner |
|---|---|
bbs.api |
top-level facade + abstract TBbsBase |
bbs.types |
shared types (TFileArea, TFileEntry, etc.) |
bbs.events |
event hooks (mirrors mb.events / TMessageEvents) |
bbs.fmt.<vendor> |
per-BBS adapter |
bbs.fmt.<vendor>.uni |
unified-API adapter (when warranted) |
All units use {$mode objfpc}{$H+}{$modeswitch advancedrecords}.
Building
Once units land:
fpc -Fusrc -Fusrc/formats examples/example_filearea_list.pas
fpc.cfg covers the multi-target build (i386-go32v2,
i386-win32, i386-linux, i386-os2, x86_64-linux).
Layout
src/ bbs.api, bbs.types, bbs.events
src/formats/ bbs.fmt.<vendor>.pas
docs/ architecture, scope, format notes
tests/ regression tests, sample data
examples/ small CLI programs that double as smoke tests
Documentation
docs/architecture.md— layered designdocs/scope.md— per-concern boundariesdocs/format-notes/— per-BBS quirks
Family
| Library | Concern | Status |
|---|---|---|
comet |
Comet daemon (session/WFC/routing; wraps fpc-binkp + fpc-comet) |
shipped (1.2.2) |
fpc-log |
Shared TLogProc logger interface for every fpc-* lib |
shipped (0.1.0) |
fpc-msgbase |
Message-base storage (8 formats) + mb.address leaf |
shipped (0.7.0) |
fpc-ftn-transport |
FTN transport tier (PKT / BSO / FilQueue / DBridge / Filebox / ArcMail) | shipped (0.6.0) |
fpc-binkp |
BinkP/1.1 + Argus / binkd extensions (CRYPT / NR / ND / PLZ / EXTCMD-GZ / ED25519 / DES-CBC / TRF / FREQ) | shipped (0.2.0) |
fpc-comet |
Native Comet protocol (FSP-COMET-001; X25519 + ChaCha20 + ED25519) | shipped (0.1.0) |
fpc-filexfer |
XMODEM / YMODEM / ZMODEM / SEAlink / Hydra / Janus / nova | shipped (0.1.1, no origin remote yet) |
fpc-emsi |
EMSI / WaZOO / FTS-1 / IEMSI session handshakes + dispatcher | shipped (0.1.2, no origin remote yet) |
fpc-bbs |
BBS file-area databases | in progress (0.0.1 scoped), this repo |
fpc-ftpmail |
FTP / SFTP server lib (file-tree provider) | proposed — open slot |
fpc-dbapi |
DB abstraction | in progress (Fastway) |
fpc-filebase |
(folded into fpc-bbs as the file-area-database side) |
— |
The tt.tic.* modules (file-echo TIC handling per FSC-0087) live
in fpc-ftn-transport -- TIC processing is transport-tier and
rides BSO/ArcMail rails. fpc-bbs is the BBS-side storage that
the tosser writes into after .TIC validation.