in the form of single byte units (tokens), but character by character. A data block begins with the character 02 (STX, start of text), and ends with the character 03 (ETX, end of text). After ETX, a check byte made up of the previous bytes including STX and ETX by binary addition (XOR), is transmitted. A 0D character (decimal 13) marks the end of a line during transmission. Data files created by programs are able to use all characters as data and must contain no control characters. Each byte is transmitted in the sequence "1 start bits - 8 data bits - 2 stop bits". The data bits are sent with the least significant bit first. The most significant bit is transmitted inverted and is always 0 (transmitted as 1) because BASICODE uses only ASCII characters. So another way to describe the transmit sequence is "1 start bit - 7 data bits - 3 stop bits". The resulting redundancy is intended for maximising compatibility with different computers. For the audio signals, square waves in the form of a 1200 Hz wave for a "0" bit and two 2400 Hz waves for a "1" bit are used, resulting in a time of 1/1200 seconds for each bit. A pause longer than 1/1800 seconds between waves marks the beginning of a byte, making the following wave the start bit. After the start bit and before the eight data bits is another pause of at least 1/1800 seconds. A 2400 Hz signal with a length of five seconds marks the beginning of a transmission and is used for synchronization of the reading program. At the end of the transmission, a 2400 Hz signal with a length of one second is sent. The theoretical data rate of this format is 1200 bits per second. Considering the transmission of three additional bits per data byte and the pauses before and after the start bit, this results in a usable data rate of 102 bytes per second, and about 6 kilobytes per minute. Decoding Audio Cassettes On a modern computer, Basicode audio cassettes can be decoded using minimodem, a freely available software modem. If the cassette has been converted into a wav file called basicode.wav, the following command will decode it into its corresponding data bytes into a file called basicode.txt. minimodem --rx 1200 -S 1200 -M 2400 --startbits 1 -7 --stopbits 3 -f basicode.wav >basicode.txt