From rstorer@coventry.ac.uk Tue Jan 07 02:01:03 1997
Newsgroups: comp.emulators.cbm
Subject: Info needed on Turbo Tape format
From: Richard Marek Storer <rstorer@coventry.ac.uk>
Date: Tue, 7 Jan 1997 01:01:03 +0000

Hi I was wondering if anyone can help me here.

I am currently working on a program to transfer data from a C64 
Datassette to PC. So far my program can load standard C64 programs but not 
Turbo Tape files. The reason is that I'm not sure how this format works.
All I've been able to determine is that there are two different pulse 
lengths used to represent data instead of usual three for standard data. 
Also I've noticed that each Turbo Tape file seems to behave differently to 
each other which suggests that they don't share a common format.

Any help would be appreciated.

Richard S.



From Hakan.Sundell@xpress.se Tue Jan 07 09:36:48 1997
To: Richard Marek Storer <rstorer@coventry.ac.uk>
Newsgroups: comp.emulators.cbm
Subject: Re: Info needed on Turbo Tape format
From: Håkan Sundell <Hakan.Sundell@xpress.se>
Date: Tue, 07 Jan 1997 09:36:48 +0100

Richard Marek Storer wrote:
> 
> Hi I was wondering if anyone can help me here.
> 
> I am currently working on a program to transfer data from a C64
> Datassette to PC. So far my program can load standard C64 programs but not
> Turbo Tape files. The reason is that I'm not sure how this format works.
> All I've been able to determine is that there are two different pulse
> lengths used to represent data instead of usual three for standard data.
> Also I've noticed that each Turbo Tape file seems to behave differently to
> each other which suggests that they don't share a common format.
For the first most common Turbo Tape used the format is:

In C64 cycles this pulses are

0x15c for a 1 , and 0xc9 for a 0.

For the first part (with the filename,load addresses),

0x02 0x02 ... 0x02 0x09 0x08 0x07 0x06 0x05 0x04 0x03 0x02 0x01 0x01
[0xc0 * bytes] checksum

the checksum is the EOR value of the 0xc0 number of bytes. In this 0xc0
data you have
0/1 = start, 2/3 = end 5-> = filename.

The main part,

0x02 0x02 ... 0x02 0x09 0x08 0x07 0x06 0x05 0x04 0x03 0x02 0x01 0x00 [n
* bytes] checksum

the checksum is the EOR value of the n number of bytes.


> 
> Any help would be appreciated.
Perhaps you could give me equal information about standard C64 tape
format.
> 
> Richard S.
Håkan Sundell.

From Hakan.Sundell@xpress.se Sat Jan 11 23:31:02 1997
Newsgroups: comp.emulators.cbm
Subject: Re: Info needed on Turbo Tape format
From: Håkan Sundell <Hakan.Sundell@xpress.se>
Date: Sat, 11 Jan 1997 23:31:02 +0100

Richard Marek Storer wrote:
> 
> Thankyou for your information.
> I hope you don't mind me asking some questions.
> 
> > For the first part (with the filename,load addresses),
> >
> > 0x02 0x02 ... 0x02 0x09 0x08 0x07 0x06 0x05 0x04 0x03 0x02 0x01 0x01
> > [0xc0 * bytes] checksum
> 
> The numbers above, do they represent the bytes values that I read ?
> 
> How are the bits arranged to make a byte ?
7 6 5 ... 1
> 
> How do I synchronise the bits, are these numbers an aid ?
The sync headers is the 0x02's in the beginning. Shift in bits until you
get 0x02, then check next 8 bits for 0x09 (end of sync part) or 0x02, if
not 0x02 or 0x09 begin shift bits until 0x02 again.
> 
> Is Turbo Tape a program technique using ROM subroutines or is it some
> type of mode which Commodore kept quiet about ?
It's a standalone program made by some dude in 1983 i think, it doesn't
use the ROM at all besides from printing PRESS PLAY.. on screen, and has
nothing to do with Commodore as i know. This old version was later
rewritten by other folks like Mr.Z and myself, mainly just moved in
memory to allow bigger files to be loaded (>58K).
> 
> Richard S.
Håkan Sundell.

