Suivez-nous sur X

|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Dossier : Les disquettes Amiga
(Article écrit par Siegfried et Vadhila et extrait d'A-News (Amiga News) - avril 1989)
|
|
Où tout est simple
Un lecteur de disquette Amiga n'est qu'une fente vue de l'extérieur. Mais que se cache-t-il derrière cette façade béate et à vide ?
Rien de bien compliqué au niveau du matériel : un moteur pas-à-pas pour changer de piste, un autre pour faire tourner le
manège, et une électronique que nous simplifierons à un interrupteur pour la face (dessus ou dessous).
Pour l'utilisateur de tous les jours, rien de tout ceci n'apparaît. En effet, nous ne connaissons de ce système que quelques
aspects que je rappellerai :
- La piste, constituée de 11 secteurs, correspond à un tour du disque.
- Les secteurs, numérotés de 0 à 10, font 1/11e de la piste chacun (si si !). Sur un secteur, on place 512 octets. Donc une
piste fait, après un rapide calcul, 512x11 = 5632 octets en gros.
- Les faces, au nombre de deux (plus, c'est marrant à faire tourner), contiennent 80 pistes (de 0 à 79). Nous verrons plus
tard pourquoi l'on parle dans certains cas de 81, 82, voire 83 pistes.
Tout ceci nous fait une disquette de 5632x2x80 = 901 120 octets (ce qui fait bien 880 ko). Il arrive que l'on parle de blocs.
Ce n'est qu'une manière d'exprimer un ensemble de pistes, secteurs et faces. Voici la formule tirée du grimmoire de mes ancêtres :
bloc = secteur + face x 12 + piste x 24. Donc, au plus, nous aurons 1760 blocs numérotés de 0 à 1759. Je signale que le DOS
appelle parfois les blocs des "keys" (d'où le message "Key ### now unreadable").
Un fâcheux problème
Jusque-là, tout est facile. Pour sauver mon programme sur la disquette, je prends les octets en mémoire et les place sur le
disque. Génial, mais pas si simple. Il faut trouver un système pour savoir où est mon programme et gérer l'occupation de la
disquette. Soit, alors considérons que nous laissons ce problème à AmigaDOS (c'est son job, et il ne fait pas grève, lui...).
Tout est parfait dans le meilleur des mondes.
Mais qu'ouis-je ? Quelle est cette plainte discrète ? Eh oui, encore un problème, mais cette fois-ci, au niveau matériel.
En effet, la tête de lecture-écriture a des ennuis. Elle ne doit surtout pas se démagnétiser. Je m'explique. Lors de l'écriture
des "1" sur le disque, la tête se magnétise du fait de l'impulsion électrique envoyée. Quand on écrit un zéro, l'impulsion
disparaît et la tête commence à se démagnétiser. Il ne faut jamais laisser la tête plus de huit micro-secondes sans impulsion
ou alors, il faut la remagnétiser, ce qui prend beaucoup de temps. Comment faire ? De plus, en lecture, comment trouver le
début d'un secteur ou d'une piste au milieu de ces 0 et 1 ?
Où le disque se peuple plus qu'il ne conviendrait
Pour résoudre ces problèmes, on va coder les données avant de les écrire et on rajoutera des marques de début de piste et de
secteur sur la disquette.
Voyons le codage. Sur l'Amiga, il est de type MFM, ce qui veut dire "Modified Frequency Modulation". Il consiste à intercaler
entre deux bits à 0 un bit artificiel à 1 (voir schéma 1). De ce fait, il y aura au minimum une impulsion toutes les huit
micro-secondes. Le débit d'information est de 250 kilobits/seconde avec ce codage. Il faut savoir que la détection des
zéros consécutifs est faite, sur l'Amiga, par le Blitter.
Schéma 1
Nous voilà donc avec un programme codé, que l'on va diviser en secteurs pour l'écrire sur le disque. Sur une piste format
Amiga, on trouve :
- Un espace rempli de zéros appelé GAP qui marque le début de la piste.
- Puis, dans le désordre, les secteurs précédés du numéro de piste et de leur numéro propre.
A noter que les secteurs ne sont pas forcément écrits dans l'ordre, mais le DOS les remettra à leur place une fois lus en
mémoire (on notera ici une perte de temps pour les puristes). AmigaDOS lit la piste entière même s'il ne lui faut qu'un
secteur de cette piste.
Dans les délices de Codage Valley
Il existe évidemment d'autres méthodes de codage des informations. Je vous en donne un rapide aperçu :
- Code FM (Frequency Modulation) : consiste à superposer des impulsions à des intervalles réguliers. Débit de 125 kilobits/seconde
(méthode utilisée par les PC en simple densité).
- Code MMFM ou MFM (MFM Modifiée) : supprime les bits à 1 que l'on a rajoutés lorsqu'ils se suivent. Débit de 250 kilobits/seconde
(peu utilisé).
- Code GCR (Group Coded Recording) : le meilleur, the best one, the marvellous, le Dieu des Dieux, enfin celui que je préfère.
Au départ, on divise un octet en deux groupes de 4 bits (nibbles ou quartets). Ces nibbles peuvent prendre 16 combinaisons
différentes (2^4). On fait correspondre à chacune un code GCR de 5 bits ne contenant pas plus de deux zéros de suite (voir
schéma 2). Il ne reste plus qu'à écrire ces 5 bits sur le disque. Débit de 380 kilobits/seconde. Il est utilisé par Apple
avec une méthode légèrement différente.
Le contrôleur de disque de l'Amiga est capable de lire tous ces formats, et même la moitié des disquettes Macintosh (car
l'autre moitié est écrite en ralentissant la rotation du disque ! (cela s'appelle de la vitesse linéaire constante).
Schéma 2
Addendum : la démagnétisation, qu'est-ce donc ?
Regardez les schémas suivants : une spirale de fils de cuivre et un aimant. Si l'aimant est immobile, l'ampoule ne s'allume pas. Par
contre, si l'aimant est animé d'un mouvement de va-et-vient, un courant électrique est généré qui allume l'ampoule.
Le troisième schéma fait le parallèle avec le lecteur de disquette : la tête n'est qu'une bobine, la disquette un aimant.
A l'écriture, quand on envoie un "1", il se produit un changement d'état (Nord devient Sud, ou l'inverse). A la lecture,
on comprends que s'il n'y a que des zéros sur la disquette, pas de changement d'état, donc pas de courant.
Schéma 3
Sur ce, citoyens, je vous laisse digérer ces merveilles de technologie et vous donne rendez-vous à la prochaine fois.
|