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.
[Back to Amiga Developer Docs]