[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