Envoyer un e-mail à Collection ThomsonCollection Thomson
EditoForum 2002Liens
Nanoreseau
Docs
Logiciels
Matériel
Imprimer le documentLa documentation de Prehis-To
Retour à la liste

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 d’allocation 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 d’un fichier, le numéro du premier bloc logique libre est sauvé dans à l’offset 13 de l’entré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 à l’offset + 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 d’une 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 l’offset 0 : $00=Entrée de fichier effacée. Lors de la recherche d’un fichier, cette entrée doit être passée. Lors de la création d’un fichier, elle est disponible. $FF=Fin du catalogue. Lors de la recherche d’un fichier, ce flag indique la fin du catalogue. Lors de la création d’un 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, d’autres types de fichier ont été créés. Par exemple, $0A pour les fichiers Paragraphe. Il est pourtant préférable d’utiliser 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 d’implantation.
                        -$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 d’un 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 l’ASCII
- Offset 13 :       Numéro du premier bloc logique du fichier.
- Offsets 14-15 : Nombre d’octets 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 d’octets dans le dernier secteur de fichier sera mis à 0. Il se peut donc que le système d’exploitation 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 l’application CHG
                         - Bit 7 : Exécution à froid automatique de l’application si à 1. ATTENTION ! L’exécution automatique de l’application ne s’exé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 l’application.
- 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 s’affichera plus dans la fenêtre d’ « appel de programmes », si le checksum n’a pas été mis à jour.

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