Date : Mon, 12 Feb 1996 04:44:00 -0500
From : "iain (i.) barker" <ibarker@...>
Subject: Re: Decoding BBC tapes...
In message "Decoding BBC tapes...", you write:
> If you *then* want to process the byte stream to get at the file directly,
> you could just emulate the beeb's UART with the recovered byte stream as a
> data source, and use the OS to decode for you. If you want to do this by
> hand I think the tape block format is described in the UG/AUG (my copies
> of which are ~160miles away at the moment).
... but be aware that many of the protection schemes used on commercial
software do wierd things such as invert the data bytes, XOR them with some
other value etc. to ensure that a stardard *load etc. will FAIL with
CRC errors. The program loaders hook an event (sorry, I'm trying to remember
this but have no docs to hand) so that they can invert the bitstream when
loading (in a manner similar to a DOS TSR IIRC).
Elite, FRAK!, Zalaga etc. spring to mind (but you knew that anyway!)
There are various other ways to compensate for the protection mechanisms,
one example being to intercept the BEEP event so that a BRK is sent
when the final 'BEEP' occurs after a program successfully loads. That
way you can use the standard program loader and get control back to
do a *save etc. (I might still have my asm source to do this somewhere...)
Iain.
Iain