matches with the sector address specified in the command, the FDC reads the sector's data field and transfers the data
to the FIFO.
After completion of the read operation from the current sector, the sector address is incremented by one and the data
from the next logical sector is read and output via the FIFO. This continuous read function is called "Multi-Sector Read
Operation". Upon receipt of the TC cycle, or an implied TC (FIFO overrun/underrun), the FDC stops sending data but
will continue to read data from the current sector, check the CRC bytes, and at the end of the sector, terminate the Read
Data Command.
N determines the number of bytes per sector (see Table 18). If N is set to zero, the sector size is set to 128. The DTL
value determines the number of bytes to be transferred. If DTL is less than 128, the FDC transfers the specified number
of bytes to the host. For reads, it continues to read the entire 128-byte sector and checks for CRC errors. For writes, it
completes the 128-byte sector by filling in zeros. If N is not set to 00 Hex, DTL should be set to FF Hex and has no
impact on the number of bytes transferred.
Table 18 - Sector Sizes
N
SECTOR SIZE
00
128 bytes
01
256 bytes
02
512 bytes
03
1024 bytes
..
...
07
16 Kbytes
The amount of data which can be handled with a single command to the FDC depends upon MT (multi-track) and N
(number of bytes/sector).
The Multi-Track function (MT) allows the FDC to read data from both sides of the diskette. For a particular cylinder, data
will be transferred starting at Sector 1, Side 0 and completing the last sector of the same track at Side 1.
If the host terminates a read or write operation in the FDC, the ID information in the result phase is dependent upon the
state of the MT bit and EOT byte. Refer to Table 19.
At the completion of the Read Data command, the head is not unloaded until after the Head Unload Time Interval
(specified in the Specify command) has elapsed. If the host issues another command before the head unloads, then
the head settling time may be saved between subsequent reads.
If the FDC detects a pulse on the nINDEX pin twice without finding the specified sector (meaning that the diskette's
index hole passes through index detect logic in the drive twice), the FDC sets the IC code in Status Register 0 to "01"
indicating abnormal termination, sets the ND bit in Status Register 1 to "1" indicating a sector not found, and terminates
the Read Data Command.
After reading the ID and Data Fields in each sector, the FDC checks the CRC bytes. If a CRC error occurs in the ID or
data field, the FDC sets the IC code in Status Register 0 to "01" indicating abnormal termination, sets the DE bit flag in
Status Register 1 to "1", sets the DD bit in Status Register 2 to "1" if CRC is incorrect in the ID field, and terminates the
Read Data Command. Table 20 describes the effect of the SK bit on the Read Data command execution and results.
Except where noted in Table 20, the C or R value of the sector address is automatically incremented (see Table 22).
Table 19 - Effects of MT and N Bits
MAXIMUM TRANSFER FINAL SECTOR READ
MT N
CAPACITY
FROM DISK
0 1 256 x 26 = 6,656
26 at side 0 or 1
1 1 256 x 52 = 13,312
26 at side 1
0 2 512 x 15 = 7,680
15 at side 0 or 1
1 2 512 x 30 = 15,360
15 at side 1
0 3 1024 x 8 = 8,192
8 at side 0 or 1
1 3 1024 x 16 = 16,384
16 at side 1
SMSC LPC47B27x
- 44 -
DATASHEET
Rev. 04-17-07