将82078置于读数据模式需要一组九(9)个字节。 发出READ DATA命令后,82078加载磁头(如果它处于卸载状态),等待指定的磁头稳定时间(在SPECIFY命令中定义),并开始读取ID地址标记和ID字段。 当读取软盘的扇区地址与命令中指定的扇区地址匹配时,82078读取扇区的数据字段并将数据传输到FIFO。
在完成从当前扇区的读操作之后,扇区地址递增1,并且来自下一逻辑扇区的数据被读取并通过FIFO输出。 这种连续读取功能称为“多扇区读操作”。 收到TC或隐含的TC(FIFO溢出/欠载)后,82078停止发送数据,但将继续从当前扇区读取数据,检查
CRC字节,并在扇区的末尾终止READ DATA命令。
N确定每个扇区的字节数(见表6-2)。 如果N设置为零,则扇区大小设置为128. DTL值确定要传输的字节数。 如果DTL小于128,82078将指定的字节数传输给主机。 对于读取,它继续读取整个128字节扇区并检查CRC错误。 对于写入,它通过填充零来完成128字节扇区。 如果N未设置为00 Hex,则DTL应设置为FF Hex,并且不会影响传输的字节数。
可以使用单个命令处理到82078的数据量取决于MT(多轨道)和N(字节数/扇区数)。
多轨功能(MT)允许82078从软盘的两面读取数据。 对于特定的柱面,数据将从扇区1,面0开始传输,并在第1面的同一轨道的最后一个扇区完成。
如果主机终止82078中的读或写操作,则结果阶段中的ID信息取决于MT位和EOT字节的状态。 参见表6-6。 终止必须是
正常。
在READ DATA命令完成时,直到头卸载时间间隔(HUT)(在SPECIFY命令中指定)已经过去之后才会卸载磁头。 如果主机在磁头卸载之前发出另一个命令,那么磁头建立时间可以在后续读取之间保存。
如果82078检测到INDXÝ引脚上的脉冲两次而未找到指定的扇区(意味着磁盘的索引孔通过驱动器中的索引检测逻辑两次),则82078将状态寄存器0中的IC代码设置为“01” (异常终止),并将状态寄存器1中的ND位设置为“1”,表示未找到扇区,并终止READ DATA命令。
在读取每个扇区中的ID和数据字段后,82078检查CRC字节。 如果ID或数据字段中发生CRC错误,82078将状态寄存器0中的IC代码设置为“01”(异常终止),将状态寄存器1中的DE位标志设置为“1”,设置 如果CRC在ID字段中不正确,则状态寄存器2中的DD位为“1”,并终止READ DATA命令。
下面的表6-4描述了SK位的影响READ DATA命令的执行和结果。
除非在表6-4中注明,否则扇区地址的C或R值会自动递增(参见表6-6)