Initial bytes:
CI - CompressIt! (ASCII characters)
X - High byte represents major version low byte represents minor
0 major denotes experimental version
Binary processing:
1/0 - Start in compressed/decompressed mode
The Huffman table told how many to go next in the same mode (compressed or decompressed). After the initial mode start, finishing your Huffman value switched modes with exception to #14.
Huffman style table used
in file format
| 00 | 1 |
| 11 | 2 |
| 010 | 3 |
| 101 | 4 |
| 0110 | 5 |
| 1001 | 6 |
| 01110 | 7 |
| 10001 | 8 |
| 011110 | 9 |
| 100001 | 10 |
| 0111110 | 11 |
| 1000001 | 12 |
| 01111110 | 13 |
| 10000001 | * (reserved for specified length) |
Again, the Huffman value tells how many blocks of 8 bits to read and in compressed mode, the bits represent the pattern mode while in decompressed they represent actual data. The length 14 is reserved. If it occurs, the next binary value (1/0) denotes the type of the forwarding variable. 0 for 1 word and 1 for 2 unsigned long. That type is read in and the program advances with that value. Completing the Huffman value simply switches modes.