Page 1 of 1
Tape Header Format
Posted: Mon Dec 04, 2006 11:52 pm
by Twilighte
I thought it about time to lay out the format of a standard Oric tape header...
$16
$16
$16 (Minimum of three $16's)
$24 (Synchronisation byte)
$0
$0
$0(Basic) or $80(Assembler)
$0(No Autostart) or $80(Basic Autostart) or $C7(Assembly Autostart)
High Byte of the End address
Low Byte of the End Address
High Byte of the Start Address
Low Byte of the Start Address
$0
Filename(Up to 16 characters)
$0
Program Data
Note that i have used hexadecimal notation throughout
Re: Tape Header Format
Posted: Sun May 10, 2015 3:27 pm
by jdavis6809
hello,
yes
thanks
I have ben reading some tap files with a hex editor I find that the header content is not consistence
I expected the data start stop addresses and file name addresses to be in the same place all the time
regards
john davis uk
Re: Tape Header Format
Posted: Sun May 10, 2015 8:39 pm
by Dbug
As written the number of $16 is variable because it's a synchronization pattern, technically you could have many of them, it just happens that 3 is the minimum that still gives readable data.
The rest is consistent.
Re: Tape Header Format theoric #19 L'Oric ANU
Posted: Mon May 11, 2015 2:30 pm
by jdavis6809
hello
I have download all of the theoric magazines and found this in issue #19
It explains the tape format
see attached
regards
john davis uk
Re: Tape Header Format theoric #19 L' Oric ANU part 2
Posted: Mon May 11, 2015 2:33 pm
by jdavis6809
hello
I have download all of the theoric magazines and found this in issue #19
It explains the tape format
see attached
regards
john davis uk
Re: Tape Header Format
Posted: Wed Dec 28, 2016 8:55 pm
by ThomH
I've thrown
this onto the wiki, which I think matches the exposition given above plus some detail on the actual waveform and a brief mention of the hardware/software implementation. Hopefully it's accurate but if not then, well, it's a wiki. So easy to fix.
Re: Tape Header Format
Posted: Sat Dec 31, 2016 10:50 am
by Symoon
In an old discussion about it, we establised that the Oric ROM actually needs four $16 at the beginning of the file. 1st one is used to synch the signal decoding, the 3 next to confirm it's the header synch sequence.
That's funny because for a long time I thought the Oric synchronised its reading speed according to the tape player speed, but actually no: it synchronises the byte decoding, passing bits to start at the right one to decode the next byte.
Also, I wonder if there are no specific values for commands like STORE.
Re: Tape Header Format
Posted: Sun Jan 01, 2017 11:56 pm
by ThomH
I've updated the wiki page to say four rather than three but otherwise I think we're of an understanding: the Oric decides how quickly the tape is running, and whether encoding is slow or fast, just by inspective the waves as detected. Is that what we both think?
Re: Tape Header Format
Posted: Mon Jan 02, 2017 6:49 am
by Symoon
Thanks for the update!
Aha, sorry when I was talking about "speed" in my old (and wrong!) synchronisation understanding, I meant the tape player speed which can vary a little form one player to another! In my youth I thought the synch header was used by the Oric to adapt itself to a tape that was played 5% faster for instance - which is absolutely not what's happening
About fast or slow encoding/decoding speed, it's the human being that decides the decoding speed, by adding ",S" or not after CLOAD
Thankfully by ear we can recognise a slow or fast recording!
Re: Tape Header Format
Posted: Tue Jan 03, 2017 12:43 pm
by Yicker
Back in the days when I had a real Oric Atmos, I always thought that it would have been better if the tape header was always saved in SLOW format with a flag in the header to say whether the main program/data was FAST or SLOW format. That way when using CLOAD the ',S' parameter wouldn't be needed.