CODINGCLEFS POUR AMSTRAD 1 ★ Système de base par Daniel Martin ★

Clefs pour Amstrad 1 : 03 - Instructions BasicCoding Clefs Pour Amstrad 1

INSTRUCTIONS BASIC
AFTER       ; AFTER X,[Y]  GOSUB  N

Appelle un sous-programme après avoir attendu X cinquantièmes de seconde. Y, facultatif,  indique quel  chronomètre doit être utilisé.   Il y en a quatre, numérotés de 0 à 3. Si   Y n'est pas précisé,  il est supposé être égal  à 0.

AUTO         ; AUTO  [N],[X]


Numérote automatiquement  les  lignes d'un programme en commençant par la   ligne N avec X comme incrément. Par défaut, N et X valent 10.

BORDER       ;BORDER  X,[Y]

X et Y représentent des numéros de couleurs (0 à 26). Permet de changer la couleur du bord de l'écran. Si  Y est précisé,  les deux couleurs alternent à la vitesse déterminée par la commande SPEED INK.

CALL          CALL ADR[,liste de paramètres]

Commande utilisée en Basic pour faire appel à un sous-programme en  langage machine situé à   l'adresse ADR. On peut passer une  liste de paramètres à ce sous-programme.

CAT           ;CAT

Lit la cassette et donne les noms des fichiers trouvés sans effacer le programme qui  se trouve en mémoire centrale.

CHAIN       ; CHAIN nom[,N]

Charge un programme de la cassette vers  la mémoire centrale en supprimant celui  qui  s'y trouve déjà,  puis   l'exécute en commençant par  la ligne numéro N, ou si N n'est pas précisé, par la   ligne portant  le plus petit numéro.

CLEAR          ;CLEAR

Efface les contenus de toutes les variables et de tous les fichiers.

CLG           ;CLG

Efface l'écran graphique.

CLOSEIN      ; CLOSEIN

Ferme un fichier sur cassette ouvert en entrée.

CLOSEOUT      ; CLOSEOUT

Ferme un fichier sur cassette ouvert en sortie.

CLS           ;CLS [#n]

Nettoie l'écran ou là fenêtre d'écran et le laisse coloré dans la couleur définie par la dernière instruction PAPER, n est un numéro de canal compris entre 0 et 7 et correspond à l'écran défini par l'instruction WINDOW.

CONT         ; CONT

Poursuit  l'exécution d'un programme après STOP, END ou *break* pour autant que le programme n'ait pas été modifié.

DATA          ;DATA donnée 1,donnée2,donnée3,...

Permet de stocker dans un programme une liste de constantes  lues par la fonction READ.

DEF FN      ; DEF FNf[(X,..)]=expr

Permet de définir une fonction utilisateur  ; f représente le nom de  la fonction,   (X,..) ses paramètres formels et expr son expression générale.

DEFINT      ; DEFINT  X-Y    DEFINT  X,Y,...

Définition d'un ensemble de variables dans   la plage X-Y ou suivant la liste X,Y,... comme étant de type ENTIER.

DEFREAL       ; DEFREAL  X-Y     DEFREAL  X,Y,...

Définition d'un ensemble de variables dans  la plage X-Y ou suivant  la  liste X,Y,... comme étant de type SIMPLE PRECISION.

DEFSTR       ; DEFSTR  X-Y      DEFSTR X,Y,...

Définition d'un ensemble de variables dans   la plage X-Y ou suivant la   liste X,Y,... comme étant de type ALPHANUMERIQUES (chaînes de caractères).

DEG           ; DEG

Etablit le mode de calcul en degrés. En standard,  les fonctions sinusoi'des utilisent les radians pour les données numériques. La commande DEG est désactivée par les commandes CLEAR et RAD ou par le chargement d'un autre programme.

DELETE      ; DELETE (N1.N2,...)    DELETE N1-N2

Efface du programme contenu en mémoire centrale soit la série de  lignes (N1.N2,...),  soit  les  lignes comprises entre la  ligne portant le numéro NI et la  ligne portant le numéro N2«

DI           ; Arrêt des interruptions. Toutes  les commandes

générant des  interruptions, à l'exception du BREAK, deviennent  inopérantes.

DIM         ; DIM var(n)     DIM var{n1,n2,..),var(n1,n2,..)

Dimensionnement d'un tableau  (var) de  1 à N dimensions. Par défaut, une variable est automatiquement dimensionnée à   10 (var(10)).

DRAW         ; DRAW  X,Y,A

Dessine une ligne sur l'écran à partir du curseur graphique vers la position de coordonnées (X,Y) avec la couleur numéro A.

DRAWR          ;DRAWR X,Y,A

Dessine une ligne sur l'écran à partir du curseur graphique vers une position relative de (+X,+Y) par rapport à ce curseur graphique avec la couleur numéro A.

EDIT         ; EDIT N

Passage en mode édition pour la ligne numéro N.

EI

Autorisation d'interruptions. Annule l'effet de la commande DI.

END               ;END

Instruction de fin d'exécution d'un programme.

ENT             ;   ENT  NE[,SE]

Enveloppe de ton. Permet d'introduire des vibratos sur la note   :  NE représente  le numéro d'enveloppe  (de 0 à   15) ;   SE comprend trois nombres par section  (compte de pas, taille de pas en fréquence, temps de pause), cinq sections peuvent être décrites.

ENV           ; ENV  NE[,SE]

Enveloppe de volume. Permet de définir le type de son :  NE représente le numéro d'enveloppe (de 0 à  15)  ; SE comprend trois nombres par section (nombre de pas, taille en volume du pas, temps pour chaque pas), cinq sections peuvent être décrites.

ERASE       ; ERASE liste de noms de variables

Permet de  libérer la place mémoire retenue par la commande DIM.

ERROR           ; ERROR N

N représente un nombre entier. Permet de repérer un type d'erreur déterminé et de décider d'une action définie lorsqu'elle a lieu.

EVERY       ; EVERY N,M GOSUB  NL

Signifie  :  tous  les N centièmes de seconde, comptés sur le chronomètre numéro M, effectuer le sous-programme situé à  la  ligne numéro NL. Quatre chronomètres sont disponibles et numérotés de 0 à 3. Cette commande permet de faire appel à un sous-programme à intervalles réguliers.

FOR             ; FOR var=D to F [STEP P]

Introduit une boucle. Toutes les instructions, comprises entre FOR var=D to  F [STEP P] et le NEXT var correspondant,   seront répétées pour toutes  les valeurs de war allant de D à F par pas de P (si   P n'est pas spécifié, de   1 en   1):
  10 FOR  I=1   TO  20 STEP  2
  20 PRINT   I,"  ",I*I
  30 NEXT   I

GOSUB          ;GOSUB NL

Appelle le sous-programme situé à la  ligne portant  le numéro NL.

GOTO         ; GOTO NL

Effectue un saut à  la  ligne portant le numéro NL.

IF           ; IF condition THEN instruction

Effectue  l'instruction qui   suit le THEN si   la condition suivant   IF est remplie. IF  A=3 THEN GOSUB   1000

INK         ; INK encre,couleur[,couleur]

Suivant le MODE choisi pour l'écran, un certain nombre d'encres (e) est possible.  INK permet de changer la couleur d'encre (encre) et la couleur de fond (couleur). Si  l'on spécifie deux couleurs de fond, elles alterneront tous  les cinquantième de seconde.

INPUT       ; INPUT [#numéro de canal,][; ][chaîne; ]

               ; liste de variables
              ; INPUT [#numéro de canal,][;][chaîne, ]
              ; liste de variables

Lit  les données venant du canal  précisé et   les affecte aux différentes variables nommées.  Le premier [;] supprime le passage à  la  ligne à la fin de ce que l'on tape. Le ";", après la chaîne, fait apparaître un ? tandis qu'une "," fait apparaître le message "?redo from start"  lorsque l'on a frappé quelque chose de faux. Quand un canal  cassette est précisé,   il  n'y a pas d'invite. Un élément du fichier sera affecté à chaque variable de  la  liste.

KEY         ; KEY nombre entier,chaîne de caractères

Permet de définir une nouvelle touche de fonction.  Le nombre entier définit  la touche à  laquelle sera affectée la chaîne de caractères.   11 vaut de  128 à   140,   la touche 0 du clavier est désignée par le nombre   128,   la touche  1 par  129 ...,   la touche 9 par  137,   la touche "." par  138, la touche "ENTER" par   139 et les touches "CTRL" et "ENTER" ensemble par  140.
Exemple
  KEY   132,"RUN"+CHR$(13)
Associe à  la touche 4 du clavier numérique la commande RUN suivie d'"ENTER".

KEY DEF       ; KEY DEF numéro de touche,répétition,num caractère

Change la valeur produite par une touche. KEY DEF 45,1,65 fait afficher A à  la touche J en permettant  la répétition  lorsque  l'on continue à pousser dessus.
KEY DEF 46,0,63 fait afficher ? à   la touche N sans permettre la répétition.

LET         ; LET variable=expression

Affecte à une variable le résultat de l'expression à droite du signe égal. LET A=500*3
En Basic AMSTRAD, on peut bien entendu se contenter d'écrire A=500*3.  LET est utilisé seulement dans  le cas où on désire qu'un programme reste compatible avec d'anciens programmes.

LINE INPUT    ;LINE   INPUT [#numéro de canal,][;]

               ;[chaîne;]variable

LINE   INPUT  "NOM";A$
Lit une ligne entière du canal   indiqué (0 par défaut).  Lorsqu'une virgule se trouve dans  la variable, elle y reste  inclue alors qu'un simple INPUT aurait scindé  la variable à cet endroit.

LIST          ;LIST [numéros de lignes][ ,#numéro de canal]

Liste le programme sur le canal désiré. 0 correspond à l'écran et 8 à l'imprimante. On peut arrêter le défilement sur écran en poussant ESC une fois et continuer en appuyant sur une autre touche.  En appuyant deux fois sur ESC, on retourne au mode direct.

LOAD          ;LOAD [nom de fichier][.adresse]

Charge un programme Basic de la cassette vers la mémoire centrale en remplaçant tout ce qui   s'y trouvait déjà.  Dans  le cas d'un programme binaire, on peut spécifier l'adresse de chargement.

LOCATE       ;LOCATE [#n° de canal,]X,Y

Place  le curseur de texte à  la position de coordonnées (X,Y) relative à l'origine de la fenêtre d'écran (WINDOW). Le point de coordonnées (1,1) est le point situé dans le coin supérieur gauche de la fenêtre.

MEMORY       ;MEMORY adresse

Permet de redéfinir  l'adresse de  l'octet  le plus élevé dans  l'espace mémoire utilisé par  le Basic.  En standard, cet octet se trouve à l'adresse  AB7F.

MERGE       ; MERGE ["nom de fichier"]

Identique à LOAD, mais n'effectue pas de NEW avant le chargement du programme. Si des numéros de ligne sont identiques,  leur contenu devient celui du nouveau programme. Si  le nom du fichier n'est pas précisé,   le premier programme rencontré sera  lu. Un programme sur cassette,  précédé du signe "!", est protégé et ne sera donc pas  lu.

MODE           ; MODE  N

Permet de changer de mode écran  (N=0,   1 ou 2). Efface  l'écran et se met en   INKO, quel  que soit le PAPER  INK utilisé à ce moment.  Lors de cette commande, toutes  les fenêtres de texte et de

graphique sont retournées à l'écran entier, tandis que les curseurs retournent à leur point d'origine.

MOVE           ; MOVE  X,Y

Positionne le curseur graphique à la position absolue de coordonnées  (X,Y).

MOVER         ; MOVER X,Y

Positionne le curseur graphique à une position de coordonnées (X,Y) relative à la position actuelle.

NEW       ; Nettoie la mémoire.

Les programmes et variables disparaissent, mais les définitions des touches  (KEY) et l'affichage restent.

NEXT           ; FOR  1=1  TO   10  :   NEXT  [I]

Détermine  la fin d'une boucle commencée par FOR.

ON...GOTO      ; ON n GOTO liste de numéros de  lignes
ON...GOSUB    ;ON n GOSUB  liste de numéros de  lignes

Pour ON A GOTO 100,110,130,132,170,300,320,1000 :
si A=1,   le branchement se fera à  la  ligne  100
si A=2,   le branchement se fera à la ligne 110
si A=7,   le branchement se fera à  la  ligne 320,...

ON BREAK GOSUB ON BREAK GOSUB numéro de  ligne

Appelle un sous-programme  lorsqu'il y a un BREAK en cours de programme. Un BREAK s'effectue en appuyant deux fois consécutives sur la touche ESC.

ON BREAK STOP

Annule  l'effet de l'instruction ON BREAK GOSUB.

ON ERROR GOTO  ON ERROR GOTO numéro de  ligne

Branche l'exécution à la ligne précisée lorsqu'une erreur se produit.

ON SQ GOSUB     ;ON SQ (n)  GOSUB nl

Exécute la sous-routine située à la ligne ni lorsque la queue correspondant au canal sonore (n) n'est plus pleine,  (n) ne peut valoir que 1,  2 ou 4 correspondant aux canaux respectifs A,  B ou C.

OPENIN      ; OPENIN "nom de fichier"

Ouvre un fichier cassette pour permettre au programme présent en mémoire centrale d'utiliser les données qui s'y trouvent. Si  le nom du fichier est précédé d'un "!",  les messages habituels de manipulation de la cassette n'apparaissent pas et le programme lit directement le premier bloc du fichier.

OPENOUT       ; OPENOUT "nom de fichier"

Ouvre un fichier sur cassette pour permettre au programme d'aller y déposer des données. Si  le nom du fichier est précédé d'un "!",  les messages habituels de manipulation de la cassette n'apparaissent pas. Le programme crée, de suite, son premier bloc de transfert (buffer) de 2 K et rien n'est écrit sur la cassette tant que le buffer n'est pas plein ou qu'une commande CLOSE-OUT n'a pas fermé le fichier.

ORIGIN        ORIGIN X,Y  [,G,D,H,B]

Détermine les coordonnées (X,Y) du point de départ du curseur graphique. Les éléments optionnels G,D,H,B permettent de définir une nouvelle fenêtre.

OUT           ; OUT numéro de port, nombre entier

Envoie le nombre entier vers le port spécifié. Le nombre entier peut être compris entre 0 et 255 et  le numéro du port entre 0 et 65535.

PAPER       ; PAPER [#n° du canal,] n° d'encre

Définit la couleur de fond des prochains caractères qui  seront écrits sur  l'écran.

PEN             ;PEN [#n° de canal,] n° d'encre

Définit la couleur des prochains caractères qui seront écrits sur l'écran.

PLOT          ;PLOT X,Y [,n° d'encre]

Affiche, à l'écran, le point de coordonnées (X,Y) dans  la couleur précisée par n° d'encre ou, à défaut, dans la couleur utilisée précédemment.

PLOTR       ; PLOTR X,Y [,n° d'encre]

Affiche,  à  l'écran,   le point de coordonnées (X,Y) relatives à  la position du curseur. On peut choisir sa couleur.

POKE         ; POKE adr,donnée

Inscrit Iâ donnée à l'adresse précisée.

PRINT       ; PRINT [cn° du canal,] données

Imprime les données sur  le canal  précisé (0 = écran par défaut).
PRINT USING permet de spécifier différents formats d1impression.

RAD

Etablit le mode en RADIANS.

RANDOMIZE    ; RANDOMIZE  [N]

Fixe la séquence des nombres pseudo-aléatoires à partir de N,  N étant un nombre entier compris entre 0 et G5535.  Par défaut,   N est égal   à 0.

READ         ; READ liste de variables

Lit   les données contenues dans les   lignes de OATAs *t les affecte aux différentes variables précisées.

RELEASE      ; RELEASE canaux sonores

Permet de libérer un canal   sonore en état d'attente.

REM

Introduit une ligne de commentaires.

RENUM       ; RENUM [nnl,][anl, ][d]

Renumérote  les   lignes du programme présent en mémoire centrale, nnl  = nouveau numéro de ligne, vaut  10 par défaut  ; anl   = ancien numéro de ligne,  vaut  le numéro de la première  ligne de programme par défaut  ; d = différence entre deux lignes,  vaut  10 par défaut.

RESTORE      ; RESTORE [numéro de  ligne]

Définit  la  ligne à  laquelle doit commencer  la lecture des DATAs.  Si  aucun numéro de  ligne n'est spécifié,  la lecture commence à la première ligne contenant des DATAs.

RESUME        RESUME [numéro de ligne de redépart]

Permet à  l'exécution du programme de continuer à partir de  la   ligne de redépart,  après qu'une erreur ait été décelée et corrigée par une commande  ON  ERROR GOTO.

RETURN

Retour au programme principal,  après  l'appel  d'un sous-programme, au moyen de l'instruction G05UB...

RUN               ;RUN [numéro de  ligne]

Exécute le programme présent en mémoire centrale à partir de la  ligne dont  le numéro est spécifié ou, à défaut, à partir de  la  ligne portant le plus petit numéro. RUN "nom de programme"
Charge le programme spécifié qui  est sur cassette et commence son exécution.  Si  on ne met pas de nom de programme  (RUN ""),   le Basic charge et exécute  le premier programme rencontré sur la cassette.

SOUND       ; SOUND canal,période[,durée[,volume[,enveloppe de volume[,enveloppe de ton]]]] 

Produit le son spécifié.

Canal   : les trois canaux A,  B et C peuvent être sélectionnés ensemble, deux à deux ou séparément.  Pour plus de compréhension,  voir les explications  au  sujet du  CHIPS AY3-8912. Période  : prend  les valeurs comprises entre 0 et 4095. La fréquence du son s'obtient en divisant 125.000 par la période.
Durée  : peut prendre  les valeurs comprises entre -32768 et +32767.  Prend  la valeur 20 par défaut. Si   la durée a une valeur positive, elle représente un nombre de centièmes de seconde ;  si elle a une valeur négative, elle représente le nombre de répétitions d'enveloppes de volume complètes.
Volume  : prend une valeur comprise entre 0 et 15. Par défaut, il prend la valeur 12 si une commande ENV a été formulée et  la valeur 4 sinon.
Enveloppe de volume  : peut prendre une valeur comprise entre 0 et   15 (0 par défaut) et indique le type d'enveloppe définie par l'instruction ENV.
Enveloppe de ton : peut prendre une valeur comprise entre 0 et 15 (0 par défaut) et indique le type de l'enveloppe de ton définie par  la commande ENT.

SPEED INK    ; SPEEK INK nombre entier, nombre entier

Permet de modifier la vitesse d'alternance des deux couleurs de fond dans   le cas où  l'on a défini deux couleurs  lors de la commande   INK : 10  INK  0,1,9 20 SPEED   INK  100,20

SPEED KEY    ; SPEED KEY attente,  période de répétition

Permet de régler le temps pendant lequel on doit pousser sur une touche pour qu'elle se répète (attente) et  la vitesse de répétition  (période de répétition). Ces réglages se font au cinquantième de seconde avec une valeur par défaut de 10,10.

SPEED WRITE    SPEED WRITE n

n = 1 ou 0
Permet de modifier la vitesse d'enregistrement d'un programme sur cassette. Au moment de la lecture (LOAD),  le CPC464 établit automatiquement la vitesse correcte de lecture. Pour n = 0,  la vitesse d'écriture sera de  1000 baud ; pour n =  1, elle sera de 2000 baud. Par défaut, n = 0.

STOP

Permet de stopper  l'exécution d'un programme tout en   laissant à l'utilisateur la possibilité de  le continuer au moyen de la commande C0NT.

SYMBOL      ; SYMBOL numéro du caractère,   liste de caractères

Permet de redéfinir le caractère dont  le numéro est indiqué. On peut redéfinir tous  les caractères compris entre 240 et  255. Si on désire en redéfinir d'autres, voir la commande SYMBOL AFTER.

SYMBOL AFTER     SYMBOL AFTER nombre entier

Fixe le nombre de caractères que l'on désire redéfinir. Vaut 240 en standard.

TAG             ; TAG [#numéro de canal]

Permet d'inscrire des caractères à  la position du curseur graphique. Des textes pourront ainsi être mélangés à des graphiques.
  10 MOVE 200,300
  20 PRINT "COUCOU"
  30 TAG
  40  PRINT  "BONJOUR"
"COUCOU" s'inscrira à la position du curseur de texte tandis que "BONJOUR" s'inscrira à   la position du curseur graphique  (200,300).

TAGOFF       ;TAGOFF [#numéro de canal]

Annule les effets de la commande TAG sur le canal précisé  (0 par défaut) et renvoie le texte là ou était le curseur de texte avant  la commande TAG.

TRON          ;Validation du mode TRACE

TROFF       ; Dévalidation du mode TRACE

En mode TRACE,   lors de l'exécution d'un programme, tous  les numéros de lignes par  lesquelles passe l'exécution apparaissent à  l'écran. Ce mode est très utile lors de la mise au point d'un programme.

WAIT          ;WAIT nPORT, octet de masque, octet de sélection

Permet d'attendre qu'une combinaison déterminée de bits présente sur un port atteigne une valeur déterminée. Cette instruction lit le contenu du port nPORT,   lui  applique une fonction ET LOGIQUE avec l'octet de masque, puis une fonction OU EXCLUSIF avec l'octet de sélection et ne rend la main au programme que  lorsque  le résultat est différent de 0. La fonction de masque permet d'isoler le ou  les bit(s) à tester.  La fonction de sélection permet d'inverser l'état à tester.

WEND

Termine  la boucle commencée par la commande WHILE.

WHILE       ; WHILE expression logique

WHILE X>2 exécutera les lignes de programme entre WHILE et WEND tant que  l'expression  logique sera vraie (ici, tant que X sera plus grand que 2). Le programme suivant :
  10 X=4:Y=0
  20 WHILE X<>Y
  30 INPUT "combien font 2 et 2 ";Y
  40 WEND
  50 PRINT  "bravo":END
fera exactement  la même chose que le programme   :
  10 X=4
  20 INPUT "combien font 2 et 2 ";Y
  30 IF X<>Y THEN GOTO 20
  40 PRINT "bravo":END
L'utilité des  instructions WHILE et WEND n'est évidente que si  l'on pratique la programmation structurée. En effet, un des principes de ce type de programmation est de proscrire les instructions de branchement  (G0T0,..)  afin de rendre les programmes plus  lisibles.

WIDTH       ; WIDTH nombre entier

Indique au programme Basic  la  largeur des  lignes de l'imprimante en nombre de caractères.

WINDOW         ; WINDOW [#n° de canal,] gauche, droite,  haut,  bas

Permet de définir une fenêtre de texte pour un canal donné de  l'écran.   Les canaux de 0 à  7 peuvent être utilisés pour définir des fenêtres de texte à l'écran.

WINDOW SWAP    ; WINDOW SWAP numéro de canal,  numéro de canal

Permet d'intervertir les contenus de deux fenêtres.

WRITE          ;WRITE [#n° de canal,][liste à écrire]

Inscrit sur le canal précisé (0 par défaut)  les expressions voulues sans rien changer à la ponctuation.
WRITE "COUCOU",  23,   5 écrira à   l'écran   : "COUCOU",   23,  5

XPOS

Donne  l'abscisse (position horizontale) du curseur graphique.

YPOS

Donne  l'ordonnée (position verticale) du curseur graphique.

ZONE             ;ZONE nombre entier

Permet de modifier l'espace compris entre deux tabulations automatiques obtenues par une virgule. Cette tabulation vaut 13 par défaut. ZONE 2:PRINT  1,2,3

★ ANNÉE: ???
★ AUTEUR(S): ???

Page précédente : Clefs pour Amstrad 1 : 02 - Caracteristiques Generales
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.732-desktop/c
Page créée en 438 millisecondes et consultée 5443 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.