★ CODING ★ Le catalogue AMSDOS ★ |
Bidouilles ACPC n°17 - Le catalogue AMSDOS |
CATASTROPHE : CATACLYSME DANS CATALOGUE: Combien de programmeurs, combien de programmeuses se sont casse le nez sur la structure du catalogue de notre bon viel Amsdos ? Pas mal apparemment. Je n' oserais citer les noms de ceux qui l'ont fait, car ces deux pages seraient remplies en moins de deux, ce qui est un comble. Purée, c'est pas vrai ! C'est pas possible ! Voila qu'une pétouille, un bit rebelle, vient de se glisser en plein Cœur de je ne sais quel secteur. Million de bord... A cause de ce truc, mon fichier préfère a un coup dans le cornet et me parait irrécupérable. Je sais bien que j'aurais du en fa ire une copie, mais on ne pense jamais a faire ce genre de truc en temps et en heure. Je l'en mettrai, moi, des messages d'erreur. Ah, si seulement Rubi pouvait être à mes côtés, il saurait comment faire, lui. Première chose a tenter dans ces cas là : la copie de fichier avec Disco. Si ça passe, ça passe. Dans le cas contraire, on remue le couteau dans la plaie... Disco, Copieur, Fichiers. copie, Source, Destination, et voila le travail. Comme par hasard. ce n'est pas le deuxième bloc qui a tout pris dans les dents, mais le premier. qui contient toutes les informations principales sur le fichier, bien entendu. Dans ce cas, il nous faut absolument Disco. Ceux qui ne possèdent pas cet utilitaire sont punis, vont au coin, et peuvent aller jouer aux billes la paix dans l'âme. C'est vrai, quoi ! Allez demander a un mécanicien automobile de vous changer l'embrayage sans son jeu de clefs et vous verrez bien ce qu'il vous répondra (a mon avis, il ne sera pas content du tout). Comme dit le proverbe : tel travailleur, tel outillage. Si le premier est bon, le second l'est aussi. Le contraire fonctionne de la même manière. Dans le cas du travail sur les disquettes du CPC, c'est encore Disco le meilleur. ETAT CATALEPTIQUE PAS CALCULE Avant tout, nous allons parler de la structure même du catalogue. Le catalogue, aussi appelé directory, est la partie de la disquette contenant certaines informations importantes sur la structure et la disposition des fichiers sur le support. Nous avons déjà aborde l'organisation des informations sur cette aire de stockage dans un vieux numéro (c'était le bon temps), mais nous allons le refaire un peu plus en profondeur ce mois-ci. Tout d'abord, il faut savoir, dans le cas où vous désireriez développer vos propres applications, que trois sortes de formats existent. Ils ne varient que par le nom des secteurs contenus par chaque piste. Pour le format DATA, les secteurs portent les identificateurs numérotes de &C1 a &C9, dans un ordre permettant au contrôleur d'accéder assez rapidement aux suites de secteurs. En effet, vu la lenteur relative du FDC, lorsqu'il vient de lire un secteur, il n'a pas le temps de lire l'identificateur du secteur suivant, qu'il saute sans le reconnaître, cela jusqu'au suivant. Pour une plus grande vitesse d'accès, un ordre différent du croissant a été choisi. L'ordre logique, du secteur &C1 au &C9, est appelé ainsi par logique. L'ordre physique est le suivant : &Cl, &C6, &C2, &C7, &C3, &C8, &C4, &C9, &C5. Pour le format IBM, c'est la même chose, sauf que les secteurs vont de 0 a 8. Voila, c'était un point a éclaircir. Passons aux choses plus sérieuses, soit l'emplacement du catalogue sur la disquette. Pour les formats DATA et IBM, le catalogue est sur les quatre premiers secteurs logiques (de &Cl a &C4) de la piste 0. Ne croyez pas que les disquettes au format IBM soient compatibles en organisation, vous vous mettriez le doigt dans l'œil jusqu'au tibia. En ce qui concerne le format systeme, le catalogue se trouve sur les quatre premiers secteurs de la piste 2 pour laisser les deux premières pistes (0 et 1) libres pour le CPM. Moi, je vous dis cela, mais vous en faites ce que vous voulez on va pas vous forcer non plus. CAT A STROPHES Pour une fois, ils ne se sont pas trop foulés chez Amstrad, pour l'organisation et le type de données stockées catalogue. L'Amsdos a un gros défaut . Il n'est pas capable de marquer les secteurs défectueux de la disquette, ce qui veut dire, pour les non-bricoleurs, qu 'un tel secteur rend lette entièrement inutilisable. Bref, il est comme cela, et on ne peut lire, alors c'est parti pour une visite guidée. Pour poursuivre l'étude, sa chez qu'un secteur contient 512 octets, qu'un bloc contient 2 secteurs et qu'un enregistrement est une unité de volume représentant 128 octets (va savoir pourquoi). A chaque entrée du répertoire, du catalogue en fait, sont alloues 32 octets. On appelle cela une entrée et non pas un fichier, parce qu'il faut parfois jusqu'a quatre entrées pour faire un fichier, ou même plus.
LE CALCUL PAS COOL QUI COLLE: JE CALE Comme dit ci-dessus, le fichier est découpe en blocs de 1 Ko et est éparpille plus ou moins dans l'ordre sur la disquette. Comment fait-on pour aller chercher les secteurs en fonction des numéros de blocs? Simple. Il suffit de multiplier le numéro de bref par deux, pour le transformer en nombre de secteurs, de diviser le résultat par neuf pour en déduire le numéro de piste. Ainsi, INT(BLOC*2/9) est le numéro de la piste ouest le premier secteur recherche et (BLOC*2 MOD 9) + 1 OR TYPE est le numéro du secteur convoite. Type représente le type de format et vaut &CO en mode DATA et &40 en mode systeme. Pour obtenir le numéro du deuxieme secteur du bloc, il faut incrémenter le code du premier secteur et changer de piste si besoin est. Pour décomposer le bloc 4 en piste secteur, il suffit donc de faire 4*2/9, ce qui nous donne piste 0. Le module étant 8, nous lui ajoutons 1 et faisons un OR &CO pour le format DATA, ce qui' nous donne secteur &C9, piste 0 pour le premier. Le deuxième aura pour identificateur &C9+ 1 soit &CA, ce qui est impossible et qui nous force a corriger en incrémentant le numéro de piste. Le numéro de secteur doit aussi être influence en étant initialise avec la valeur &C1. Cela fait, le bloc est reconstitue. Deux PAGES AU PAGE Voila encore de l'encre gaspillée pour permettre a un sombre crétin de déblatérer ses bêtises. J' espère que ces pages vous serviront. Révisez bien, car, le mois prochain, nous étudierons la suite: la structure du premier enregistrement du premier bloc de la première entrée du premier fichier de la première disquette du premier CPC... Sined le pas premier, ACPC n°17
|