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
transf: // effectuer le transfert
movl $OFFSET_BUFFER, %edi
movw $SEGMENT_BUFFER, %es
movl 0x100, %ecx
movw $PORT_DATA, %dx // 0x1f0, 0x170, 0xf0 ou 0x70
rep insw
Il ne reste plus ici qu’à interpréter les valeurs lues.
Initialiser un contrôleur
Pour initialiser un contrôleur, il faut utiliser le registre de contrôle (0x3f6, 0x376, 0x2f6 ou 0x276 en écriture seule).
Il faut en effet positionner le bit 2 (le 3
e bit en partant de la droite) pendant 4.8 microsecondes ou plus, puis le vider.
La procédure n’a donc rien de complexe en soit mais l’attente doit être programmée selon le système d’exploitation
utilisé (et donc les fonctions d’API disponibles).
Lire
Depuis un disque ATA
La lecture fonctionne de la même manière que la lecture d’informations concernant le disque (voir plus haut) mais
n’utilise pas les mêmes paramètres d’entrée. Voici ceux concernant la lecture :
0x1f2, 0x172, 0xf2 ou 0x72 Nombre de secteurs à lire
0x1f3, 0x173, 0xf3 ou 0x73 Numéro de secteur du 1e secteur à transférer
0x1f4, 0x174, 0xf4 ou 0x74 Octet inférieur du numéro de cylindre du 1e secteur à transférer
0x1f5, 0x175, 0xf5 ou 0x75 Octet supérieur du numéro de cylindre du 1e secteur à transférer
0x1f6, 0x176, 0xf6 ou 0x76 Disque et numéro de tête du 1e secteur à transférer
Numéro de commande 0x20
En sortie, le disque envoie sur le port de donnée n*256 mots où n est le nombre de secteur à lire.
Depuis un disque ATAPI
Il faut utiliser la commande Packet suivante :
Octet 1. 0xA8