
CF-ATA command description
SMCxxxBF
10.12
Read Sector(s) command (20h or 21h)
This command reads from 1 to 256 sectors as specified in the sector count register. A sector
count of 0 requests 256 sectors. The transfer begins at the sector specified in the sector
number register. When this command is issued and after each sector of data (except the last
one) has been read by the host, the card sets BSY, puts the sector of data in the buffer, sets
DRQ, clears BSY, and generates an interrupt. The host then reads the 512 bytes of data
from the buffer.
If an error occurs, the read terminates at the sector where the error occurred. The command
block registers contain the cylinder, head, and sector number of the sector where the error
occurred. The flawed data are pending in the sector buffer.
Table 62 defines the Read
Sector command byte sequence.
10.13
Read Verify Sector(s) command (40h or 41h)
This command is identical to the Read Sectors command, except that DRQ is never set and
no data is transferred to the host. When the command is accepted, the card sets BSY. When
the requested sectors have been verified, the card clears BSY and generates an interrupt.
If an error occurs, the verify terminates at the sector where the error occurs. The command
block registers contain the cylinder, head and sector number of the sector where the error
occurred. The sector count register contains the number of sectors not yet verified.
Table 63 defines the Read Verify Sector command byte sequence.
Table 62.
Read Sector(s)
Bit
765
4
3
2
1
0
Command
(7)
20h or 21h
C/D/H (6)
1
LBA
1
Drive
Head (LBA 27-24)
Cyl High
(5)
Cylinder High (LBA 23-16)
Cyl Low (4)
Cylinder Low (LBA 15-8)
Sect Num
(3)
Sector number (LBA 7-0)
Sect Cnt
(2)
Sector count
Feature (1)
X