La table d'allocation des fichiers

FAT: File Allocation Table

2 copies dont une de sécurité

Début avec une entrée pour la grappe #2

Lors de la lecture d'un fichier, les têtes de lecture seront déplacées sur le numéro de grappe ("cluster") indiqué dans le répertoire principal. [DIR]

Si le fichier occupe plus d'une grappe, le DOS consulte une table spéciale (FAT) qui indique les autres numéro de grappes où les têtes de lecture doivent se placer pour accéder au reste du fichier et cela jusqu'à la fin du fichier recherché («EOF»)

    if (fichier.taille > grappe.taille)
    {
        read (fichier.nograppe);
        nograppesuivante = read (fat[fichier.nograppe]);
        while( nograppesuivante != EOF)
        {
            read (fichier.nograppesuivante);
            nograppesuivante = read (fat[nograppesuivante]);
       }
    }
    else
        read (fichier.nograppe);
    

Exemple de table FAT ([position] pour mieux comprendre la position]

    [2]
#3
[3]
#4
[4]
«EOF»
[5]
0
[6]
0
[7]
0
[8]
0
[9]
0
[10]
0
[11]
0
[12]
«EOF»
[13]
0
[14]
0
[15]
0
[16]
0
[17]
#18
[18]
#20
[19]
#21
[20]
#19
[21]
#22
[22]
#23
[23]
#24
[24]
#25
[25]
#26
[26]
«EOF»
[27]
0
[28]
0
etc...    
    3 fichiers:
        premier   : #2, #3, #4
        deuxième  : #12
        troisième : #17,#18,#20,#19,#21,#22,#23,#24,#25,#26
    

Vrai exemple:

Secteur 1
          3   4   5   6   7   8
  9  10  11  12  13  14  15  16
 17  18  19  20  21  22  23  24
 25  26  27  28  29  30  31  32
 33  34  35  36  37  38  39  40
 41  42  43  44  45  46  47  48
 49  50  51  52  53  54  55  56
 57  58  59  60  61  62  63  64
 65  66  67  68  69  70  71  72
 73  74  75  76  77  78  79  80
 81 EOF  83  84  85  86  87  88
 89  90  91  92  93  94  95  96
 97  98  99 100 101 102 103 104
105 106 107 108 109 110 111 112
113 114 115 116 117 118 119 120
121 122 123 124 125 126 127 128
129 130 131 132 133 134 135 136
137 138 139 130 141 142 143 144
145 146 147 148 149 150 151 152
153 154 155 156 EOF 158 159 160
161 162 163 164 165 166 167 168
169 170 171 172 173 174 175 176
177 178 179 180 181 182 183 184
185 186 187 188 189 EOF   0   0

Table DIR
IO.SYS               #2
MSDOS.SYS           #82 --> #83 --> ... --> #156