Envoyer un e-mail à Collection ThomsonCollection Thomson
EditoForum 2002Liens
Nanoreseau
Docs
Logiciels
Matériel
Imprimer le document
Retour à la liste

Traçage d’un fichier

Quand on veut savoir quelle est l’occupation d’un fichier sur la disquette, il convient de le tracer. En d’autres termes, de repérer les blocs qu’il 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 d’octets 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 s’affichera en rouge, les numéros de pistes occupées en noir suivies de leurs secteurs de départ et d’arrivée en bleu foncé, et enfin le nombre d’octets 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 d’entré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 d’octets
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
Site
Plus
Forums
Code
Créations

*Site en favoris
*Page en favoris
*Site en démarrage
*Page en démarrage


Haut de page

Collection Thomson 2015 © Ghislain Fournier & François Mouret