Original cas format
There are several possible chunk types, each identified by a 4-letter string. Those are:
FUJI - tape description
| Offset | Size (bytes) | Name | Contains |
| 0 | 4 | chunk_type | FUJI |
| 4 | 2 | chunk_length | chunk's length |
| 6 | 2 | ignored | |
| 8 | chunk_length | description | tape's description (UTF-8) |
A CAS file must begin with a FUJI chunk. This chunk holds the tape's description (as an UTF-8 string) in data. The chunk_length field holds the description's length. The description may be empty - then the chunk_length is 0.
A CAS file may contain more FUJI chunks - they can be used to label different parts of a tape, such as separate files recorded one after another. However the current version of liba8cas ignores all but the first FUJI chunk.
baud - baudrate for subsequent SIO records
| Offset | Size (bytes) | Name | Contains |
| 0 | 4 | chunk_type | baud |
| 4 | 2 | chunk_length | 0x00 00 (0 bytes) |
| 6 | 2 | baudrate | baudrate of subsequent data chunks |
A baud chunk holds the baudrate of the following data chunks (until a next baud chunk). The chunk's length is always 0 (+8 bytes of the header), and the baudrate is stored in the baudrate field. If no baud chunk is encountered before a data chunk, its baudrate is set to the default value of 600.
data - standard SIO record
| Offset | Size (bytes) | Name | Contains |
| 0 | 4 | chunk_type | data |
| 4 | 2 | chunk_length | chunk's length |
| 6 | 2 | irg_length | length of IRG before this record, in ms |
| 8 | chunk_length | data | block's data |
A data chunk contains a standard tape record as read or written by Atari's SIO. Those records normally have a length of 132 bytes, start with two 0x55 bytes, and end with a checksum byte - however those are not necessary. The record's baudrate is the baudrate stored in the previous baud chunk (if no baud chunk has been encountered yet, a standard baudrate of 600 is assumed).
Previous page: Description of a8cas chunks
Next page: New types for standard format