[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Apple II Tape Question?



David Empson writes ...
> 
> Bryan Parkoff <BParkoff@satx.rr.com> wrote:
> 
> >     Do Apple II Tape use GCR?
> 
> No.  It has nothing in common with the format of data on floppy disks.
> 
> The data is stored as raw tones (probably modulated so that a tone
> change represents a particular bit value, such as zero).

     It uses two 500 uS half cycles for a "1" and two 250 uS half cycles
for a "0". Seems like this is basically the scheme that KIM users ended
up with-- i.e. the 1 and 0 tones got shorter and shorter until we got
down to a single cycle for each.


> The data written to the tape starts with a header, which
> is used on playback for synchronization, followed by raw
> data.  I'd have to look at the monitor source code to
> refresh my memory on the details, but my vague recollection
> is that it records the length of the data written but
> nothing else about it (such as what type of file it might be).  There is
> no concept of filenames.  I don't think it uses any kind of sectoring,
> but might have a simple checksum for the entire set of data.
>

     The routine saves a checksum but not length. Remember, for binary
stuff, you always had to write down start and end address for any binary
file because those numbers are required for both the W (Write) and 
R (Read) monitor commands.

     When you do a SAVE of a BASIC program, I think BASIC writes a prefix
which has the the start and ending addresses.


> > Please provide technical information if you know how it works.
> 
> Get hold of a source code listing for the monitor from the Apple ][, ][+
> or IIe.  That is all the documentation I know of about the tape data
> format.
> 
 ....

     That's the best documentation I've seen. The listing for the 'old ROM'
in the Apple II Reference manual has the most detailed annotations. Write
starts at $FECD and Read starts at $FEFD. Data Start address is at $3C, $3D;
End address is at $3E, $3F. Checksum byte is at $2E.



Rubywand