Liste
complète des mots
clés du BASIC AMSTRAD CPC6128
(issue du manuel de l'utilisateur)
Note: les programmes d'exemples présents sur cette page peuvent
être chargés dans l'émulateur CpcAlive grâce
à la fonction copier/coller de Windows. Voir mode d'emploi
L'assimilation de la terminologie et de la notation adoptées
dans ce chapitre est indispensable. Différents types de parenthèses
expliquent l'entrée des commandes ; commencez donc par vous familiariser avec la signification de chacun.
Les commandes sans crochets doivent rester telles quelles. C'est le
cas, par exemple, de la commande:
END
...et vous devez taper le mot END en toutes lettres.
Lorsqu'un élément apparaît entre parenthèses
angulaires, < > comme:
<numéro de ligne>
...il ne faut ni taper ces parenthèses, ni ce qu'elles
renferment.
L'exemple ci-dessus indique le type de données requises pour la commande. Par exemple:
EDIT <numéro de ligne>
...signifie que vous devez taper:
EDIT 100
Les parenthèses () DOIVENT être tapées telles
quelles. Dans l'exemple:
COS(<expression numérique>)
...l'expression numérique doit se trouver entre
parenthèses. Par exemple:
PRINT COS(45)
Les crochets, pour finir, contiennent les éléments
facultatifs d'une commande ou d'une fonction. Par exemple :
RUN [<numéro de ligne>]
...signifie que vous n'êtes pas obligé de faire suivre le
mot clé RUN d'un paramètre, mais que vous pouvez, si vous le désirez, ajouter le paramètre
<numéro de ligne>. La commande peut alors être entrée de deux manières:
RUN ... ou ... RUN 100
Caractères spéciaux
& ou &H Préfixe pour un nombre
hexadécimal
&X
Préfixe pour un
nombre binaire
#
Préfixe pour un canal
d'entrées-sorties
Types de données
Les chaînes peuvent avoir de 0 à 255 caractères et sont
désignées par <chaîne alphanumérique>.
On peut adjoindre une chaîne à une autre avec
le signe + et à condition que la chaîne qui en
résulte ne dépasse pas 255
caractères.
Les entiers varient de -32768 à + 32767 et les nombres
réels de -1.7E+38 à +1.7E+38, le plus petit nombre au dessus de zéro étant 2.9E-39 et
chaque nombre ayant 9 à 10 chiffres significatifs.
Une <expression numérique> est une expression qui aboutit
à une valeur numérique.
Cela peut être des nombres, ou une variable numérique, ou
des nombres opérant avec des variables numériques, à peu près tout ce qui n'est
pas <chaîne alphanumérique>.
Un <numéro de canal> se rapporte à une
<expression numérique> pour désigner une fenêtre d'écran, une imprimante, une cassette ou une
disquette vers laquelle le texte doit être acheminé.
Une <liste d'élément> décrit un
paramètre comprenant une liste d'éléments
séparés par des virgules. Cette liste, pouvant contenir un ou plusieurs
éléments, est limitée par la longueur de ligne.
Nous allons donner les mots clés du BASIC AMSTRAD sous la forme
suivante:
MOT CLE
Syntaxe
Exemple
Description
Mots clés associés
Les mots clés sont:
DES COMMANDES : opérations exécutées directement
DES FONCTIONS : opérations
intervenant dans
une expression
DES OPERATEURS : agissent sur des arguments
mathématiques
Lors du listage d'un programme, le BASIC transforme en MAJUSCULES tous
les mots clés tapés en minuscules. Les exemples de ce chapitre
sont en MAJUSCULES tels qu'ils apparaissent après un LISTing. Il sera toutefois
préférable que vous les tapiez en minuscule car les mots clés contenant une erreur resteront
LISTés en minuscules, vous révélant ainsi vos erreurs de frappe.
Pour plus de détails sur le BASIC AMSTRAD 6128, consultez les
spécifications SOFT967.
Mots clés...
ABS
ABS(<expression
numérique>)
PRINT ABS(-67,98)
67.98
FONCTION: Donne la valeur ABSolue de l'expression entre
parenthèses. Les nombres négatifs perdent donc leur signe moins.
AFTER <délai du
chronomètre>[,<numéro de chronomètre>]
GOSUB <numéro de ligne>
10 AFTER 250 GOSUB 60:CLS
20 PRINT"Devine une lettre en 5 secondes"
30 a$=INKEY$:IF flag=1 THEN END
40 IF a$<>CHR$(INT(RND*26+97)) THEN 30
50 PRINT a$;" est exacte,tu as gagne !"
55 SOUND 1,478:SOUND 1,358:END
60 PRINT "Trop tard.J'ai gagne !"
70 SOUND 1,2000:flag=1:RETURN
run
COMMANDE: Appelle un sous-programme après (AFTER en anglais) un
certain délai. Le <délai du chronomètre> indique la
durée de l'attente en multiples de 0,02 seconde. Le <numéro de chronomètre> (qui peut
être 0,1,2 ou 3) précise lequel des quatre chronomètres d'attente il faut utiliser.
Chacun des 4 chronomètres peut être associé
à un sous-programme. Pour plus de détails concernant les interruptions, reportez vous à la partie 2 du
chapitre "A vos heures de loisir...".
FONCTION: Calcule l'Arc TaNgente (réduisant l' <expression
numérique> à un nombre réel en radians compris entre -PI/2 et + PI/2) de la valeur
donnée.
A noter : les commandes DEG et RAD peuvent êtres utilisées
pour spécifier explicitement que le résultat sera exprimé respectivement en
degrés ou radians.
COMMANDE: Génère AUTOmatiquement les numéros de
ligne. Le paramètre facultatif <numéro de ligne>
donne le premier numéro de
ligne à générer. Si vous ne le précisez
pas, les lignes sont générées à partir de
10.
L'<incrément>, également facultatif, fixe
l'intervalle entre les numéros de ligne. En l'abscence de spécification, il sera égal à 10. Si
un numéro de ligne déjà utilisé est
généré, le contenu de cette ligne apparaît à l'écran et
peut éventuellement être modifié. La ligne affichée est ensuite remplacée en mémoire
après activation de la touche [RETURN]. Pour arrêter la numérotation automatique des lignes, appuyez
sur [ESC].
Mots clés associés: Aucun
BIN$
BIN$ ( <nombre entier sans
signe>[,<nombre entier>] )
PRINT BIN$(64,8)
01000000
FONCTION: Produit une chaîne de chiffres BINaires
représentant la valeur du <nombre entier sans signe>, à l'aide du nombre de chiffres
binaires indiqué par le deuxième <nombre entier> (entre 0 et 16). Si ce nombre est trop grand, le
résultat commence par autant de zéros que nécessaire. S'il est trop petit, le
résultat n'est pas tronqué mais converti en autant de chiffres que nécessaire.
Le <nombre entier sans signe> à convertir en binaire doit
être compris entre -32768 et 65535.
10 REM 729 combinaisons de bordure
20 SPEED INK 5,5
30 FOR a=0 TO 26
40 FOR b=0 TO 26
50 BORDER a,b:CLS:LOCATE 14,13
60 PRINT"border";a;",";b
70 FOR t=1 TO 500
80 NEXT t,b,a
run
COMMANDE: Pour changer de couleur de la bordure d'écran. Si deux
couleurs sont indiquées, elles alternent à la vitesse
déterminée par la commande SPEED INK, le cas échéant. Les valeurs vont de 0 à 26.
COMMANDE: Demande au BASIC de lire le CATalogue de la disquette.
Affiche en ordre alphanumérique les noms de tous les fichiers
présents ainsi que leur longueur (en arrondissant au Koctet supérieur). Le nombre d'octets
disponibles s'affiche également.
Cette commande n'a pas d'effet sur le programme en cours.
COMMANDE: Charger un programme en mémoire à partir d'une
disquette, remplaçant le programme existant. Le nouveau programme commence au début ou
à partir de la ligne spécifiée par <numéro de ligne>.
Les fichiers protégés (sauvegardés par la commande
SAVE,p) peuvent être
chargés et lancés par CHAIN.
CHAIN MERGE
<nomfich>[,<numéro de ligne>]
[,DELETE <ensemble de lignes>]
CHAIN MERGE "partie2.bas",750,DELETE 400-680
COMMANDE: Charge en mémoire un programme sur disquette en le
fusionnant au programme existant, puis lance le programme résultant, depuis le
début ou à partir de la ligne spécifiée par le paramètre en option,
<numéro de ligne>. Si vous désirez effacer une
partie du programme initial avant d'utiliser cette commande, vous
pouvez spécifier le paramètre <ensemble de lignes> de la commande DELETE. Les
numéros de ligne du programme initial identiques à ceux du programme à
fusionner seront écrasées sur les nouvelles lignes. Les fichiers protégés
(sauvegardés par la commande SAVE,p)
ne peuvent PAS être fusionnés puis lancés par cette
commande.
10 FOR x=32 TO 255
20 PRINT x;CHR$(x),
30 NEXT
run
FONCTION: Convertit un <nombre entier> compris entre 0 et 255 en
une chaîne de caractères équivalente à l'aide du jeu de
caractères de l'AMSTRAD 6128, décrit dans la partie 3 du chapitre "Pour information... ". Les caractères 0
à 31 sont des caractères de contrôle. C'est pourquoi l'exemple ci-dessus affiche le
entiers compris entre 32 et 255.
COMMANDE: Efface toutes les variables, fichiers ouverts, tableaux et
fonctions utilisateur, le mode de calcul en BASIC s'effectue en radians.
Mots clés associés: Aucun
CLEAR INPUT
CLEAR INPUT
10 CLS
20 PRINT" tapez plusieurs lettres maintenant !"
30 FOR T=1 TO 50000
40 NEXT
50 CLEAR INPUT
run
COMMANDE: Efface toutes les données entrées à
partir du clavier, se trouvant dans le tampon.
Pour expérimenter cette commande, lancez le programme ci-dessus
et tapez les lettres lorsque vous y êtes invités. Supprimez ensuite la ligne 50
du programme, relancez-le et voyez la différence.
COMMANDE: Efface la fenêtre d'écran
spécifiée par le <numéro de canal> et lui
donne sa couleur de papier. En l'absence de <numéro de
canal>, 0 est pris par défaut.
COMMANDE: CONTinue
l'exécution du programme après un STOP, ou deux activations de la touche [ESC], si le programme n'a été ni
modifié ni protégé. Des commandes directes peuvent êtres tapées avant reprise du programme.
FONCTION: Copie un caractère à partir de la position du
curseur dans le canal (qui DOIT être spécifié). Le programme ci-dessus copie
un caractère de l'emplacement 1,1 (angle supérieur gauche) et le reproduit en 1,20. Si le
caractère lu n'est pas reconnu, une chaîne nulle est renvoyée.
10 CURSOR 1
20 PRINT "question ?";
30 a$=INKEY$:IF a$="" THEN 30
40 PRINT a$
50 CURSOR 0
run
COMMANDE: Active ou désactive l'indicateur système ou utilisateur. Les paramètres <indicateur système> et <indicateur utilisateur> doivent être sur 0 (inactif) ou 1 (actif). Dans la commande INKEY$ ci-dessus, le curseur a été rendu visible par fixation de l'indicateur système sur 1 (à la ligne 10).
Le curseur s'affiche lorsque les deux indicateurs sont sur 1. Le curseur système est automatiquement activé pour la commande INPUT et désactivé pour INKEY$.
Il est préférable de désactiver le curseur pour l'affichage d'un texte à l'écran.
Vous pouvez omettre l'un des indicateurs mais pas les deux. Si un
paramètre est omis, son état est inchangé.
10 FOR x=1 TO 4
20 READ nom$,prenom$
30 PRINT "Mr. ";nom$;" ";prenom$
40 NEXT
50 DATA DUPONT,Olivier,DURAND,François
60 DATA LAMIE,Frederic,MOULIN,Daniel
run
COMMANDE: Déclare des données constantes à
l'intérieur d'un programme. Ces données peuvent
être affectées à une variable par la commande READ, après quoi le pointeur passe à l'élément suivant de la liste DATA. La commande RESTORE peut servir à déplacer le pointeur sur une position spécifiée de DATA.
COMMANDE: Le BASIC permet au programme de DEFinir une FoNction
retournant une valeur unique et de l'utiliser. DEF
FN est la partie définition du mécanisme de création d'une fonction spécifique, travaillant d'une
manière similaire aux fonctions existantes du BASIC (COS, SIN, ATN, etc.).
Dans l'exemple ci-dessus la valeur de la fonction FNchrono est constamment mise
à jour, même si le programme est suspendu par [ESC] ou
arrêté par double [ESC], puis relancé avec CONT.
Mots clés associés: Aucun
DEFINT
DEFINT <liste de:
<lettres concernées>
10 DEFINT n
20 nombre=123.456
30 PRINT nombre
run
123
COMMANDE: Définit le type de variable par DEFaut, le type étant entier.
Lorsqu'une variable intervient sans marqueur (! % $), le type par défaut
est automatiquement mis en oeuvre. Cette commande définit le type par défaut des
variables selon la première lettre du nom de la variable. Elle peut être suivie d'une liste
d'initiales. Par exemple:
COMMANDE: Définit le type de variable par DEFaut, le type étant
réel. Lorsqu'une variable intervient sans marqueur (! % $), le type par défaut
est automatiquement mis en oeuvre. Cette commande définit le type par défaut des
variables selon la première lettre du nom de la variable. Elle peut être suivie d'une liste
d'initiales. Par exemple:
10 DEFSTR n
20 nom="Amstrad"
30 PRINT nom
run
Amstrad
COMMANDE: Définit le type de variable par DEFaut, le type étant une
chaîne. Lorsqu'une variable intervient sans marqueur (! % $), le type par défaut
est automatiquement mis en oeuvre. Cette commande définit le type par défaut des
variables selon la première lettre du nom de la variable. Elle peut être suivie d'une liste
d'initiales:
COMMANDE: Etablit le mode de calcul en DEGrés.
Par défaut, les fonctions SIN, COS, TAN et ATN considèrent que
l'argument qui leur est transmis est exprimé en radians. La commande reste valable jusqu'à ce qu'on utilise les
commandes RAD ou NEW, CLEAR, LOAD, RUN, etc.
LOAD "xyz.abc"
XYZ .ABC not found
Ready
PRINT DERR
146
FONCTION: Rapporte le dernier code d'
ERReur envoyé par le système de gestion de la Disquette. La valeur de DERR
peut servir à confirmer l'erreur détectée.
Consultez la liste des erreurs de disquettes pour plus d'informations.
10 CLS:TAG:EVERY 10 GOSUB 90
20 x1=RND*320:x2=RND*320
30 y=200+RND*200:c$=CHR$(RND*255)
40 FOR x=320-x1 TO 320*x2 STEP 4
50 DI
60 MOVE 320,0,1:MOVE x-2,y:MOVE x,y
70 PRINT" ";c$:FRAME
80 EI:NEXT:GOTO 20
90 MOVE 320,0:DRAW x+8,y-16,1:RETURN
run
COMMANDE: Désactive une interruption (autre que [ESC]
jusqu'à ce qu'elle soit réactivée directement par une commande EI ou indirectement par un [RETURN]
à la fin d'un sous-programme d'interruption GOSUB.
L'entrée dans un sous-programme d'interruption désactive
automatiquement les interruptions de priorité égale ou inférieure.
On l'utilise quand le programme doit s'exécuter sans
interruption, par exemple quand deux sous-programmes sont en compétition pour utiliser les
ressources de l'ordinateur (les ressources graphiques dans le programme ci-dessus, par exemple).
Pour de plus amples informations sur les interruptions consultez la
partie 2 du chapitre "A vos heures de loisir..."
10 CLS
20 DIM ami$(5),tel$(5)
30 FOR n=1 TO 5
40 PRINT "telephone No";n
50 INPUT"entrez le nom";ami$(n)
60 INPUT"entrez le numero de tel.";tel$(n)
70 PRINT
80 NEXT
90 FOR n=1 TO 5
100 PRINT n;ami$(n),tel$(n)
110 NEXT
run
COMMANDE: DIMensionne un
tableau. Cette commande alloue l'espace requis aux tableaux et spécifie le valeurs d'indices maximales. Le BASIC
doit connaître l'espace réservé pour un tableau, en l'absence de
spécification il prend 10 comme valeur par défaut.
Un tableau est identifié par une <variable
indicée>, à savoir un nom de variable accompagné d'un ensemble d'indices afin que chaque
"élément" du tableau ait sa propre valeur d'indice.
Une boucle FOR NEXT peut
servir à contrôler le tableau en traitant chaque
élément du tableau à tour de rôle.
La valeur minimale d'un indice est zéro (c'est le premier
élément du tableau).
Les tableaux peuvent être multi-dimensionnels et chaque
élément est référencé par sa position. Par exemple, dans un tableau dimensionné par:
DIM position$(20,20,20)
...un élément du tableau sera
référencé de la façon suivante:
COMMANDE: Trace une ligne sur l'écran entre la position du
curseur graphique et une position absolue spécifiée par les coordonnées x
et y. L' <encre> de traçage peut être spécifiée (entre 0 et 15)
Le <mode d'encre> facultatif détermine l'interaction de
l'encre sur l'affichage présent à l'écran. Les quatre <modes d'encres> sont les suivants:
0: Normal
1: XOR (OU exclusif)
2: AND (ET)
3: OR (OU)