[Coco] Copying over an IO ERROR

Darren A mechacoco at gmail.com
Wed Feb 4 20:56:40 EST 2015


On Wed, Feb 4, 2015 at 5:54 PM, Arthur Flexser  wrote:

> On Tue, Feb 3, 2015 at 11:37 PM, Darren A  wrote:
>
> >
> > There is also the problem that the WD17xx floppy controllers leave the
> > address mark detector on during the entire Read Track operation.  There
> are
> > certain bit sequences that will trigger a false AM detection. If any of
> > these sequences occur within legitimate sector data then all data
> following
> > it up until the next address mark will be garbage (clock bits instead of
> > data).
> >
> > - Darren
> >
> >
> Hard to see why a READ track function would be designed to behave like
> that, unless it is for the purpose of allowing software producers a means
> of rendering some track data unreadable for copy protection purposes.
>


It was not intended to be used as a means for regular data access, but
rather for diagnostics. Quoting the Western Digital Storage Handbook:

"This command has several characteristics which make it suitable for
diagnostics purposes.  They are: the Read Gate is not activated during the
command; gap information is included in the stream; internal side compare
is not performed, and the address mark detector is on for the duration of
the command. Because the A.M. detector is always on, write-splces or noise
may cause the chip to look for an A.M."

The "noise" mentioned in that paragraph also seems to include bit sequences
that may be found in sector data.  In particular, the following are known
to cause a false A.M. detection:

$29 preceded by any even byte value (bit 0 cleared)
$52 or $53 preceded by any byte divisable by 4 (bit 2 cleared)
$A4 through $A7 preceded by any byte divisable by 8 (bit 3 cleared)
$14 followed by any byte greater than or equal to 128 (bit 7 set)

- Darren


More information about the Coco mailing list