Commodore cassette format

From: Doug Spence <ds_spenc_at_alcor.concordia.ca>
Date: Fri May 7 05:51:21 1999

Hi,

I need some information about the Commodore cassette storage format.

I want to salvage something from a damaged cassette, and I have a (rather
crummy) audio digitizer. I've spent a couple of hours staring at the signals
from stored programs but I just don't 'get it'.

In the data portions, it appears as if every 20th wave is special, with
maximum amplitude and a smaller frequency. If these are synchronization
points, why does it appear to be at every 20th wave? Why not every 9th? Does
the format not care about bytes? Or is there some kind of error detection or
correction scheme taking up more bits?

There are about 200 of these 'synchronization waves' just in the header. The
machine-readable file I was looking at only has a three-character filename.
What data is normally stored in the header? Filename, load address, checksum
or CRC, etc?

It sounds like there are two identical copies of the header information. I
know that there are two copies of the actual file data.

How is the data actually stored? I expected to see square waves with
frequency modulation. IIRC, that's what the Apple does. The PET appears to
use sine waves (non-flattened) and I can't visually discern any frequency
differences in the data (at a sample rate of approx. 25,500 per second). A
lot of the data portion of the file I'm looking at looks like it is stored
with amplitude modulation, but I don't think that would make sense with such a
flaky thing as cassette tape. There are large amplitude "gulleys" here and
there in the file, yet the file I'm looking at loads properly.

(Of course, it sure SOUNDS like it's using frequency modulation. Perhaps I
should sample at a higher rate, and get out a ruler to measure the width of
the waves...)

Those 20 waves don't represent a single bit, do they? (Lessee... approx. 60
waves per 600 samples, 25,500 samples per second... that's 2,550 Hz, and 20
waves/bit = 127.5 bps, which isn't enough but is getting somewhat closer to
the numbers I'd expect. Maybe I'll answer some of my own questions with
another look at the samples.)

The damaged file that I want to salvage has had its header wiped out (someone
momentarily hit "RECORD"), but the data appears to be untouched. Is there a
way of getting the PET (or any other machine) to read the data without the
file header?


-- 
Doug Spence
ds_spenc_at_alcor.concordia.ca
http://alcor.concordia.ca/~ds_spenc/
Received on Fri May 07 1999 - 05:51:21 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:32:24 BST