• src/sbbs3/zmodem.c

    From Deucе@1:103/705 to Git commit to main/sbbs/master on Thu Jul 23 21:55:30 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/a816b8cb21e49f495d818c4d
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    Optimize ZMODEM transmit byte classification

    Replace the data-dependent switch in zmodem_tx() with a lookup table
    and session mask. This preserves the existing escaping behavior while
    reducing the per-byte CPU cost of ZMODEM uploads.

    Validate every byte and escape-mode combination against the previous classifier, and verify a real transfer byte-for-byte with lrz.

    Refs #1195

    Co-authored-by: OpenAI Codex <[email protected]>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Thu Jul 23 23:03:46 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/e15a36f6908c70ae351a15fc
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    zmodem: bump zmodem_ver to 2.3

    Reflects the 2 GiB windowed-transfer fix (widening the transmit-window /
    ACK file positions from signed int32_t to uint32_t; GitLab #1196), the one functional change to zmodem.c this cycle.

    Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Thu Jul 23 23:32:44 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/06282ad2f21eec8f375a9bf3
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    Inline the common ZMODEM transmit path

    Hoist the active escape mask out of the per-byte ZMODEM data loops
    and defer the conditional-CR last_sent check until a CR is actually encountered.

    Split error reporting and non-normal escaping into noinline cold
    helpers. This allows the compiler to inline the class-table lookup and
    raw send callback directly into the data loops while leaving uncommon
    work out of the hot path.

    Six interleaved 1 GiB uploads to lrz improved average throughput from
    44.251 MiB/s to 50.651 MiB/s, a 14.46 percent increase.

    Verify classification against the previous implementation for every
    byte, escape-mode combination, and preceding byte. Inspect the release
    output for inlining and run the SyncTERM test suite.

    Refs #1195

    Co-authored-by: OpenAI Codex <[email protected]>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Fri Jul 24 00:10:51 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/a84e414a9ae4b712e2d55c54
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    Merge branch 'master' of gitlab.synchro.net:main/sbbs
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)