Subj : docs/zmodem_comparison.md src/sbbs3/zmodem.h To : Git commit to main/sbbs/master From : Rob Swindell (on Debian Linux) Date : Sun Aug 30 2026 03:34:38 https://gitlab.synchro.net/main/sbbs/-/commit/7bc6f244d87a80c113f2fbfc Modified Files: docs/zmodem_comparison.md src/sbbs3/zmodem.h Log Message: zmodem: note that ZF0 bit 0x08 is contested, and document two gaps Audit of every sexyz option -- command-line, sexyz.ini and negotiated -- prompted by Escape8thBit having been inert for 21 years. The parsed surface came out clean: all 43 ini keys and all 16 command-line options reach something live, and the six knobs that should show up in the negotiated ZRINIT all do (FullDuplex clears CANFDX, CRC32=false clears CANFC32, EscapeCtrlChars sets ESCCTL, RecvBufSize sets the buffer field, Streaming=false clears CANOVIO and sets it to the block size). MaxFileSize refuses an oversized file and RecvTimeout changes the engine's per-read timeout. No second dead option. The gaps are all in the negotiated layer, and two are worth writing down in the feature table rather than leaving for the next person to rediscover: - We never send a ZSINIT, and a received one is ACKed with its flags and Attn string discarded. lrzsz handles it both ways and DSZ sends one when it has something to declare -- observed once, for sz -e -- while zmtx never sends one either. - As a receiver we ignore the sender's ZFILE management request and let local policy decide, where lrz, zmrx and DSZ all honour it. DSZ honours ours, so the asymmetry is ours alone. And correct a misleading comment: we call ZF0 bit 0x08 CANCRY, as lrzsz does, but Forsberg's own rzsz calls it CANRLE and his DSZ sets it on every connection meaning "receiver can decode RLE". Say the bit is contested rather than implying it is settled; we neither set nor honour it under either reading. --- SBBSecho 3.37-Linux * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705) .