Traçage dun fichier
Quand on veut savoir quelle est loccupation dun fichier sur la disquette, il
convient de le tracer. En dautres termes, de repérer les blocs quil occupe.
Le catalogue sétend du secteur 3 au secteur 16 de la
piste 20. Chacun de ces secteurs, selon la densité, est subdivisé en entrées, 8
entrées pour la double densité et 4 pour la simple. Pour tracer le fichier, il
nous faudra repérer dans chaque entrée :
- Le nom du fichier (offsets 0 à 7) cadré à gauche et complété par des blancs
- Le suffixe du fichier (offsets 8 à 10) cadré à gauche et complété par des blancs
- Le numéro de bloc de départ du fichier (offset 13)
- Le nombre doctets dans le dernier secteur du fichier (offset 15)
Dans le programme suivant (pour MO et TO), vous
déterminerez le numéro de lecteur que vous voulez à la ligne 40. Tous les
fichiers du lecteur seront passés en revue. Le nom du fichier saffichera en
rouge, les numéros de pistes occupées en noir suivies de leurs secteurs de
départ et darrivée en bleu foncé, et enfin le nombre doctets dans le dernier
secteur en parme :
10 '
20 ' A définir par l'utilisateur
30 '
40 L=0 Numéro de lecteur
50 '
60 ' Initialise l'écran
70 '
80 SCREEN4,6,6:CLS:CLEAR1000 Prépare lécran
90 '
100 ' Traçage des fichiers
110 '
120 F$=DSKI$(L,20,2) Lit la FAT
130 FOR S=3 TO 16 Pour lecture catalogue
140 A$=DSKI$(L,20,S) Lit un secteur catalogue
150 FOR E=1 TO 255 STEP 32 Pour toutes les entrées
160 E$=MID$(A$,E,32) Isole une entrée catalogue
170 IF ASC(E$)<32 THEN 280 Si mauvaise entrée, passe
180 IF ASC(E$)=255 THEN COLOR4:END Si plus dentrée, passe
190 COLOR1:PRINTLEFT$(E$,11) Affiche le nom de fichier
200 B=ASC(MID$(E$,14,1)) Récupère le bloc départ
210 O=ASC(MID$(E$,16,1)) Récupère nombre doctets
220 C=ASC(MID$(F$,B+2,1)) Récupère le bloc suivant
230 S0=1+8*(B AND1) Calcule n° de secteur
240 COLOR0:PRINTSTR$(FIX(B/2));:COLOR4:PRINTSTR$(S0); Affiche piste/secteurA
250 IF C<&HC0 THEN PRINTSTR$(S0+7);:B=C:GOTO220 Affiche secteur B et suivants
260 PRINT STR$(S0+(C AND 15)-1); Affiche dernier secteur
270 COLOR5:PRINTO Affiche taille dernier sec
280 NEXT E | Pour tout
290 NEXT S | le catalogue
|