★ CODING ★ GESTION DU FDC ★ |
Bidouilles ACPC n°37 - FDC en mode direct |
FAN DE CHICHOUNE Le mois dernier, nous avons commencé à voir les possibilités réelles qu'offre le FDC lorsqu'on le programme en mode direct. Les initialies FDC peuvent prendre bien des formes comme fan de chichoune (chère à notre jeune, beau et talentueux illustrateur Yann Serra), mais je vous signale que FDC signifie aussi fils de chien, face de craie et, accessoirement, faignasse doublée de chieuse, dans le cas où ce cher composant ne réagirait pas comme on le voudrait bien, ce qui n'est pas rare. En attendant, nous nous contenterons d'appeler le 765 courtoisement du nom de floppy disk controler, histoire de ne pas trop le vexer. Les insultes viendront plus tard, lorsqu'il s'agira de travailler sur les lectures-écritures de secteurs. Les détournements d'erreurs seront dans ce cas assez « je te prends le chou et je garde la main histoire de planter le machin », ce qui peut occasionnellement irriter quelque peu un brave programmeur armé de bonnes et honnêtes intentions. Ce mois-ci, nous allons revenir sur le listing du mois dernier en voyant les commandes passées alors en revue, mais avant il nous faut nous attarder sur quelques détails relativement importants. Prenez donc le listing du mois dernier et attardez-vous sur la ligne contenant le label SECT. Il contient la liste des noms des secteurs tels qu'ils seront écrits physiquement sur la piste. Lorsqu'on parle de liste, il est possible de la traiter de deux façons différentes. La première est la logique (1, 2, 3, 4 et 5). C'est'celle qui, comme son nom l'indique, vient la première à l'esprit. C'est aussi l'ordre dans lequel seront lues les données de manière normale. Dans la théorie, ce genre de choses est parfaitement concevable mais, dans la pratique, il existe certaines contraintes incontournables qu'il faut prendre en compte, surtout lorsqu'on veut obtenir des résultats performants. Si vous voulons lire les secteurs 1,2 et 3 d'une piste quelconque à la suite les uns des autres, voici comment procéderont physiquement le FDC et le Z80:
Cette opération se répétant trois fois. Un des temps les plus encombrants de cette manipulation est celui pris par l'ordre de lecture. En effet. après la lecture d'un secteur, et dans le cas d'un formatage avec l'ordre logique, l'identificateur du second secteur est passé lorsque le FDC commencera sa recherche. Il faudra donc un tour de disquette supplémentaire pour retomber sur la zone de données attendue. Par contre, si l'ordre de formatage des secteurs est par exemple 1, 4, 2, 5 et 3, le premier identificateur rencontré après la lecture du premier secteur et après l'ordre de recherche du second est bien le secteur numéro 2. C'est l'identificateur du secteur 4 qui sera alors perdu lors de la commande de recherche de l'identificateur 2. La lecture sera donc lancée immédiatement après l'ordre, cela presque comme si les lecteurs se suivaient directement. non .pas physiquement mais logiquement. L'effet désiré est donc obtenu, ce qui n'est pas si mal. Vous pouvez voir aussi qu'avec cet ordre physique, le passage entre les secteurs 3 et 4 se fait par le saut du secteur 1, ce qui évitera encore une rotation complète du support avant lecture. Voilà pourquoi la théorie n'est parfaite que lorsqu'elle est utilisée de paire avec la pratique. Bref, la théorie n'est pratique que lorsqu'elle est parfaite. LANGUAGE HAIFDESSIEN La Haifdessie, comme la Massoumipourie orientale, est une contrée sauvage où il est encore possible de trouver des tribus sous-développées, sous-alimentées, sous-industrialisées mais étrangement. sur abreuvées d'alcools forts et de luxure. Le danger et la peur règnent en maîtres absolus dans ces déserts arides, et la moindre erreur de l'aventurier commun est fatale à sa vie. Pour être sûr de ne pas perdre la tête pour un petit bit. il faut connaître le langage des chasseurs d'octets. Voici, pour ne pas vous laisser sur votre faim, les rudiments de ce dialecte salvateur. La première des commandes utilisées dans le listing est la commande nommée Calibrate. Elle permet de positionner la tête de lecture sur la piste 0 et ainsi d'initialiser le moteur pas à pas de déplacement piste à piste. Il faut pour l'exécuter, envoyer deux octets au FDC. Le premier est l'ordre 7 et le second permet de sélectionner le lecteur désiré. 0 correspond au lecteur A et 1 au lecteur B. Ainsi, si les octets 7 et 0 sont transmis au contrôleur, le lecteur A devra se réinitialiser. Seulement, le temps de réaction du moteur pas à pas n'est pas si bref qu'il y paraît. Il faut tout de même que la tête de lecture arrive en butée, ce qui ne se fait pas à la microseconde. Pour être sûr que cette opération a bien été réalisée et que tout s'est passé sans erreur, il faut la faire suivre de la commande qui est relative au dernier lecteur sélectionné et donc par défaut. Tant que la tête n'est pas stabilisée à la position demandée, la réponse du FDC' sera toujours du type « minute, y'en a des qui bossent ». Lorsque les signaux deviennent corrects, le FDC donne son feu vert pour tout ordre de recherche d'identificateurs ou toute lecture-écriture de secteurs. A ce moment-là, il est même possible de vérifier le statut du lecteur ainsi que la piste atteinte et donc courante. Deux octets sont alors renvoyés. Le premier est le registre d'état numéro 1 et renferme les .données suivantes:
Le second octet renvoyé par le contrôleur est le numéro de piste courante. Il est ainsi simple de demander à tout moment où on en est sur la disquette et de vérifier si cela coïncide avec nos désirs.
La quatrième commande que nous avons appelée est la commande &4D. C'est celle qui donne l'ordre de formatage, Elle est suivie des paramètres suivants :
La dernière commande passée en revue est la 15. Suivie de l'octet de sélection de lecteur, elle permet le déplacement de la tête sur une piste quelconque. Elle doit, comme la commande de recalibrage (7) être suivie de la commande 8 permettant d'assurer la bonne fin des opérations et l'arrivée à destination de la tête chérie. THAT'S ALL FOLKS Le mois prochain, nous finirons de voir ce genre de bêtises et passerons au stade plus casse-bonbon de la lecture et de l'écriture. En attendant. prenez des vacances car la rentrée sera rude. Everybody, see you soon... Sined le barbare, ACPC n°37, p46-47
|