CODINGCLASSEURS WEKA ★ Comment exploiter toutes les ressources et augmenter les performances de votre AMSTRAD CPC ★

4/1.2.03 - Gestion de l'unité de cassetteCoding Classeurs Weka
4/0 - Langages du CPC

4/1 - Locomotive BASIC : Définitions et rappels de base

4/1.2 Version 1.0 sur CPC 464 : Mots clés et leur utilisation

III - Gestion de l'unité de cassette

CAT

Donne la liste des fichiers présents sur cassette sans affecter un éventuel programme qui se trouve en mémoire.

Remarque :

Les caractères indicateurs suivants renseignent l'opérateur sur le type de fichier rencontré lors du CAT :

$ Programme BASIC
% Programme BASIC protégé
* Fichier ASCII
& Fichier binaire

CHAIN < Nom programme >[, < N° ligne >] et CHAIN MERGE < Nom programme >[, < N° Ligne >] [, DELETE < ensemble de lignes >]

CHAIN charge un programme en effaçant celui qui était en mémoire. L'option < N° ligne> précise à quelle ligne doit commencer l'exécution.

Remarque :

CHAIN conserve la valeur des variables en mémoire, mais les fonctions définies par l'utilisateur et les fichiers ouverts sont oubliées ; quelques fonctions sont remises à zéro (reportez-vous au manuel d'utilisation AMSTRAD pour plus de détails).

UtilisationL'ordre « CHAIN » permet de structurer en fonctions indépendantes et

successives les programmes qui ne tiennent pas en mémoire.

Supposons qu'un programme puisse être décomposé en trois fonctions séquentielles F1, F2 et F3, et que la totalité du programme ne tienne pas en mémoire. Chaque fonction pourra alors être exécutée sous forme d'un programme, F2 sera chaînée à F1 et F3 à F2. Le problème suivant se pose : F1 aura peut-être fait des calculs nécessaires à F2 et/ou F3 ; de même, F2 aura peut-être fait des calculs nécessaires à F3.

Deux solutions sont possibles :

1 ) Mettre les données ou calculs résultant d'une fonction et à destination d'une autre fonction dans un fichier.

  • 2) Utiliser l'ordre « CHAIN MERGE ».
  • 1) Passage de données par fichier :

Nous allons ouvrir un fichier séquentiel et y stocker les données à conserver puis utiliser l'ordre « CHAIN ». Supposons que les données à passer soient les suivantes : Chaîne A$, Tableau A[1...6], Entier X%.

Le programme qui suit est à installer en fin de "F1 ", Il assurera la création du fichier de passage et le chaînage à "F2".

1000 OPENOUT "PASSAGE"
1010 WRITE # 9, A$
1020 FOR I=1 TO 6
1030 WRITE#9, A[I]
1040 NEXT I
1050 WRITE#9, X%
1060 CLOSEOUT
1070 CHAIN "F2"

Ligne 1000 : Ouverture du fichier de transfert de données.
Lignes 1010-1050 : Ecriture des données à transférer.
Ligne 1060 : Fermeture du fichier de transfert.
Ligne 1070 : Chaînage au programme F2.

De plus, il faudra installer le programme suivant en début de « F2 ».

100 OPENIN"PASSAGE"
110 INPUT # 9, A$
120 FOR I = 1 TO 6 130 INPUT # 9, A[I])
140 NEXT I
150 INPUT #9, X%
160 CLOSEIN

Ligne 100 : Ouverture du fichier de transfert.
Lignes 110-150 : Lecture des données.
Lignes 160 : Fermeture du fichier de transfert.

2) Utilisation de l'ordre « CHAIN MERGE » :

  • Supposons que "F1" occupe les lignes 1000 à 2000,
  • "F2" occupe les lignes 2010 à 3000,
  • et "F3" occupe les lignes 3010 à 4000.

En fin de "F1" : CHAIN MERGE "F2", 2010, DELETE 1000-2000
En fin de "F2" : CHAIN MERGE "F3", 3010, DELETE 2000-3000

CLOSEIN

Ferme un fichier ouvert en lecture sur cassette.

Remarque :

NEW et CHAIN MERGE ferment automatiquement tous les fichiers cassettes ouverts.

UtilisationVoir CHAIN.
CLOSEOUT

Ferme un fichier ouvert en écriture sur cassette.

Remarque :

NEW et CHAIN MERGE ferment automatiquement tous les fichiers cassettes ouverts.

UtilisationVoir CHAIN.
OPENIN < Nom du fichier >

Ouvre un fichier sur cassette dans le but de lire les informations qu'il contient.

OPENOUT < Nom du fichier >

Ouvre un fichier sur cassette dans le but d'y écrire des données.

Remarques concernant OPENIN et OPENOUT :

a) Le « ! » supprime les messages d'entrée/sortie sur cassette de type « PRESS PLAY THEN ANY KEY » ou équivalent, et lance directement le moteur de l'unité de cassette.

b) L'ordinateur AMSTRAD CPC stocke les données sur cassette par blocs de 2 kilo-octets.

SAVE < Nom Fichie r >[, < Type >][, < Paramètres binaires >]

Sauvegarde sur cassette un fichier BASIC, ASCII ou BINAIRE.

L'option Type définit la structure d'organisation des données sur cassette :

Non indiquéProgramme BASIC résident
,A
,P
,B
ASCII : peut être récupéré par un traitement de textes.
Protégé : illisible et inexécutable après un LOAD. Ne peut être exécuté que par CHAIN ou RUN.
Données binaires.


Remarque :

L'utilisation du type de données binaires (,B) oblige l'utilisateur à indiquer l'adresse de départ de la sauvegarde, la longueur (en nombre d'octets) de la sauvegarde, et éventuellement le point d'entrée du programme (si c'est un programme binaire qui est sauvegardé).

EOF

Teste la fin de fichier sur cassette.

Cette fonction booléenne vaut - 1 si la fin de fichier est atteinte, 0 sinon.

UtilisationLecture d'un fichier dont on connaît la structure mais pas le nombre d'enregistrements. Supposons que le fichier « DATA » ait la structure suivante :

Nom | Age | Adresse
   |
Un enregistrement

La lecture d'un tel fichier et sa mémorisation se feront de la manière suivante :

Supposons que ce fichier comporte 100 articles au maximum.

100 I = 1 :DIM NOM$(100), AGE(100), ADR$(100)
110 OPENIN "DATA"
120 INPUT#9, NOM$(l), AGE(I), ADR$(I)
130 IF EOF = 0 THEN 1 = 1+1 :GOTO 120 'Poursuite lecture
140 CLOSEIN
150 'Suite du traitement

Ligne 110 : Ouverture du fichier.
Ligne 120 : Lecture des données.
Ligne 130 : Si toutes les données ne sont pas lues, lecture de l'enregistrement suivant.
Ligne 140 : Fermeture du fichier.
LOAD < Nom Fichier >[, Adresse]

Charge un programme BASIC ou un fichier binaire à partir de l'adresse donnée.

Remarque :

La commande « LOAD < Nom Fichier> » efface le programme BASIC résidant en mémoire.

UtilisationSuite à la redéfinition des caractères standards par un programme d'édition de caractères, vous ne voulez pas réduire à néant vos efforts en atteignant la machine. Aussi décidez-vous de sauvegarder les données de redéfinition des caractères qui étaient stockées en mémoire, par exemple à partir de l'adresse hexa &H9000.

Exemple :

Vous avez redéfini 6 caractères, soit 8*6 = 48 octets stockés à partir de &H9000.

Les caractères occupent donc les adresses &H9000 à &H902F. (En effet, 48D = &H30). Ils seront sauvegardés par :

SAVE "CARACT", B, &H9000, &H30

Vous les récupérerez par :

LOAD "CARACT", &H9000

Remarque :

La commande « LOAD » destinée à charger un programme BASIC et insérée dans un programme BASIC ne lance pas le programme chargé. Pour faire cela, reportez-vous aux ordres « CHAIN » ou « CHAIN MERGE ».

MERGE < Nom Fichier >

Permet d'amalgamer deux programmes dont un est en mémoire et l'autre sur cassette.

Remarques :

a) Avant d'utiliser cette commande, assurez-vous que les deux programmes à amalgamer ne possèdent pas de numéros de lignes communs (au besoin, utilisez la commande « RENUM » à cet effet).

b) Un « I » devant le nom du fichier à lire supprime tous les commentaires d'entrée/sortie cassette.

c) Les variables, fonctions utilisateur et dossiers ouverts sont écrasés ou abandonnés.

Pour plus de détails, consultez les commandes « CHAIN », « CHAIN MERGE » ou le manuel utilisateur AMSTRAD.

SPEED WRITE < 0 ou 1 >

Définit la vitesse d'écriture sur unité de cassette :

0 = 1 000 Bauds (option par défaut),

1 = 2 000 Bauds (si précisé).

Si vous n'êtes pas sûr de l'azimutage de la tête de lecture de votre magnétophone, ou si la qualité des cassettes utilisées laisse à désirer, utilisez la vitesse lente « SPEED WRITE 0 ».

Remarque :

Si vous utilisez un CPC 464 avec une qualité de bande moyenne, la vitesse rapide fonctionnera neuf fois sur dix. Le problème n'est plus le même si vous utilisez un 664 ou un 6128 avec un lecteur de cassettes externe de qualité courante...

UtilisationSauvegarde d'un fichier binaire en vitesse rapide :

1000 SPEED WRITE 1 'Vitesse rapide
1010 SAVE"DATA", B, &3000, &30 'Sauvegarde mémoire

Page précédente : 4/1.2.02 - Gestion du clavier
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.73-desktop
Page créée en 335 millisecondes et consultée 1075 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.