Skip to main content

Module kermit

Module kermit 

Source
Expand description

Kermit file transfers, as C-Kermit, G-Kermit and Kermit-95 speak them, in both directions.

Packets are SOH LEN SEQ TYPE DATA CHECK CR, every field but the mark made printable (tochar(x) = x + 32). The two sides trade their parameters in the Send-Init (S) packet and its acknowledgement; this side offers long packets (up to MAX_LONG bytes), CRC-16 block checks (type 3), ~ run-length compression and file attributes (for the size), and takes whatever the other side can do. No sliding windows: each packet waits for its ACK, which is fine on a telnet or SSH link.

A download starts by itself when the BBS’s Kermit sends its S packet (see find_send_init); an upload is started by the user once the BBS’s Kermit is receiving.

Structs§

Kermit
A Kermit transfer, either way.

Constants§

MAX_LONG
The longest packet offered (its data and check).

Functions§

crc16_kermit
CRC-16/KERMIT: CCITT, reflected (0x8408), starting at 0.
find_send_init
Where a Send-Init packet starts in data, if there is one: what a BBS’s Kermit sends when told to send a file.