Ken Johnson 0a77f41fd2 README: Family table refresh -- ecosystem state 2026-04-22
- 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.
2026-04-22 15:57:56 -07:00
2026-04-18 21:45:02 -07:00
2026-04-18 21:45:02 -07:00
2026-04-18 21:45:02 -07:00
2026-04-18 21:45:02 -07:00
2026-04-18 21:45:02 -07:00

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

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.

Description
BBS-side file-area / config / user-DB library
Readme 52 KiB
Languages
Shell 82.7%
Pascal 17.3%