User Tools

Site Tools


b2f:bcf_v1

This is an old revision of the document!


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 comment: some implementations actively check against the presence of B1F, so it's strongly recommended to concatenate those flags together.

The main differences with version 0 are:

  • An enlarged set of selective retrieval replies.
  • The first transmitted block structure 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.1739542797.txt.gz · Last modified: 2025/02/14 14:19 by f4hof