CYZE PRODUCTION
VOUS PRESENTE LE COURS SUR LES MICROPROCESSEURS ET LEURS FABRICANTS
Tél : (00229) 96 15 81 18 E-mail : cyze2002@yahoo.fr / cyze2002@hotmail.com
CYZE PRODUCTION
Head and Disk (0x1f6, 0x176, 0xf6, 0x76) (2)
Command (0x1f7, 0x177, 0xf7, 0x77) 0xa0
(1) Ces deux registres contiennent le nombre maximum d’octet qui vont être transférés (ex. 4096 : Byte High =
0x10 ; Byte Low = 0)
(2) Ce registre s’utilise comme pour toutes les commandes.
Lorsque le contrôleur est prêt à recevoir la commande, Status & 0x8 == 8 (DRQ bit – Data ReQuest) et Interrupt
Reason (Sector Count) & 0x7 == 1 (REL=0; I/O=0 ; C/D=1). Le paquet de commande peut alors être envoyé par le
port de données (0x1f0, 0x170, 0xf0, 0x70).
Lorsque le contrôleur est prêt à envoyer ou recevoir des données (dans le cas d’une commande nécessitant un
transfert), Status & 0x8 == 8 (DRQ bit – Data ReQuest) et Interrupt Reason (Sector Count) & 0x7 == 0 (REL=0;
I/O=0 ; C/D=0) si le contrôleur reçoit, ou Status & 0x8 == 8 (DRQ bit – Data ReQuest) et Interrupt Reason (Sector
Count) & 0x7 == 2 (REL=0; I/O=1 ; C/D=0) si le contrôleur envoie.
Enfn, Interrupt Reason (Sector Count) & 0x7 == 3 (REL=0; I/O=1 ; C/D=1) pour indiquer que la commande est
terminée (avec ou sans erreur). Dans le cas d’une erreur, le registre d’erreur contient dans ses 4 bits de poids forts
le numéro Sense Key de l’erreur. L’erreur complète peut être connue grâce à la commande Request Sense (non
traitée dans ce document).
Commande interdite si le jeu de commandes Packet est absent.
Quelques opérations courantes
Connecteur ATA sur une carte mère
Dans cette section, tous les codes sont écrits en assembleur AT&T (par exemple GNU Assembly compiler). Ils sont
susceptibles de contenir quelques erreurs car ils n’ont pas été testés tels qu’ils sont présentés ici (puisqu’ils ne sont
pas complets). Par ailleurs, les méthodes présentées ne sont pas nécessairement les seules ou les meilleures
méthodes existantes. Ils sont fournis à titre d’exemples. Les diffcultés présentées ci-après sont principalement
dues au manque d’uniformité des matériels qui ne respectent pas toujours à la lettre les spécifcation ATA/ATAPI,
avec pour résultat des comportements qui peuvent varier dans certains cas (comme lorsqu’un disque est absent
par exemple).