The following table lists how 8520 chip bits used by the disk subsystem.
Bits labeled PA are input bits in CIAAPRA ($BFE001). Bits labeled
PB are output bits located in CIAAPRB ($BFD100). More information on
how the 8520 chips operate can be found in Appendix F.
Table 8-5: Disk Subsystem
Bit Name Function
--- ---- --------
PA5 DSKRDY* Disk ready (active low). The drive will pull this line
low when the motor is known to be rotating at full
speed. This signal is only valid when the motor is ON,
at other times configuration information may obscure
the meaning of this input.
PA4 DSKTRACK0* Track zero detect. The drive will pull this line low
when the disk heads are positioned over track zero.
Software must not attempt to step outwards when this
signal is active. Some drives will refuse to step,
others will attempt the step, possibly causing
alignment damage. All new drives must refuse to step
outward in this condition.
PA3 DSKPROT* Disk is write protected (active low).
PA2 DSKCHANGE* Disk has been removed from the drive. The signal goes
low whenever a disk is removed. It remains low until
a disk is inserted AND a step pulse is received.
---------
PB7 DSKMOTOR* Disk motor control (active low). This signal is
nonstandard on the Amiga system. Each drive will latch
the motor signal at the time its select signal turns
on. The disk drive motor will stay in this state until
the next time select turns on. DSKMOTOR* also controls
the activity light on the front of the disk drive.
All software that selects drives must set up the motor
signal before selecting any drives. The drive will
"remember" the state of its motor when it is not
selected. All drive motors turn off after system
reset.
After turning on the motor, software must further wait
for one half second (500ms), or for the DSKRDY* line to
go low.
PB6 DSKSEL3* Select drive 3 (active low).
PB5 DSKSEL2* Select drive 2 (active low).
PB4 DSKSEL1* Select drive 1 (active low).
PB3 DSKSEL0* Select drive 0 (internal drive) (active low).
PB2 DSKSIDE Specify which disk head to use. Zero indicates the
upper head. DSKSIDE must be stable for 100
microseconds before writing. After writing, at least
1.3 milliseconds must pass before switching DSKSIDE.
PB1 DSKDIREC Specify the direction to seek the heads. Zero implies
seek towards the center spindle. Track zero is at the
outside of the disk. This line must be set up before
the actual step pulse, with a separate write to the
register.
PB0 DSKSTEP* Step the heads of the disk. This signal must always be
used as a quick pulse (high, momentarily low, then
high).
The drives used for the Amiga are guaranteed to get to
the next track within 3 milliseconds. Some drives will
support a much faster rate, others will fail. Loops
that decrement a counter to provide delay are not
acceptable. See Appendix F for a better solution.
When reversing directions, a minimum of 18 milliseconds
delay is required from the last step pulse. Settle
time for Amiga drives is specified at 15 milliseconds.
FLAG DSKINDEX* Disk index pulse ($BFDD00, bit 4). Can be used to
create a level 6 interrupt . See Appendix F for
details.