• docs/xymodem_verification.mddocs/zmodem_comparison.md

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sunday, August 30, 2026 13:48:11
    https://gitlab.synchro.net/main/sbbs/-/commit/2a64eab7ba97101c60761917
    Added Files:
    docs/xymodem_verification.md
    Modified Files:
    docs/zmodem_comparison.md
    Log Message:
    docs: verify sexyz's X/YMODEM interoperability and options

    The option audit prompted by issue #1229 covered ZMODEM and left the
    X/YMODEM knobs untested. Test them, in a separate document since zmodem_comparison.md is ZMODEM-only.

    Interoperability is clean: all twelve sender/receiver combinations
    against lrzsz and against Forsberg's 1997 DSZ transfer a 16 KiB random
    file byte-for-byte. Every knob does something, so there is no second Escape8thBit here.

    Three of them fail hard rather than degrading, which is the part worth
    acting on. SendCRC=false hangs until the timeout against a receiver
    that only ever requests CRC, because XMODEM's receiver drives and ours
    will not answer its C. SendG=false dies 18 bytes in against a G-mode
    receiver. And [XMODEM] MaxBlockSize is asymmetric: it does not cap an
    explicit sX send, which still uses 1024-byte blocks, while on the
    receive side it breaks an otherwise working transfer from a 1K sender
    part-way through. None of these is a dead option -- each demonstrably
    changes behaviour -- but turning a capability off yields a timeout or an
    abort with nothing in the log naming the cause.

    Also records a harness trap that cost a diagnostic cycle: YMODEM carries
    the filename and DSZ writes it through DOS 8.3 rules, so xy.16k arrives
    as XY.16K and a test looking for the name it sent reports a failure that
    did not happen.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net