APPLICATIONS ★ SAVE, LOAD, RUN & CO ★

Edito Save Load Run And Co 13 - Differents Types de Fichiers

DIFFERENTS TYPES DE FICHIERS

Lorsque vous avez sauvé (SAVE) puis rechargé (LOAD) notre petit programme d'une ligne, VOLB avez précisé, entre guillemets, le nom du fichier (ESSAI), Il est évident qu'il faut désigner à la machine le fichier sur lequel on veut travailler, Cette désignation comprend, entre guillemets :

  • obligatoirement un nom, de 1 à 8 caractères,
  • facultativement une extension (ou suffixe), de 0 à 3 caractères, séparée du nom par un point (.).

Pour le nom et l'extension (donc au maximum 12caractèresen comptant le point), les caractères autorisés sont les lettres, les chiffres, et (es signes suivants :

  • Clavier AZERTY : é è à & # S- + ^ '
  • Clavier QWERTY : ( ) @ & # S - + ^ '

Les lettres peuvent Indifféremment être tapées en majuscules ou en minuscules : le système les transforme automatiquement en majuscules (sauf les lettres accentuées autorisées, pour les possesseurs d'un clavier AZERTY). Le premier caractère peut être l'un quelconque des caractères autorisés. En ce qui concerne les signes non alphanumériques (ceux indiqués ci-dessus), seul le tiret (-) est couramment utilisé, pour séparer le nom en 2 parties. Dons les sauvegardes sur cassette, un point d'exclamation peut être placé devant le nom pour supprimer les messages du système pendent la sauvegarde ; il ne compte pas pour un caractère dans ce cas.

J'ai dit que l'extension était facultative, et je n'en ai d'ailleurs pas précisé dans notre petite manipulation, insérez donc dans le lecteur la disquette contenant notre exemple de fichier (désormais je ne parlerai plus que des disquettes, car les Amstradistes utilisant encore ce support doivent maintenant être rares), Tapez CAT ( catalogue, ou répertoire ) + ENTER, Notre programme ESSAI figure bien à l'affichage, seulement il s'appelle ESSAI. BAS,

Quelle est l'explication de ce mystère ?

  • Les fichiers existent sous 3 types de base,
  • Le type du fichier dépend directement du type de commande qui l'a créé (sauvegarde). - Si vous ne précisez pas d'extension à la sauvegarde, le système en attribue une automatiquement, en relation directe avec le type du fichier. C'est l'extension par défaut.

Les 3 types de base sont Basic, Binaire et ASCII, avec respectivement les extensions par défaut BAS, BIN et rien du tout (ou plus exactement 3 espaces vides).

Lorsque vous topez SAVE"nom de fichier" + ENTER (donc sans extension), le système sauve sur disquette la ou les lignes de Basic contenues en mémoire. Et s'il n'y en a pas ? Je vous le donne en mille ; il crée un fichier vide. La syntaxe de la commande indique à la machine qu'il s'agit d'un fichier (ou programme) BASIC, qu'il fout sauvegarder sous ce type. L'extension n'étant pas précisée, le nom du fichier est complété automatiquement par .BAS dans le catalogue de la disquette.

STRUCTURE DES
ENREGISTREMENTS
SUR DISQUETTE

Lorsque vous avez sauvé plusieurs fichiers à la suite sur cossette, c'est la galère pour retrouver un fichier particulier, cor il fout lire tous les enregistrements précédents Jusqu'à ce qu'on ait trouvé celui qu'on cherchait. La disquette est un support beaucoup plus performant, qui permet de se positionner Instantanément sur l'endroit précis où se trouve enregistré le fichier désiré.
Mais vous vous doutez bien que ça ne se passe pas tout seul. Quelque chose doit indiquer ou système où se situe l'enregistrement cherché. C'est le FORMATAGE qui permet cette recherche sélective, c'est pourquoi une disquette vierge non formatée est inutilisable, et n'est même pas reconnue comme disquette.
Le formatage répartit sur la disquette 40 pistes circulaires concentriques (numéro 0 à 39), en effaçant DEFINITIVEMENT tout ce qui pouvait être enregistré auparavant, Donc attention ! Ces pistes sont divisées en 9 secteurs de 512 octets chacun, identifiables individuellement.
En format DATA, les 4 premiers secteurs de lo première piste contiennent le catalogue, c'est-à-dire pour chaque fichier présent sur la disquette ;

  • le n° d'utilisateur (USER 0 à 15),
  • le nom et l'extension du ficliier,
  • 2 attributs particuliers :
    • écriture possible, ou lecture seule autorisée (RW ou RO),
    • invisible au catalogue (SYS) ou visible (DIR)
  • la longueur du fichier,
  • et le plus Important, les coordonnées des pistes et des secteurs (pas forcément contigus) où se trouve enregistré le fichier proprement dit.

Ces renseignements occupent 32 octets pour chaque fichier. Comme 4 secteurs (4x512 = 2048 octets) sont réservés, vous disposez de 64 entrées au catalogue (64 x 32 = 2043 octets, CQFD). Ce qui veut dire vous ne pouvez enregistrer sur une disquette que 64 fichiers, même s'ils sont tout petits et n'occupent pas toute la place disponible.

Quant ou fichier lui-même, il débute (sur le premier secteur où commence l'enregistrement) par un entête de 128 octets (HEADER) portant lui aussi de précieuses informations :

  • un rappel du n° d'utilisateur, du nom et de l'extension, -le type du fichier,
  • son état, protégé ou non, dans le cas d'un fichier de type Basic,
  • de première importance pour les fichiers de type Binaire :
    • l'adresse de chargement en mémoire,
    • la longueur du fichier,
    • l'adresse de lancement éventuelle,
  • une somme de contrôle des 67 premiers octets.

Ceci n'est valable que pour les fichiers de type Basic ou Binaire ; les fichiers ASCII n'ont pas de Header, et le premier secteur commence d'emblée par les données,

Il est possible de visualiser tous ces paramètres, et éventuellement de les modifier, avec l'éditeur de secteurs et/ou de catalogue faisant partie de tout gestionnaire de disquettes commercial de bon aloi. Le plus connu est DISCOLOGY. mais pour ce travail ma préférence va au bon vieil ODDJOB, dont la présentation à l'écran est très claire et la manipulation aisée.

LE NUMERO D'UTILISATEUR

Quoi qu'en dise le manuel, on peut difficilement considérer l'Amstrad comme une machine multi-utilisateurs, et qu'il soit si important de distinguer les fichiers appartenant à plusieurs personnes se partageant le même ordinateur (vous travailiez à combien, sur le vôtre ?).

L'Intérêt est ailleurs. Outre une astuce des concepteurs qui utilise également ces numéros à d'autres fins, il fout y voir des sous-répertoires permettant de répartir les fichiers du catalogue en familles homogènes.

Dans le type de sauvegarde que nous avons vu plus haut, le fichier est automatiquement affecté à l'USER courant, ici, c'est l'USER par défaut, le sous-répertoire dans lequel nous travaillons d'office dès l'allumage de la machine, comme en témoignent les indications mentionnées en début d'affichage du catalogue, vous avez dû le voir (Drive A; User 0). Si nous voulon sauver notre fichier ESSAI dons le sous-répertoire 5, par exemple, il y a deux moyens ;

- Nous restons dons l'USER 0, mais nous précisons au système qu'il doit sauver le fichier dans l'USER 5 :

SAVE"5 :ESSAI"

- Nous changeons d'USER :

|USER,5:SAVE"ESSAI"

Sur clavier AZERTY, il faut taper ùUSER,5, Mais attention, nous restons dans l'USER 5 après la commande (il devient l'USER courant).
Pour visualiser chaque sous-répertoire, tapez ; USER,:CAT
Pour charger (LOAD) un fichier affecté à un |USER autre que celui par défaut, voir les 2 exemples ci-dessus, en remplaçant SAVE par LOAD,
Si d'aventure vous aviez un second lecteur (Drive B:), vous pourriez sauver le fichier ESSAI sur ce lecteur dans l'USER 0 en utilisant l'une des 3 commandes suivantes :
-  En restant sur le lecteur A: par défaut ;

SAVE"B:ESSAI"

-  En changeant de lecteur par défaut:

|B:SAVE" ESSAI"
|DRIVE,B:SAVE"ESSAI"

Si vous voulez placer ESSAI à la fols sur le lecteur B: et dons le sous-répertoire B (USER 8), tapez :

SAVE"8B:ESSAI"

LES ATTRIBUTS DE FICHIER

L'attribut Invisible ou catalogue (SYS, DIR étant l'attribut par défaut) ne présente un intérêt que si vous avez des raisons valables de cacher aux regards indiscrets certains fichiers d'une disquette, sois si cette disquette doit circuler, n'oubliez pas qu'un Amstradiste un tant soit peu averti, muni d'un gestionnaire de disquettes tel les deux déjà cités, peut en un tour de main en visualiser le contenu et démasquer les fichiers cachés. Donc, intérêt très restreint.
L'attribut lecture seule (RO pour Read Only, l'attribut par défaut étant RW pour Read/Write, Lecture/Ecriture) est bien plus utile, il permet de protéger un fichier importent contre toute tentative d'écriture :

  • modification ou mise à jour,
  • changement du nom,
  • effacement (il consiste à écrire un code spécial sur le HFADER).

Sa principale fonction est de protéger individuellement des fichiers contre l'effacement.
Comment affectera un fichier l'attribut SYS ou RO ? Il faut charger CP/ M à partir de la face 1 de la première disquette système fournie avec l'Amstrad, par la commande |CPM ( ou ùCPM sur AZERTY ) : vous placez ensuite dans le lecteur la disquette contenant le ou les fichiers à protéger, et vous utilisez la commande SET de CP/ M ( voir chapitre 5, page 30 du Manuel pour plus de détails ), La même commande permet de déprotéger ensuite les fichiers si nécessaire.

Mais il est bien plus commode de se servir d'un gestionnaire de disquettes commercial, ou d'un utilitaire publié en listing (éditeur de catalogue).
Pour les étourdis. Il y a un autre moyen de protection contre l'écriture et l'effacement, portant sur l'ensemble de la disquette : c'est d'ouvrir le trou de protection de la disquette (un par face).

A Suivre à.

SAVE, LOAD, RUN & CO , G. DUBUS , CPC Infos n°27

Page précédente : Edito Save Load Run And Co 12 - le Basic

CPCrulez[Content Management System] v8.7-desktop/cache
Page créée en 119 millisecondes et consultée 1609 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.