Visualisation dune disquette
Qui ne voudrait pas savoir où se trouvent ces satanées
« I/O Error » sur la disquette ? Ou tout simplement savoir si
une disquette est bien pleine ?
Le programme suivant (pour MO et TO) vous permettra
dafficher létat de chaque secteur de la disquette. La grille daffichage
subdivise en blocs verticalement et est graduée toutes les dix pistes horizontalement.
Vous définirez le numéro de lecteur en ligne 40, le nombre de pistes de votre
support en ligne 50 et le type de donnée dans le cas de votre lecteur (les
secteurs vides sont remplis par &HFF pour le QDD et par &HE5 pour
les autres contrôleurs) en ligne 60. Dans le cas où le secteur est plein,
un carré plein est affiché. Dans le cas où le secteur est vide, un point est
affiché. Si le secteur est illisible, un tiret est affiché. En sortie de programme,
vous connaîtrez le nombre de secteurs vides, le nombre de secteurs pleins
et le nombre de secteurs erronés :
10 '
20 ' A définir par l'utilisateur
30 '
40 L=0 Numéro de lecteur
50 Z=79 Nombre de pistes
60 R=&HE5 Remplissage pour secteur vide
70 '
80 ' Préparation de l'écran
90 '
100 SCREEN4,6,6:CLS Initialise lécran
110 LOCATE0,10,0 Positionne/efface le curseur
120 FORI=40 TO Z*4 STEP 80:BOXF(I,4)-(I+39,17*4-2),-8:NEXT | Affiche
:FOR I=3 TO 72 STEP 32:LINE(0,I)-(319,I),3:NEXT | la grille
130 '
140 ' Check de la disquette
150 '
160 A=0:B=0:C=0 Efface les compteurs
170 C$=STRING$(10,CHR$(R)) Comparatif pour secteur vide
180 ONERRORGOTO230 Gestion des erreurs
190 FOR P=0 TO Z Pour toutes les pistes
200 FOR S=1 TO 16 Pour tous les secteurs
210 A$=DSKI$(L,P,S) Lit le secteur
220 IF LEFT$(A$,10)=C$ THEN PSET(P*4+1,S*4+1):A=A+1: | Affiche un secteur
GOTO250 ELSE BOXF(P*4,S*4)-(P*4+2,S*4+2):B=B+1:GOTO250 | plein ou vide
230 C=C+1:LINE(P*4,S*4+1)-(P*4+2,S*4+1) | Affiche une
240 RESUME250 | I/O Error
250 NEXT S,P Pour toute la disquette
260 '
270 ' Affichage des compteurs
280 '
290 PRINTA;"secteur(s) vide(s)"
300 PRINTB;"secteur(s) plein(s)"
310 PRINTC;"secteur(s) erroné(s)":PRINT
Même pour une disquette pleine, il reste toujours des secteurs vides : les blocs de 8 secteurs
sont réservés en entier chaque fois. Il est toujours possible de les occuper
avec un fichier de données ou un fichier en langage machine mais il faudrait
élaborer un système dexploitation spécial qui permettrait daccéder à tous
les secteurs de la disquette après en avoir, bien sûr, repéré tous les secteurs libres.
|