Chargement de la FAT - Cas dune FAT de 160 octets
L'intérêt est d'accéder à tous les octets d'une FAT double densité à l'aide un mode
d'adressage indexé signé avec accumulateur 8 bits (dont l'opérande serait de
type "A,X").
Pour se faire, le système logique du Moniteur swappe les deux moitiés de la FAT et fait pointer le registre d'adressage sur
le milieu de cette FAT arrangée. Ainsi, si la valeur de l'accumulateur 8 bits
va de $00 à $7F, on accède aux positions 128 à 255 du secteur et donc aux 128
premiers octets de la FAT. Si la valeur de l'accumulateur va de $80 à $FF, on
accède aux positions 0 à 127 et donc aux 32 derniers octets de la FAT.
Recherche dun bloc libre dans la FAT pour le floppy
Deux procédures distinctes entrent en jeu.
La première cherche le bloc libre le plus proche du bloc courant en tendant vers le bloc 0 si le
bloc courant est dans la première moitié de la FAT et en tendant vers le bloc
maximum si le bloc courant est dans la deuxième moitié de la FAT. Cette
procédure est utilisée pour lallocation dun bloc quelconque du fichier. Si cette recherche
est infructueuse, une recherche sur la totalité de la FAT est
engagée en testant simultanément la disponibilité des blocs se trouvant de part
et d'autre du bloc du milieu et en tendant vers les extrémités de la FAT. Cette
procédure est utilisée pour lallocation du premier bloc dun fichier ou en
dernier recours pour lallocation dun bloc quelconque.
Dans le cas d'une FAT simple densité, il faut bien évidemment veiller à ce que cette FAT soit
précédée d'au moins 128 octets de valeur différente de $FF, sinon le programme
risque de retourner un bloc libre alors que la FAT est
pleine. Généralement, les mémoires tampons des secteurs de données et de FAT
sont consécutifs et initialisés à 0.
Cette routine peut donner une idée de la procédure de recherche d'un bloc libre sur Thomson, mais
ignore visiblement la préférence de l'ExtraMoniteur à sélectionner les blocs de
numéro pair.
Pour disque 80 pistes Pour disque 40 pistes
|