b2f:bcf_v1
This is an old revision of the document!
Table of Contents
Binary Compressed Forward Version 1
This version of the protocol is an extension to both the ASCII Basic Protocol and the Binary Compressed Forward Version 0. It is used to transfer compressed ASCII Messages or binary files.
This version is advertised in the SID Features field with the B1
and F
strings (F4HOF's note: some implementations actively check against the presence of B1F
, so it's strongly recommended to concatenate those flags).
The main differences with version 0 are:
- An enlarged set of selective retrieval replies.
- The first transmitted block is slightly changed
Commands
Selective message retrieval
Value | Alt Value | Action | Meaning |
---|---|---|---|
Y | + | Accept | Send the message and delete it from the queue (“Yes”) |
N | - | Drop | Don't send the message and delete it from the queue (“No”) |
L | = | Defer | Keep in the queue to retrieve it later |
H | Hold | Send the message and hold it in the queue | |
R | Reject | Message is rejected | |
E | Error | Invalid proposal | |
A | ! | Append | Send the message, starting from offset then delete it from the queue |
Transfer Mode
The first transmitted block of data must contain a header containing : the CRC16 of the full binary file (2 bytes) the size of the full uncompressed file (4 bytes) This data is in little-endian Intel format (less significant first). The last data block is followed by the end of file specifier and the checksum of the data sent.
End of file specifier format :
<EOT> 1 byte = 04 hex Checksum 1 byte = 00 to ff hex
The checksum is equal to the sum of all the data bytes of the transmitted data, modulo 256 (8 bits) and then two's complemented.
The checking of the checksum is very simple :
The sum of the data bytes from the file and the checksum received modulo 256 shall be equal to zero.
In case of a checksum error, the message or the file is ignored and the system issues a disconnect request after having sent the comment :
- ** Erreur checksum
A CRC16 is computed for the full binary file including the length of the uncompressed file (4 bytes in top of file). In the case of a resume, it will be the only means available to ensure that all the parts of the message or file has been received correctly. The LZHUF_1 program, when used with option "e1", generates a binary compressed file in the following format : CRC16 : 2bytes Length: 4 bytes Data : rest of the file In case of forwarding with a BBS using version 0, only the part from offset 2 will be sent In case of forwarding with a BBS using version 1, the 6 top bytes will be always sent, then if resume seek to asked offset, then send data. Ascii values of the characters (1 byte) used in the protocol :
<NUL> = 00 hex
<SOH> = 01 hex
<STX> = 02 hex
<EOT> = 04 hex
b2f/bcf_v1.1739539818.txt.gz · Last modified: 2025/02/14 13:30 by f4hof