CURSOR and Commodore cassettes

From: Doug Coward <mranalog_at_home.com>
Date: Sun May 9 03:38:17 1999

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_at_pressstart.com (work)
Sr. Software Eng. mranalog_at_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
====================================================
Received on Sun May 09 1999 - 03:38:17 BST

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