C-Modem is a protocol driver developed by Lavio Pareschi (Rio de Janeiro) in 1989, that works similarly and better than ZMODEM . It includes a whole new file transfer protocol, built around the idea of crash recovery, easy of use and great performance. C-Modem provides reliable file transmission even in the worst conditions, as it adapts itself immediately to any errors that may occur (even in the so-called 'error free' modems). Major features of the C-Modem communications protocol include: Transmission Crash Recovery Being interrupted by any condition, the file transmitted is saved with the extension file .BAD until the last byte is received correctly. In the next connection/transmission, the file will be completed automatically. Mutable Data : crc blocks on data blocks of variable size Depending on velocity and errors during transmission, as well as line conditions, the size of data-blocks between crc-blocks will freely vary from 32 to 4096 bytes. This reduces the amount of control bytes added to the transmission and minimizes data repetition. The result is an excellent true transfer rate. Full Duplex The transmitter doesn't stop every block to receive useless answers. The transmitter occurs without pauses between blocks. The receptor only warns when something wrong happens. Exact Size While not accurate in terms of bits (it rounded up), the file was accurate in terms of bytes, and would have exactly the same size as the original one as it up/downloaded. To its credit, it did not add bytes to complete blocks of fixed size. External links C-Modem 1.1 program C-Modem documentation BBS file transfer protocols