User Manual
ATA Command Description
5-12 CompactFlash
®
Memory Card Product Manual, Rev. 10.0 © 2002 SANDISK CORPORATION
Subsequent blocks or partial blocks are transferred only if the error was a correctable data error. All other errors
cause the command to stop after transfer of the block that contained the error.
5.1.11. Read Long Sector—22H, 23H
Table 5-14. Read Long Sector
Bit -> 7 6 5 4 3 2 1 0
Command (7) 22H or 23H
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)
Sec Num (3) Sector Number (LBA 7-0)
Sec Cnt (2) X
Feature (1) X
The Read Long command performs similarly to the Read Sector(s) command except that it returns 516 bytes of data
instead of 512 bytes. During a Read Long command, the CompactFlash Memory Card does not check the ECC bytes
to determine if there has been a data error. Only single sector read long operations are supported. The transfer
consists of 512 bytes of data transferred in word mode followed by 4 bytes of random data transferred in byte mode.
Random data is returned instead of ECC bytes because of the nature of the ECC system used. This command has the
same protocol as the Read Sector(s) command.
5.1.12. Read Sector(s)—20H, 21H
Table 5-15. Read Sectors
Bit -> 7 6 5 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)
Sec Num (3) Sector Number (LBA 7-0)
Sec Cnt (2) Sector Count
Feature (1) X
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 CompactFlash Memory 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.
At command completion, the Command Block Registers contain the cylinder, head and sector number of the last
sector read. 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 is
pending in the sector buffer.