2-4 Theory
of
Operation
Read
Operation
When
the Z80A receives a
command
from the HP-IB
to
read
a sector from the disc, it selects
the specified drive, enables the drive
to
read,
and
enables the
read
electronics on
the
controller.
The
disc drive begins
sending
a pulse stream which
represents
the
flux transitions
on
the disc.
The
phase
locked loop synchronizes
to
the
clock bits
recorded
with the
data
to
generate
a bit clock.
The
pulse
stream
is
then
clocked into the data
separator
circuit which
separates
the pulses into clock bits
and
data
bits according to
the
recording format of the
disc. The serial clock
and
data
bits
are
then
shifted into the SERDES shift registers
and
presented
to
the
Z80A as two 8-bit parallel bytes. The Z80A
then
reads
the
I/O
ports
corresponding
to
the SERDES registers
and
stores the
data
in a
RAM
buffer. When
an
entire
sector
has
been
read
and
is
stored
in
the
RAM
buffer, the Z80A transfers the buffer to
the
host system via
the
HP-IB.
Write Operation
When
the Z80A receives a write
command
from the HP-IB, it
fills
the
RAM
buffer with a
sector of
data
from
the
HP-IB.
It
then
enables
the write electronics
and
writes eight bits of
parallel
data
and
eight bits of parallel clock to
the
SERDES. The SERDES changes the
parallel clock
and
data
bytes to serial bit streams which are
input
to
the
write encoder.
The
write
encoder
combines
the clock
and
data
bits into a single pulse
stream
according to the
recording format of
the
disc. This pulse stream, which represents
the
flux transitions to
be
stored
on
the disc,
is
then
sent to the disc drive.
Error
Detection
Several types of errors are
detected
by
electronics
on
the controller.
These
are
eRe
error,
overrun error
and
margin error.
The Cyclic
Redundancy
Check
(eRC)
is
two, 8-bit
data
bytes
that
are
written on the disc
with every sector.
As
the serial
data
is
sent
to the write
encoder,
it also goes to a
CRe
chip
which
computes
the
CRe
for the
data
stream. After the last
data
byte
is
written
on
the disc,
the two CRC bytes
are
written. When a sector is
read
back,
the
separated
serial data,
including
the
two
CRe
bytes, are again
input
to
the
eRC
chip. The
eRe
bytes are
computed
such
that
when
the
data
field
and
its
CRe
are
input
to
the
eRe
chip,
the
chip can detect
an
'"
error in
the
bit stream. After reading the
data
field, the Z80A checks a bit in the controller
status register
to
see
if
a
CRe
error occurred.
If
so, the error is
reported
to the host system
via
HP-IB.
An
overrun
error occurs
if
the Z80A is
not
sending or receiving
data
fast
enough
to
keep
up
with
the
bits coming off the disc. This is
detected
by a logic circuit
on
the controller.
At
the
conclusion of
the
read
or
write operation, the Z80A checks a bit
in
the
controller status
register to
see
if
an
overrun occurred,
and
notifies the host system accordingly.
A margin
error
occurs
when
a clock or
data
bit occurs
too
close
to
the
edge
of
the
clock
or
data window of the bit stream. This
does
not
indicate
that
the
data
was
read
incorrectly,
but
only that the controller may
not
be
able
to
read
the sector in the future
if
the
bits shift
any
further within the window. This error
is
checked
by the Z80A following a
read
operation
and
reported
to
the
host
system only
if
the
host system requests a verify or
read
verify operation.