APPLICATIONSDISQUE ★ Modification et listage des secteurs d'une disquette ★

Modification et Listage des Secteurs d'Une Disquette (Cahier de l'Amstrad)Applications Disque
Dans la continuité des programmes qui vous ont été présentés dans les AMSTRAD MAGAZINE numéros 4 et 5, voici cette fois un programme BASIC qui vous permettra de modifier directement ou d'imprimer des secteurs de disquette.

Quelques explications

Les explications nécessaires à la lecture et à l'écriture de secteurs vous ont été données dans Amstrad Magazine numéro 5. Toutefois, et plus spécialement à l'intention de ceux qui n'auraient pas ce numéro, nous allons reprendre quelque peu ces explications et même légèrement les compléter.

Lors de la mise en service du lecteur de disquettes vous avez accès à des routines de lecture et écriture sur disquette qui sont utilisables moyennant un appel à la routine KL FIND COMMAND. Ces routines sont accessibles en utilisant le code de la commande précisé dans la brochure « DDI-1 FIRMWARE » d'Amstrad et en mettant à 1 le bit 7 de ce code.

Ceci nous donnera donc le code &84 pour la lecture d'un secteur disquette et le code &85 pour l'écriture d'un secteur particulier. L'utilisation de ces codes nécessite de charger :

  • dans le registre E, le numéro de drive concerné (0 pour drive A et 1 pour drive B)
  • dans le registre D, le numéro de la piste sur laquelle se trouve le secteur,
  • dans le registre C, le numéro du secteur auquel on désire accéder. Ce numéro de secteur doit être indiqué tel qu'il est codifié sur la disquette. Il est donc compris entre &41 et &49 pour disquette en format DATA et entre &C1 et &C9 pour une disquette en format SYSTEME.
  • dans la paire de registres HL, l'adresse d'un buffer de 512 octets contenant le secteur à lire ou écrire. La mise en œuvre de la routine KL FIND COMMAND se fait par un appel à l'adresse &BCD4. En préalable à cet appel, vous devez charger dans la paire de registres HL le code de la commande à rechercher. En retour, cette routine vous fournit :
    • dans la paire de registres HL, l'adresse de la routine recherchée,
    • dans le registre C, l'adresse de la ROM contenant la routine à activer.
Nota : les lectures et écritures de secteurs ont été effectuées ici en utilisant des codes instruction du BASIC qui ne sont pas cités dans le manuel utilisateur. Si vous travaillez en assembleur sous CP/M, vous obtiendrez le même résultat en effectuant des CALL aux adresses suivantes :
  • &BE89 pour la lecture de secteur
  • &BE8C pour l'écriture de secteur,

Les conditions d'appel (valeurs et registres à renseigner) sont les mêmes que pour l'utilisation des codes commandes. En revanche ces routines vous retournent dans le registre A un code erreur (0 si aucune anomalie).

Le programme Basic

Le programme BASIC qui vous est proposé ici permet de lire et d'écrire des secteurs sur une disquette. Le secteur sur lequel vous voulez travailler sera affiché à l'écran et vous aurez tout loisir, entre une lecture et une écriture, de le modifier ou de l'éditer sur votre imprimante. L'édition d'un secteur sur écran ou imprimante sera faite en héxadécimal et comprendra, dans la mesure où il s'agit de caractères affichables, la traduction du code héxadécimal en caractères. Tout caractère non affichable sera présenté par un point.

Utilisation du programme Basic

Après son lancement par RUN, le programme vous demandera :

  • le numéro du drive utilisé (A ou B),
  • le format de la disquette de travail : S pour une disquette SYSTEME, et D pour une disquette DONNEE,
  • le numéro de la piste contenant le secteur (compris entre 0 et 39),
  • le numérb du secteur sur lequel vous voulez travailler (compris entre 1 et 9, la mise en conformité du numéro de secteur avec le format donné étant faite par le programme).

Une fois ces renseignements fournis, l'écran affichera « UN INSTANT S.V.P. » puis le contenu du secteur demandé (dans la mesure où celui-ci aura été lisible).

Modification d'un secteur

Pour modifier un secteur vous devez, avec les touches du curseur, vous déplacer dans la partie héxadécimale affichée. La position à laquelle vous vous situez dans cette partie vous sera indiquée par le clignotement du caractère correspondant.
Lorsque vous êtes positionné sur une valeur héxadécimale que vous voulez modifier, il vous suffit de taper la nouvelle valeur (entre 0 et F) que vous désirez lui faire prendre. Dans la partie droite de l'écran qui contient la traduction « en clair » de l'affichage héxadécimal, le caractère correspondant prendra la valeur que vous lui avez affectée.

Mais n'oubliez pas que tout caractère est constitué de deux chiffres héxadécimaux (de 00 à FF). En conséquence, à chaque caractère affiché dans la partie droite de l'écran correspondront deux valeurs hexadécimales contigües affichées dans la partie gauche. En conséquence, changer un caractère nécessitera donc souvent de modifier deux positions héxadécimales sur l'écran.
La modification d'une valeur héxadécimale n'entrainera pas de déplacement du curseur. Ce dernier ne change de position que par une action sur les touches fléchées de déplacement. Vous pouvez réécrire sur la disquette (à l'emplacement où il a été lu) un secteur modifié en utilisant la fonction ENREGISTREMENT du programme.

Autres Tonciionnames du programme

Outre la modification de secteur sur l'écran, le programme proposé ici permet les actions suivantes :

  • Lecture du secteur précédent : s'obtient en tapant P. Si vous utilisez cette fonction alors que vous êtes positionné sur le secteur 1 de la piste 0, la lecture sera faite sur le secteur 9 de la piste 39.
  • Lecture du secteur suivant : s'obtient en tapant S. Si vous utilisez cette fonction alors que vous êtes positionné sur le secteur 9 de la piste 39, la lecture sera faite sur le secteur 1 de la piste 0.
  • Lecture d'un secteur quelconque : s'obtient en tapant L. Le programme vous redemande alors les mêmes renseignements (DRIVE, FORMAT, PISTE, SECTEUR) que lors de son lancement.
  • Ecriture d'un secteur sur disquette : s'obtient en tapant R. Le secteur affiché sur l'écran est alors enregistré sur la disquette aux mêmes numéros de piste et de secteur que ceux où il a été lu. Le contenu de secteur sur la disquette sera alors identique à ce qui est affiché sur l'écran.
  • Impression d'un secteur : s'obtient en tapant M. Le contenu de l'écran est alors édité sur votre imprimante.
  • Fin de travail : s'obtient en tapant I. Vous arrêtez alors l'exécution du programme.

Nota : lors de chaque accès à un secteur, vous aurez le message « UN INSTANT S.V.P. » pendant le temps de mise en forme des variables à afficher.
Du fait de l'impossibilité pour certaines imprimantes d'afficher tous les caractères du code ASCII compris entre 32 et 255, les caractères non affichables (remplacés par des points) sont les suivants :

  • sur écran, tous les caractères de codes ASCII inférieurs à 32.
  • sur imprimantes, les caractères de codes ASCII inférieurs à 32 et ceux du code ASCII supérieurs à 126.

LES CAHIERS D'AMSTRAD MAGAZINE n°3

★ EDITEUR: Les Cahiers d'Amstrad Magazine
★ ANNÉE: 1985
★ CONFIG: 64K + AMSDOS
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEUR: R.P. Spiegel
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Modification  et  Listage  des  Secteurs  d  un  Disquette    (Les  Cahiers  d  Amstrad  Magazine)    FRENCH    LISTINGDATE: 2022-05-23
DL: 336
TYPE: PDF
SiZE: 1092Ko
NOTE: 3 pages/PDFlib v1.6

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

Lien(s):
» Applications » Ultra-Form (Amstrad Action)
» Coding Src's » The 3D World
» Coding Src's » Sound - Rock - Henri Bittner (Hebdogiciel)
» Applications » MiniZAP
» Applications » Advanced Header Reader
» Applications » Superform v1 (CPC Amstrad International)
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» 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 279 millisecondes et consultée 2048 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.