The basic idea is that a pulse that is 320us long counts as a "1" and 640us long counts as a "0". Or rather, if the signal is stable with no edges for 320us it counts as a "1" and if it's stable for 640us it counts as a 0. For example: ------ -- ------ -- | | | | | | | | --- -- -- -- --- 640 320 .... us us 0 1 1 1 0 0 0 ... This is usually called FM as the pulse width and hence frequency of the signal varies with the bit value. 11 bits form a byte, similarly to the RS-232 format; i.e. a start bit that's always 0, eight bits 0..7, two start bits that are always 1. The tone you hear at the beginning is actually a long string of "1"s before the actual dump comes. They are really just there for synchronization so it doesn't matter if most of them are missing. Similar with the trailer bytes, they are just there to round off the audio signal. The dump format is: 10240 bits of "1"s (320us pulses) - leader 1 byte 80 (decimal) - these two bytes identify the dump as from a Polysix 1 byte 54 (decimal) 512 bytes of program data (i.e. 32 programs x 16 bytes each) 1 byte checksum of the data (i.e. all data bytes summed up modulo 256) 1536 bits of "1"s - trailer /Ricard