Doug Spence wrote:
Does anyone have the program "RACE" from
Cursor #2?
About a year ago, I transfered the first 15 or so CURSOR
tapes to Commodore disk for Larry Anderson to put up on
his BBS. I did it in a hurry and didn't keep a copy of
the disks. You can ask him for a copy or I can try to
"dig" the box of CURSOR tape out of which ever pile it
wound up in. If I can find the tape, I can transfer it to
the pc on the little C64 dev station I set up at work.
Let me know.
Doug Spence wrote:
I need some information about the Commodore cassette
storage format.
....snip.....
In the data portions, it appears as if every 20th wave is special
About a year and a half ago, I took my shot at converting wave files.
Unfortunately I had to move on to other projects just as I was making
progress.
First, IMHO if you are sampling at less than 44.1, you are making
things too hard on yourself.
I did find the format of the header in a book and now I can't remember
which book it was, but I'm fairly certain it was a PET book.
I started with a test program consisting of:
10 REM ABCDEFGHIJKLMNOPQRSTUVWXYZ
Then I wrote a C program to measure pulses from "bottom to bottom".
Analyzing the data, I choose 15 samples as the difference between
small pulse and a large one. 15 or less was small and 16 or greater
was a large.
with maximum amplitude and a smaller frequency.
Yes, this is a sync bit at the start of ever byte. Watching for this
will tell you when the data begins.
Below I have copied the begining of the last test output I ran.
First there is a row of pulse lengths (in samples)
(20 17 17 14 14 17 14 17 17 12 14 17 13 16 13 16 16 14 13 17)
Then there is a row where zero is a "small pulse", 1 is a "large"
pulse.
( 1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 )
With that information, I determine the byte like this:
* the first two pulses are 1 and 1 - this is the sync bit.
* the next two pulses are the low order bit
* a 1 followed by a 0 is a 1
* a 0 followed by a 1 is a 0
* and the last two pulses is the parity bit
So in the first line of data:
1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1
represents hex 89.
This is just a small portion of the output file. It shows the header
up to and including the filename (TEST1).
If you want, I can sent you the rest of this file off list.
;
; Cassette Tape Analysis of c6444812.wav Created 09/11/97
;
Silence............for 0x0024F2 bytes
at byte count 0x000024F3
Reading leader.......
Silence............for 0x001C77 bytes
at byte count 0x00004296
Reading leader.......
Leader = 27136
Reading data.......
20 17 17 14 14 17 14 17 17 12 14 17 13 16 13 16 16 14 13 17
1 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1
89
20 16 14 17 14 17 14 17 16 13 13 17 13 16 13 16 16 13 16 14
1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 0
88
20 16 17 14 17 14 16 13 13 16 13 16 13 16 13 16 16 14 17 14
1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0
87
20 16 13 17 17 13 16 13 13 15 13 16 13 16 13 16 16 13 13 17
1 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1
86
20 16 17 14 14 17 17 13 12 16 13 16 13 16 13 16 17 13 13 17
1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 0 1
85
20 16 14 17 13 16 17 13 13 16 14 16 13 16 13 16 16 14 17 14
1 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0
84
19 17 17 14 16 14 13 16 13 16 14 16 13 16 13 17 16 13 13 17
1 1 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1
83
20 16 14 17 17 13 13 17 14 16 13 16 13 16 14 17 17 14 16 13
1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0
82
19 16 17 14 13 16 14 16 14 16 13 17 13 16 13 17 16 13 16 14
1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0
81
19 17 17 13 13 17 14 17 13 16 13 16 13 16 13 16 13 16 13 16
1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
01
20 17 17 14 14 17 14 17 14 16 13 16 13 16 13 16 13 16 13 16
1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
01
20 17 14 17 15 17 14 17 16 13 13 16 13 16 13 16 13 16 13 16
1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1
08
20 16 17 15 17 13 13 16 13 16 13 16 16 13 13 16 13 16 13 16
1 1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1
23 #
20 16 14 17 14 16 13 16 17 13 13 16 14 16 13 16 13 16 13 16
1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1
08
19 16 14 17 14 17 17 13 13 16 16 13 13 16 17 14 13 17 14 16
1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1
54 T
19 16 17 15 13 17 16 13 13 16 13 16 13 16 16 14 13 17 14 17
1 1 1 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1
45 E
20 17 17 14 17 14 13 17 13 17 16 13 13 16 16 13 13 17 17 14
1 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0
53 S
20 16 14 17 14 16 17 13 13 17 16 13 13 16 16 14 13 17 13 16
1 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1
54 T
19 16 17 14 13 17 14 16 13 16 16 13 17 14 14 16 13 16 13 16
1 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1
31 1
19 16 14 17 15 17 13 16 13 16 13 16 16 13 13 16 14 17 14 17
1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1
20
I hope this helps,
--Doug
====================================================
Doug Coward dcoward(a)pressstart.com (work)
Sr. Software Eng. mranalog(a)home.com (home)
Press Start Inc.
http://www.pressstart.com
Sunnyvale,CA
Curator
Museum of Personal Computing Machinery
http://www.best.com/~dcoward/museum/
and the new
Analog Computer Museum and History Center
http://www.best.com/~dcoward/analog
====================================================