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 CPM, appelé systeme, les identificateurs vont de &41 a &49 et leur ordre physique est le même que pour le format DATA

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 premier de ces 32 octets est le numéro d'utilisateur que les Franglais appellent USER Lorsqu'il vaut 229 (&E5), c'est que le fichier est efface, donc que l'entrée est disponible en cas de directory full. Rien a dire de plus sur lui. .
  • Les huit octets suivants contiennent le nom du fichier auquel se rapporte cette entrée. Rien a dire de plus la-dessus.
  • Les trois octets suivants forment l'extension du nom, mais avec quelques petites astuces a la clef. Si le bit 7 du premier octet de l'extension est a 1, cela signifie que le fichier ne sera accessible qu'en lecture (read only) et que son nom sera suivi d'une petite étoile lors d'un CAT. Le bit 7 du deuxième octet de l'extension force le fichier en mode systeme (invisible lors d'un CAT) s'il est a 1. Comment? Et le bit 7 du troisieme octet de l'extension ? Je crois, a premières vue, qu'il ne sert strictement a rien. Cessez de m'interrompre.
  • Ensuite, c'est le pied car on saute trois octets, soit 24 bits, qui ne servent a rien. Que de place perdue dans cette entrée déjà si petite.
  • Le huitième octet représente le nombre d'enregistrements (de paquets de 128 octets) contenus par cette entrée. On se demande pourquoi, mais ce n'est pas la peine, c'est comme ça ( Lalalalala ! je ne veux pas t'abandonner, mon MM...). Si cet octet vaut &80, cela signifie que le descripteur de fichier n'est pas complet et qu'il faudra aller trouver l'entrée suivante du fichier pour récupérer la suite du programme. C' est pas simple.
  • Les seize octets qui restent contiennent les numéros de blocs dans lesquels sont stockées les données tant recherchées du fichier convoite.

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

Page précédente : Bidouilles ACPC n°16 - Bidouilles bizarres

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding » Bidouilles ACPC n°47 - Les vecteurs system (5/6)
» Coding » Assembleur ACPC n°14 - AS: ÇA C'EST COOL
» Coding » Assembleur ACPC n°35 - Dossier assembleur
» Coding » Bidouilles ACPC n°48 - Les vecteurs system (6/6)
» Applications » Cat-disk (CPC Revue)
» Coding » Assembleur ACPC n°20 - Convertion numerique
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop
Page créée en 387 millisecondes et consultée 2391 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.