La piste 20
Structure du secteur de nom de disquette
Ce secteur se trouve au secteur 1 de la piste 20 et est initialisé avec la valeur $FF.
Les 8 premiers octets du secteur contiennent le nom de la disquette, cadré à gauche et complété par des blancs.
Le reste du secteur est inutilisé.
Structure de la FAT
La table dallocation des fichiers (FAT) se trouve au secteur 2 de la piste 20.
Les données contenues dans la FAT ont la structure suivante :
- Premier octet à $00.
- Zone de la FAT inférieure (en deçà de la piste 20). La longueur de cette zone est fixe (40 blocs). La zone exclue, si elle existe, est
initialisée à $FE, la zone libre est initialisée à $FF.
- Réservation de 2 blocs pour la piste 20 avec la valeur $FE. Zone de la FAT supérieure (au-delà de la piste 20). La
longueur de cette zone est variable selon la capacité du disque. La zone libre
est initialisée à $FF.
- Exclusion du reste du secteur avec la valeur $FE pour le
RamDisk. Lors de la création dun fichier, le numéro du premier bloc logique libre est sauvé dans à loffset
13 de lentrée dans le catalogue. Les 8 secteurs du bloc sont mis à disposition
pour la sauvegarde. Si la sauvegarde nécessite un bloc de plus, le numéro du
bloc logique suivant est écrit à loffset + 1 du numéro de bloc logique
précédent dans la FAT. Sinon, on écrit à cet offset la valeur $C0 plus le
nombre de secteurs utilisés dans le bloc.
Structure dune entrée de fichier dans le catalogue
Le catalogue commence toujours à partir du secteur 3 de
la piste 20 et se termine au secteur 16. Une entrée de fichier a
une structure invariable de 32 octets. En simple densité, chaque
secteur contiendra 4 entrées consécutives, en double densité 8.
- Offsets 0-7 : Nom du fichier, cadré à gauche,
complété par des blancs.
Particularité de loffset 0 : $00=Entrée de
fichier effacée. Lors de la recherche dun fichier, cette entrée doit
être passée. Lors de la création dun fichier, elle est disponible. $FF=Fin du catalogue. Lors de la recherche dun fichier, ce flag indique la fin du catalogue. Lors de la
création dun fichier, la place est disponible. Autre=Entrée valide de fichier
- Offsets 8-10 : Extension (suffixe) du fichier
sur 3 octets, cadré à gauche, complété par des blancs.
BAS Fichier Basic
DAT Fichier de donnée
ASM Fichier assembleur
BIN Fichier binaire
MAP Fichier graphique
CHG Fichier cartouche
CFG Fichier palette
BAT Fichier auto-exécutable (AUTO.BAT)
POL Fichier Polyphonia
etc
- Offset 11 : Type de fichier :
- $00 pour un programme Basic ASCII et binaire
- $01 pour des données Basic en ASCII
- $02 pour un programme en langage machine (binaire)
- $03 pour un fichier assembleur édité en ASCII
Il est à noter que, depuis lors, dautres types de fichier ont été créés. Par exemple, $0A pour les
fichiers Paragraphe. Il est pourtant préférable dutiliser les types standard que de créer un type particulier de
fichier si cela ne se justifie pas. Les types courants combinés avec le flag de
fichier sont les suivants :
- $00 $00 : Fichier Basic standard
- $00 $FF : Fichier Basic sauvé en ASCII
- $02 $00 : Fichier binaire (exécutable,
graphique, etc
). La particularité de ce fichier est de ne pouvoir dépasser
linéairement les 64 kilooctets, mais bénéficie de la présence de la taille du
fichier en tête de fichier et éventuellement de son adresse dimplantation.
-$03 $FF : Fichier Assembleur standard
-$01 $FF : Fichier de données en ASCII.
Utilisé pour les fichiers de grande taille.
Il est fortement
conseillé de se cantonner à ces combinaisons lors de la création dun format,
les fichiers binaires ayant une structure particulière, et éviter de fait la
confusion lors de sa lecture ou de son écriture par un autre logiciel. Préférez
personnaliser votre fichier par le suffixe.
- Offset 12 : Flag de fichier
- $00 pour du binaire
- $FF pour de lASCII
- Offset 13 : Numéro du premier bloc logique
du fichier.
- Offsets 14-15 : Nombre doctets utilisés dans le dernier secteur du fichier. Lors de sa création,
un fichier peut contenir exactement dans un ou plusieurs blocs. Ce cas entraîne
une aberration notable : un bloc de plus sera alloué, un secteur dans le
bloc et le nombre doctets dans le dernier secteur de fichier sera mis à 0. Il
se peut donc que le système dexploitation assigne des blocs entiers
ne
contenant aucune donnée !
- Offsets 16-23 : Commentaire
du fichier, cadré à gauche, complété par des blancs. Sinon à $00.
- Offset 24 : Jour de création du fichier, de 1 à 31. Sinon $00 ou $FF (date non valide).
- Offset 25 : Mois de création du fichier, de 1 à 12. Sinon $00 ou $FF
- Offset 26 : Année de création du fichier, de 0 à 99. Sinon $00 ou $FF
- Offsets 27-29 : Libre.
- Offset 30 : Mode de lancement du fichier CHG.
- Bits 0-5 : Nombre de banques nécessaires pour lapplication CHG
- Bit 7 : Exécution à froid automatique de lapplication si à 1. ATTENTION ! Lexécution automatique de
lapplication ne sexécute pas en JMP mais en JSR. Le programme doit donc en
principe protéger létat de tous les registres utilisés et rendre la main à
« Appel de programmes » par un RTS. Une initialisation préalable est
donc possible avant le lancement de lapplication.
- Offset 31 : Checksum
du nom de fichier pour un fichier CHG (somme des 8 octets du nom sur 8 bits). Ce checksum protège le nom du fichier CHG. Si le fichier CHG est renommé par exemple
sous Basic, il ne sera plus traité comme une application valide. Son nom ne
saffichera plus dans la fenêtre d « appel de programmes », si
le checksum na pas été mis à jour.
|