Atari data cassette

Atari data cassettes store programs or data for the Atari 400 or 800 computers.

File structure
A file stored on cassette has this overall structure:


 * 20-second leader (mark tone)
 * A series of data record frames
 * An end-of-file frame

Data record frame
The data record frame has this structure:


 * Pre-record write tone (PRWT)
 * Data record body
 * Post-record gap (PRG)

Pre-record write tone
The pre-record write tone has two forms, depending on whether the write OPEN mode was "stop/start" or "continuous write".

For stop/start, the PRWT is 3 seconds of mark tone.

For continuous write, the PRWT is .25 second of mark tone.

Post-record gap
The post-record gap also has two forms for the two write OPEN modes.

For stop/start, the PRG is up to 1 second of unknown tones.

For continuous write, the PRG is from 0 to n seconds of unknown tones, depending on program timing.

An inter-record gap (IRG) consists of the PRG of the first record followed by the PRWT of the next record.

Data record body
The data record is a fixed-length record of 132 bytes, stored as as sequence of bits going from high bit to low bit. This is in the following order:


 * Two speed measurement bytes: 0 1 0 1 0 1 0 1
 * Control byte (FC indicates full data record, FA indicates partial data record [only found in last record of file], FE indicates an all-zero end-of-file record)
 * 128 data bytes (last byte is set to number of data bytes in record for partial data records)
 * Checksum

Links

 * Atari reference manual (lots of tech details)