Changes

Jump to: navigation, search

SYMBiFACE II:IDE registers

1,697 bytes added, 1 April
|'''#FD09''' || Error Register || Features Register/''(Write Precomp Reg.)''
|-
|'''#FD0A''' || Sector Count (0=256) || Sector Count(0=256)
|-
|'''#FD0B''' || Sector Number (for CHS or LBA bits 0-7) || Sector Number (for CHS or LBA bits 0-7)
|-
|'''#FD0C''' || Cylinder Low (for CHS or LBA bits 8-15) || Cylinder Low (for CHS or LBA bits 8-15)
|-
|'''#FD0D''' || Cylinder High (for CHS or LBA bits 16-23) || Cylinder High (for CHS or LBA bits 16-23)
|-
|'''#FD0E''' || Device/Head Register (Bit 6=0 CHS, Bit 6=1 LBA) (Bit 4 = 0 Master, Bit 4 = 1 Slave) (Bits 3..0 Head for CHS or LBA bits 24-27) || Device/Head Register (Bit 6=0 CHS, Bit 6=1 LBA) (Bit 4 = 0 Master, Bit 4 = 1 Slave) (Bits 3..0 Head for CHS or LBA bits 24-27)
|-
|'''#FD0F''' || Status Register || Command Register
|}
 
{| class="wikitable"
|+ Mandatory ATA1 Commands
! Command !! Code !! FR !! SC !! SN !! CY !! DH
|-
| Execute drive diagnostic || 90h || || || || || D*
|-
| Format track || 50h || * || y || y || y ||
|-
| Initialize drive parameters || 91h || || y || || || y
|-
| Read long (w/retry) || 22h || || y || y || y || y
|-
| Read long (w/o retry) || 23h || || y || y || y || y
|-
| Read sector(s) (w/retry) || 20h || || y || y || y || y
|-
| Read sector(s) (w/o retry) || 21h || || y || y || y || y
|-
| Read verify sector(s) (w/retry) || 40h || || y || y || y || y
|-
| Read verify sector(s) (w/o retry) || 41h || || y || y || y || y
|-
| Recalibrate || 1xh || || || || || D
|-
| Seek || 7xh || || || y || y || y
|-
| Write long (w/retry) || 32h || * || y || y || y || y
|-
| Write long (w/o retry) || 33h || * || y || y || y || y
|-
| Write sector(s) (w/retry) || 30h || * || y || y || y || y
|-
| Write sector(s) (w/o retry) || 31h || * || y || y || y || y
|}
 
'''Legend:'''
* '''FR:''' Features register used
* '''SC:''' Sector count register used
* '''SN:''' Sector number register used
* '''CY:''' Cylinder registers used
* '''DH:''' Drive/head register used
** '''y:''' The register contains a valid parameter for this command. For DH, 'y' means both drive and head parameters are used.
** '''D:''' Only the drive parameter is valid (head parameter ignored).
** '''D*:''' Addressed to drive 0 but both drives execute it.
** '''*:''' Maintained for compatibility.
== See also ==
* [[SYMBiFACE II:IDE routines|Low level IDE routines]]
* [[Programming:SYMBiFACE_II|SYMBiFACE II documentations]]
* [httphttps://wwwhddguru.t13.orgcom/documents/UploadedDocuments/project/d1153r18-ATA-ATAPI-4.pdf ATAdocumentation/IDE-specificationOfficial ATA1 (1994) to ATA8 (2006) specifications]
[[Category:Programming]]
13,173
edits