Linards Ticmanis <ticmanis@gmx.de> wrote:
Another even more compact format would be to simply represent the stream
of data records as decoded bytes separated by "silence" and "prefix"
durations. To my knowledge, all Apple tapes were written by the Apple
Monitor's cassette write routine.
OK, if this is the case on the Apple then fine. On the Commodore it is
most definitely not the case, most tapes had a short standard format
booter, which then used its own routines for loading the rest of the
tape, talking directly to the hardware. Are you sure this was not done
on any Apple tapes?
I've looked at a fair number of tapes. I've only seen one that had it's
own loader, and it just copied the code out of the ROM (it added a change
to XOR the loaded data, but the signal was the same).
One thing to be careful of is that there are five kinds of data (INT, BAS,
BIN, VAR, and BAS shape tables), and they're not all stored the same way.
Overall the data format is the same, but some of them come with a header
that holds two or three bytes. It may not be enough to just generate
the WAV from a BIN; for best results it might make sense to store both
parts as read from the tape.