Format des fichiers cassette
audio
Introduction
Le but de cette page est d'expliquer en détail, la
structure d'un fichier cassette audio DAI.
Représentation graphique
Ce schéma se passerait presque de commentaires non
? En haut j'ai représenté la structure d'un
fichier BASIC, juste au dessous celle d'un fichier binaire et les trois représentations du bas correspondent aux trois types de tableau (INT, FPT et STR). Comme vous le voyez, les tableaux ne sont pas différenciés par le type de fichier car c'est le même pour les 3 types de tableau (32H). C'est le quatrième bloc qui sert de discriminant :
- 00H suivi du checksum ACH pour un tableau de réels (FPT) ;
- 10H suivi du checksum 8CH pour un tableau d'entier (INT) ;
- 20H suivi du checksum ECH pour un tableau de caractères (STR)
Un checkum sur un octet peut prêter à sourire, mais vous aurez compris que c'est la rançon de la réutilisation !
Comme vous le
voyez, on reconnaît un fichier par son type codé sur un octet (en bleu ciel).
Le leader et le type de fichier
Chaque fichier est précédé d'un leader qui est une
suite de bits de type leader suivi d'un bit de données à 1. Vous apprendrez à
quoi ces bits ressemblent dans la page
AudioCassetteInterface.
En plus de ce bit "1" (que l'on ne voit pas sur le
schéma car nous n'avons représenté que des octets) le leader est toujours
terminé par une suite de 8 bits représentant le nombre 55H. Si vous avez suivi,
le leader est une suite de bits leader, suivis de 1 bit de donnée à "1" et 8
autres bits de donnée "01010101" (55H). C'est une façon de voir les choses mais
nous aurions tout aussi bien pu dire que le leader est une suite de bits leader
terminée par 9 bits de données "101010101".
Le leader dure entre 2,3 secondes (2024 bits de leader + 1 bit de données à 1
+ 8 bits (55H). Après le
leader vient le type de fichier dont nous avons parlé (30H pour un programme
BASIC, 31H pour un fichier binaire et 32H pour un tableau de données).
Le corps du fichier est une suite de blocs
Ensuite le reste du fichier est constitué d'une
suite de blocs terminée par un trailer. Un
bloc est une suite d'octets suivi d'un checksum. Vous pouvez en apprendre plus
sur le calcul du checksum ici.
Prenons le cas du fichier BASIC, le premier bloc
contient la longueur du nom de programme et son checksum. Le deuxième bloc est
le nom du programme (qui comprend le nombre d'octets indiqué dans le bloc
précédant) suivi de son cheksum. le troisième bloc contient la longueur du
texte du programme suivi de son checksum, le quatrième bloc est le bloc de
texte du programme suivi de son checksum, le cinquième contient la
longueur de la table des symboles suivi de son checksum et enfin, le sixième
bloc est le bloc table des symboles suivi de son checksum.
Le trailer
C'est une suite de bits de type trailer terminée
par un bit à 1. Le trailer indique la fin d'un fichier. Ceci dit, le DAI génère
le trailer lors de l'écriture du fichier mais ne s'en sert plus jamais ensuite.
Mais ce n'est pas parceque le DAI ne s'en sert pas qu'il est inutile ! Il y a plusieurs bonnes raisons à la présence d'un trailer sur bande :
- c'était une bonne idée déjà à l'époque car sans aucun autre appareil que nos deux oreilles, nous pouvions savoir si un enregistrement était complet ou tronqué (et il y en a des enregistrements qui ne vont pas jusqu'au bout !) ;
- De nos jours ça s'avère encore utile avec un outil de manipulation des fichiers audio, en vue spectrale on voit tout de suite où se situent le début de l'enregistrement, les données, et la fin de l'enregistrement.
- Ça permet d'introduire une temporisation avant la coupure du relai moteur et évite de laisser la bande sous la tête d'écriture, le délai introduit par le trailer amène la bande environ 1/2cm après la tête d'écriture et évite de démagnétiser le dernier bit enregistré en cas d'enregistrements successifs.
- C'est une bonne idée pour d'éventuels outils ou mécanismes tiers pour identifier/indexer des enregistrements.
- Nous ne sommes pas à l'abris d'un utilitaire DAI exploitant la présence du TRAILER, même si le DAI lui-même n'en fait rien.
|