APPLICATIONSDISQUE ★ FORMAT+ ★

Format Plus (CPC Infos)Applications Disque
Comme vous avez pu le deviner, il s'agit d'un utilitaire de formatage de disquette. Un de plus penseront certains. Pourtant celui que je propose ne manque pas d'atouts : d'abord il est entièrement écrit en BASIC (il n'y a qu'une dizaine d'octets de langage machine nécessaires pour formater), ce qui ne l'empêche pas de déjouer les pièges de disquettes absentes ou protégées en écriture.

Ensuite il opère sur le lecteur A ou le B , que ce soit un 3". un 3"½ ou un 5" ¼ (ce que doit pouvoir faire tout formateur normalement constitué). Enfin et surtout il est très aisément modifiable pour formater au format de son choix (je ne saurais que recommander dans ce dessein la lecture de mon précédent article « TRUCS POUR L'EXPLOITATION DE DISQUETTES A FORMATAGE SPECIAL EN LECTEUR A OU B » ).

FONCTIONNEMENT

Vous venez de taper le listing de 8 Ko de FORMAT+ et vous avez précieusement sauvegardé ce programme sous le nom FORMAT+ (évidemment) sur une disquette. Vous allez enfin pouvoir vous livrer à quelques essais sur une disquette qui ne craint rien. Vous n'avez plus qu'à taper RUN et vous vous retrouvez 2 secondes plus tard devant l'écran de FORMAT+, qui va vous ébahir par son ergonomie. Voyons cela : Tout fonctionne par pression d'une seule touche. Chaque option est précédée d'un signe (lettre, chiffre ou association de ces deux pour les touches de fonction) en inverse vidéo. Il suffit donc de presser la touche correspondant à une option pour la sélectionner. Simple comme bonjour. Examinons l'ensemble des touches :

  • A [A] : on formatera sur le lecteur A. Sans commentaires.
  • B [B] : on formatera sur le lecteur B. Sans commentaires.
  • 4 [40] (touche de la rangée supérieure du clavier) : formatage de 40 pistes, de la piste (X) à la piste 39. C'est l'option courante pour un lecteur 40 pistes.
  • 8 [80] (touche de la rangée supérieure du clavier) : formatage de 80 pistes, de la piste 00 à la piste 79. Cette option n'est à employer que pour des lecteurs 80 pistes (certains 3"½ ou 5"¼). Mise en œuvre sur un lecteur 40 pistes (tel le lecteur AMSTRAD), cette option peut l'endommager (quoique les DDI-1 soient très robustes).
  • P [Pistes] : formatage au gré de l'utilisateur entre 2 pistes extrêmes, qui sont au départ les pistes 00 et 41 ; il est bien connu que les lecteurs AMSTRAD supportent très bien un formatage jusqu'à la piste 41. L'utilisateur peut modifier les valeurs des pistes extrêmes grâce aux 4 touches dont la description suivra. A noter que la piste de début de formatage peut être supérieure à la piste de fin : le formatage se fera à rebours !
  • C [Commence] : sélection de la piste de début pour modification.
  • T [Termine] : sélection de la piste de fin pour modification.
  • I [lncrémente] : augmente de 1 la valeur de la piste extrême sélectionnée, début ou fin. La valeur maximale est 79. Si on tente d'In-crémenter au-delà, la valeur repart à zéro. On peut Incrémenter pas à pas par pressions successives, ou continuement sans relâcher la pression. Cette sélection n'est possible que si l'option «P» est validée. D'ailleurs, dans le cas contraire, ni cette option «I», ni la sulvante, »D», ne sont sélectlonnables ; la touche n'apparaît pas alors en Inverse vidéo.
  • D [Décrémente] : diminue de 1 la valeur de la piste extrême sélectionnée. La valeur minimale est naturellement 0. SI on tente de décrémenter en deçà, la valeur saute à 79. On peut comme pour «I» agir par pression répétée ou continue.
  • FN (touche de fonction N, soit la touche numérique N du pavé numérique) : sélection du format correspondant. Cela se traduit par l'affichage en bas d'écran des caractéristiques principales du format choisi. Par exemple pour F1. le format standard DATA, on peut lire « 9 secteurs (C1-C9) de 512 octets ».
  • F [Formate] : lance le formatage désiré. Le bas de l'écran est alors réservé à des messages en inverse vidéo. Il y a demande d'insertion de disque dans le lecteur désiré, demande réitérée Jusqu'à satisfaction (N.B.: la touche [ENTER] dont il est question dans les messages est soit la grosse sur 464/664 et celle marquée «retum» sur 6128, soit la petite carrée marquée «ENTER»). Si la disquette est protégée en écriture, un message le fait savoir. Tout est en FRANÇAIS et il n'y aucune difficulté à réagir aux messages. Pendant le formatage, le mot «formate» se prolonge en «formate piste xx». avec «xx» la piste en cours de formatage au moment de la lecture de ces mots.

1) Pendant la phase de sélection d'option, une pression de la touche ESC provoque un effacement d'écran et un arrêt du programme ; Il y a retour au BASIC. FORMAT+ peut être relancé par RUN. Attention au fait que l'AMS-DOS peut être verrouillé ou non sur le dernier format utilisé en formatage, si l'on veut effectuer des accès à une disquette. Se reporter pour cela à mon article cité en introduction, « TRUCS POUR L'EXPLOITATTION DE... », et en particulier à ce qui concerne le problème du LOGIN.

2) La pression de ESC avant le formatage, alors qu'est faite la demande d'introduction de disque, provoque l'abandon du formatage et le retour aux sélections.

3) La pression de ESC pendant le formatage provoque son arrêt. Le message «Disc formaté jusqu'à la piste xx» s'affiche. Le formatage est effectif jusqu'à la piste formatée avant celle indiquée dans le message «formate piste yy». Si ce n'est pas clair, faites un essai.

4) En début de formatage d'une disquette pas encore formatée, le lecteur semble s'acharner sur la disquette, comme quand on veut faire le catalogue d'une disquette en format non standard. Cela est tout à fait normal étant donné la procédure employée pour reconnaître la présence d'une disquette. Il n'y a rien à craindre, ni pour le lecteur, ni pour la disquette.

5) En fin de formatage, un retour est effectué en piste 0 ( grâce à l'Instruction |DIR). Si le format en piste 0 diffère du format qui vient d'être utilisé, alors l'AMSDOS s'acharne un peu, mais en vain, pour effectuer son opération de lecture. C'est sans conséquence pour le matériel ( le système réagit pareillement en cas de format illisible ou de piste non formatée ).

MODIFICATIONS POUR UN FORMATAGEDE SON CHOIX

FORMAT+ a été conçu dans un souci de simplificité d'emploi et de modification, afin de pouvoir formater avec le format de son choix. Toutes les données nécessaires à la description d'un format sont en lignes de DATAs. Les explications qui vont être données seront succintes, car présupposant la lecture de mon article précédemment publié dans ces colonnes «TRUCS POUR L'EXPLOITATION DE...», en particulier du chapitre sur les DPBs, ou des connaissances suffisantes en la matière. Voyons donc le format qui n'est pas standard dans la liste d'origine, à savoir DATA+ (on a rajouté le secteur &CA aux secteurs du format DATA) :

1500 DATA "DATA+"
1510 DATA 0028,03,07,00,0001,003F,00C0,0010,0000
1520 DATA C1,0A,18,2A,E5,02,04,00,00,FF
1530 DATA C1,C6,C2,C7,C3,C8,C4,C9,C5,CA

Les données sont mises en 4 lignes pour la clarté de la chose, mais seul compte leur ordre et leur cohérence.

  • La première donnée est le nom du format, qui est lisible à l'écran. Il est préférable de le mettre entre guillemets pour éviter une confusion avec une donnée numérique ou surtout un mot clé (comme DATA pour meilleur exemple).
  • La seconde ligne est celle des 9 premiers paramètres du DPB, qui décrivent l'organisation logique des données sur la disquette. Toutes les données numériques sont en hexadécimal, à 2 ou 4 chiffres, toujours dans un souci de clarté.
  • La troisième ligne est celle des paramètres FDC.
  • La quatrième ligne est celle des numéros de secteurs, dans l'ordre qu'ils auront physiquement sur la disquette. On peut écrire en effet les secteurs dans l'ordre que l'on veut. Etant donné la rotation permanente de la disquette en cours d'accès, et les temps entre deux accès la suite optimale en temps n'est pas la suite croissante. Pour s'en convaincre, il n'y a qu'à formater en DATA dans l'ordre C1 , C2.... C8 , C9 et copier des fichiers dessus. A l'utilisation on constate vite la différence. Faire attention à ce que le nombre de secteurs soit bien celui indiqué dans les paramètres FDC (2ème valeur). On peut se passer en général des formats IBM et PCW, qui ne doivent Intéresser qu'une part infintésimale des utilisateurs de CPC. On n'a donc qu'à modifier les lignes de DATAs leur correspondant pour ses besoins personnels. Pour ceux qui voudraient enlever une possibilité de formatage ou en ajouter une, il suffit de modifier en conséquence la ligne 980 : selon le format choisi (paramètre «fmt») un «RESTORE» est effectué sur la ligne du nom de ce format («DATA», «DATA+», «IBM»,...) : 980 IF fmt=1 THEN RESTORE 1500 ELSE ... IF fmt=5 THEN RESTORE 1700 Rien de bien sorcier comme on peut le constater. Le reste (affichage, redéfinition de touche du pavé numérique) est entièrement géré par le programme.

POINTS DE DETAIL SUR LE PROGRAMME

Pour ceux qui se demanderaient comment j'ai pu gérer des problèmes disque tels la reconnaissance de l'absence a'une disquette ou de sa protection et qui auraient la flemme de se plonger dans le programme (suffisamment commenté pour s'y retrouver en quelques heures...), je vais donner quelques explications.

  1. Pour interdire toute question «Retry. Ignore or Cancel ?», Il faut «POKEr» en &BE78 la valeur &FF. Il n'y a plus d'interruption intempestive du programme par cette question, mais le message «Bad command» est toujours envoyé à l'écran.
  2. Comment empêcher l'apparition d'un «Bad command» ? : ce message est expédié à l'écran sur le canal 0. On peut le rendre Invisible en définissant une fenêtre 0 aux stylo et papier Identiques. Ce qui fût fait.
  3. Comment détecter malgré tout l'apparition d'un «Bad command» ? : il faut nettoyer avant l'opération sur disque la fenêtre 0. ce qui envole le curseur de texte de cette fenêtre en position 1,1. Après l'opération sur disque, si un «Bad command» s'est affiché, le curseur a changé de position, ce que l'on vérifie par un POS(#0) ou VPOS(#0).

Ces 3 astuces mises en œuvre permettent de détecter, selon le moment d'apparition d'une erreur.
l'absence d'un disque ou sa protection en écriture, voire même sa non lisibilité. Cependant la présence d'un disque non formaté est dans ces conditions confondue avec son absence ! Un disque n'est en état non-formaté normalement qu'une fols (à moins qu'on ne s'amuse à le déformater) ; on n'a beau effectuer beaucoup plus de (re-)formatages de disques (déjà formatés), un utilitaire de formatage doit savoir formater une disquette non formatée. Voici comment a été résolu le problème :

— l'instruction |DRIVE,@a$ où la variable a$ contient le nom du lecteur, soit A ou B. détecte très vite l'absence ou non de disque, tandis que s'il y a une disquette non formatée, le lecteur s'acharne à effectuer une lecture d'Identification de piste. Le comportement est donc totalement différent et le temps d'opération dans ces 2 cas de situation est totalement différent. On a donc recours à la fonction TIME (qui donne, rappelons-le, la valeur du chronomètre du CPC, qui est incrémenté tous les 1 / 300 de seconde) pour les distinguer, comme le montre la ligne 950 : t!=TIME: |DRIVE,@a$:t!=TIME-t! :e=VPOS(#0)-MAX(SGN(1000-t!, 0))

Pour une absence de disque, t!, qui est donc un intervalle de temps, est de l'ordre de 300-400, tandis que pour la présence d'un disque non formaté c'est de l'ordre de 2400 ! Pour la formule utilisant tl. la limite a été prise comme étant 1000. Cette valeur peut être remise en question si l'utilisateur modifie les valeurs pour les temps d'attente ou d'accès du lecteur. La formule MAX(SGN(1000-t!),0) délivre un 0 pour un t! supérieur ou égal à 1000 (disque non formaté) et un 1 sinon (disque manquant).

Ces quelques explications avaient pour but de montrer que l'on peut très bien gérer des erreurs du système disque sans une once de routine en langage machine : un POKE, du BASIC et rien que du BASIC, et le tour est joué !

CONCLUSION

Je ne voudrais pas me vanter mais je n'ai jamais trouvé de formateur de disque aussi pratique que le mien, surtout pour la modification des formatages possibles : en moins de 2 minutes, avec l'habitude. J'ai fait les modifications nécessaires pour formater comme Je veux une disquette. J'espère que d'autres apprécieront la valeur de FORMAT+. Dans mon précédent article, déjà plusieurs fols cité. J'expliquais tout (ou presque) sur les formats de disquette (via les fameux DPBs). Cette fois je donne les moyens de passer aux actes, en offrant la possibilité de formater à son gré. J'espère que nous nous retrouverons très bientôt pour un petit transféreur de fichiers entre des disquettes de formatages différents. Vous serez alors en possession de toutes les armes pour qu'un formatage spécial de disquette ne reste pas qu'une belle idée inemployable. A bientôt !

Yannick GOUR , CPCinfos n°35

★ EDITEUR: CPCINFOS
★ ANNÉE: 1991
★ CONFIG: ???
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEUR: Yannick GOUR
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Format  Plus    (CPC  Infos)    FRENCHDATE: 2021-04-22
DL: 349
TYPE: ZIP
SiZE: 6Ko
NOTE: 40 Cyls
.HFE: Χ

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

Lien(s):
» Coding » Formatage spécial : TRANSFIL v2 (CPC Infos)
» Coding » Formatage spécial : TRANSFIL (CPC Infos)
» Coding » Formatage spécial en Lecteur A ou B
» Coding » Formatage spécial: MAPFORMAT
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» 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/c
Page créée en 329 millisecondes et consultée 2894 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.