CpcAlive est un
environnement
de programmation
compatible
Amstrad CPC
pour création
d'animations
 graphiques.






256 couleurs avec l'émulateur CpcAlive
Cpc en ligne

La mémoire

Les vecteurs systèmes

Les variables système

La gestion des disquettes

La palette du cpc 6128 par défaut

Les couleurs affectées aux
crayons du cpc 6128 par défaut


Les messages d'erreur du basic Cpc

Z80: opcodes et programmation
Installateur CpcAlive pour
Windows
& DosBox


Documentation CpcAlive





































































Español          English


Dernières revues (version Dosbox)
V1.18 - 27/01/2025 - création d'animations au format GIF 320*200*256 couleurs + corrections
V1.17 - 07/01/2024 - nouveau mode écran 1024*768*256couleurs(MODE 3)
V1.16 - 16/12/2014 - correction assembleur Z80
V1.15 - 30/11/2014 - corrections
V1.14 - 20/11/2014 - affiche les fichiers sources dans le déboggeur Z80
V1.13 - 20/9/2014 - amélioration de la commande basic TRON (débogueur BASIC) + corrections
V1.12 - 02/3/2014 - chargement de sources Basic avec étiquettes + corrections

BASIC AMSTRAD CPC6128

(issue du manuel de l'utilisateur)



(cliquez dans la marge de gauche pour revenir ici)


ABS, AFTER, AND, ASC, ATN, AUTO

BIN$, BORDER, BREAK

CALL, CAT , CHAIN, CHAIN MERGE, CHR$, CINT, CLEAR, CLEAR INPUT, CLG, CLOSEIN, CLOSEOUT,   CLS, CONT, COPYCHR$, COS, CREAL, CURSOR

DATA, DEC$, DEF FN, DEFINT, DEFREAL, DEFSRT, DEG, DELETE, DERR, DI, DIM, DRAW, DRAWR

EDIT, EI, ELSE, END, ENT, ENV, EOF, ERASE, ERL, ERR, ERROR, EVERY, EXP

FILL, FIX, FN, FOR, FRAME, FRE

GOSUB, GOTO, GRAPHICS PAPER, GRAPHICS PEN

HEX$, HIMEM

IF, INK, INKEY, INKEY$, INP, INPUT, INSTR, INT

JOY

KEY, KEY DEF

LEFT$, LEN, LET, LINE INPUT, LIST, LOAD, LOCATE, LOG, LOG10, LOWER$

MASK, MAX, MEMORY, MERGE, MID$, MID$, MIN, MOD, MODE, MOVE, MOVER

NEW, NEXT, NOT

ON BREAK CONT, ON BREAK GOSUB, ON BREAK STOP, ON ERROR GOTO, ON <expression> GOSUB,  ON <expression> GOTO, ON SQ GOSUB, OPENIN, OPENOUT, OR, ORIGIN, OUT

PAPER, PEEK, PEN, PI, PLOT, PLOTR, POKE, POS, PRINT, PRINT SPC, PRINT TAB, PRINT USING

RADRANDOMIZE, READ, RELEASE, REM, REMAIN, RENUM, RESTORE, RESUME, RESUME NEXTRETURN, RIGHT$, RND, ROUND, RUN", RUN
SAVE, SGN, SIN, SOUND, SPACE$, SPC, SPEED INK, SPEED KEY, SPEED WRITE, SQ, SQR, STEP, STOP, STR$, STRING$SWAPSYMBOL, SYMBOL AFTER

TAB, TAG, TAGOFF, TAN, TEST, TESTR, THEN, TIME, TO, TROFF, TRON

UNT, UPPER$, USING

VAL, VPOS

WAIT, WEND, WHILE, WIDTH, WINDOW, WINDOW SWAP, WRITE

XOR, XPOS

YPOS

ZONE



INTRODUCTION

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.

Les différents indicateurs de type de données:

% Entiers
!   Réels (par défaut)
$   Chaîne alphabétique et numérique (alphanumérique)

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.

Mots clés associés: SGN




AFTER

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.

Mots clés associés: EVERY, REMAIN, RETURN




AND

<argument> AND <argument>

    IF "alain" < "bernard" AND "chien" > "chat" THEN PRINT "vrai" ELSE PRINT "faux"
    vrai
    IF "bernard" < "alain" AND "chat" > "chien" THEN PRINT "vrai" ELSE PRINT "faux"
    faux
    IF "alain" < "bernard" AND "chat" > "chien" THEN PRINT "vrai" ELSE PRINT "faux"
    faux
    ....
    PRINT 1 AND 1
    1
    PRINT 0 AND 0
    0
    PRINT 1 AND 0
    0

OPERATEUR: Exécute des opérations booléennes par bits sur les nombres entiers. Est égal à 0 sauf lorsque les deux bits d'arguments sont égaux à 1.

Mots clés associés: OR, NOT, XOR.




ASC

ASC(<chaîne alphanumérique>)

    PRINT ASC("x")
        120

FONCTION: Donne la valeur numérique du premier caractère d'une chaîne de caractères

Mots clés associés: CHR$




ATN

ATN(<expression numérique>)

    PRINT ATN(1)
        0.785398163

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.

Mots clés associés: COS, DEG, RAD, SIN, TAN




AUTO

AUTO [<numéro de ligne>][,<incrément>]

    AUTO 100,50

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.

Mots clés associés:  DEC$, HEX$, STR$




BORDER

BORDER <numéro de couleur>[,<numéro de couleur>]

    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.

Mots clés associés:  SPEED INK




BREAK

(Voir ON BREAK CONT, ON BREAK GOSUB, ON BREAK STOP)




CALL

CALL <adresse>[,<liste de:<paramètre>]

    CALL 0

COMMANDE: Permet à un sous-programme externe d'être appelé à partir du BASIC. L'exemple ci-dessus réinitialise complètement l'ordinateur.

A utiliser avec précaution.

Mots clés associés: UNT




CAT

CAT

    CAT

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.

Mots clés associés:  LOAD, RUN, SAVE




CHAIN

CHAIN <nomfich>[,<numéro de ligne>]

    CHAIN "testprog.bas",350

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.

Mots clés associés: CHAIN MERGE, LOAD, MERGE




CHAIN MERGE

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.

Mots clés associés:  LOAD, MERGE, DELETE, CHAIN




CHR$

CHR$
(<nombre entier>)

    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.

Mots clés associés: ASC




CINT

CINT(<expression numérique>)

    10 n=1.9999
    20 PRINT CINT(n)
    run
     2

FONCTION: Convertit une valeur numérique en un entier arrondi compris entre -32768 et 32767.

Mots clés associés:
CREAL, FIX, INT, ROUND, UNT




CLEAR

CLEAR

    CLEAR

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 3000
    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.

Mots clés associés:  INKEY, INKEY$, JOY



CLG

CLG [<encres>]

    LOCATE 1,20
    CLG 3

COMMANDE: Efface l'écran graphique et le ramène à sa couleur de fond. Si <encre> est spécifié, le fond est de la couleur fixée en accord.

Mots clés associés: CLS, GRAPHICS PAPER, INK, ORIGIN



CLOSEIN

CLOSEIN

    CLOSEIN

COMMANDE: Ferme tout fichier d'entrée ouvert sur la disquette (voir OPENIN).

Mots clés associés: EOF, OPENIN



CLOSEOUT

CLOSEOUT

    CLOSEOUT

COMMANDE: Ferme tout fichier ouvert en sortie sur la disquette. (voir OPENOUT).

Mots clés associés: OPENOUT



CLS

CLS [# <numéro de canal>]

    10 PAPER #2,3
    20 CLS #2
    run

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.

Mots clés associés: CLG, INK, PAPER, WINDOW


CONT

CONT

    CONT

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.

Mots clés associés: STOP


COPYCHR$

COPYCHR$
(# <numéro de canal>)

    10 CLS
    20 PRINT"coin superieur"
    30 LOCATE 1,1
    40 a$=COPYCHR$(#0)
    50 LOCATE 1,20
    60 PRINT a$
    run

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.

Mots clés associés:  LOCATE



COS

COS
(<expression numérique>)

    DEG
    PRINT COS(45)
       0.707106781

FONCTION: Calcule le COSinus de
l'<expression numérique>.

DEG et RAD peuvent servir à exprimer l'argument en degrés ou en radians, respectivement.

Mots clés associés:  ATN, DEG, RAD, SIN



CREAL

CREAL 
(<expression numérique>)

    10 a=PI
    20  PRINT CINT(a)
    30 PRINT CREAL(a)
    run
       3
       3.14159265

FONCTION: Convertit l'
<expression numérique> en nombre réel.

Mots clés associés:  CINT



CURSOR

CURSOR
[<indicateur système>)][ , <indicateur utilisateur>]

    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é.

Mots clés associés:  LOCATE



DATA

DATA
 <liste de:<constante>

    10 FOR x=1 TO 4
    20 READ nom$,prenom$
    30 PRINT "Mr. ";nom$;" ";prenom$
    40 NEXT
    50 DATA DUPONT,Olivier,DURAND,Francois
    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.

Mots clés associés:  READRESTORE



DEC$

DEC$
(<expression numérique>,<modèle de format>)

    PRINT DEC$(10^ 7,"££########,.##")
       £10,000,000.00

FONCTION: Donne une représentation DECimale de l'expression numérique, utilisant le <modèle de format> indiqué.

Le modèle de format ne peut contenir QUE les caractères: + - £ $ * # , . ^

L'emploi de ces "indicateurs de format" est décrit au mot clé PRINT USING.

Mots clés associés:  BIN$, HEX$, PRINT USING, STR$



DEF FN

DEF FN <nom>[(<paramètres formels>)]=<expression>

    10 t=TIME/300
    20 DEF FNchrono=INT(TIME/300-t)
    30 EVERY 100 GOSUB 50
    40 GOTO 40
    50 PRINT"Le programme tourne depuis";
    60 PRINT FNchrono;"secondes"
    70 RETURN
    run

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:

      DEFINT a,b,c

...ou d'une fourchette d'initiales:

    DEFINT a-z

Mots clés associés: DEFREAL, DEFSTR



DEFREAL

DEFREAL <liste de: <lettres concernées>

    DEFREAL x,a-f

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:

    DEFREAL a,b,c

...ou d'une fourchette d'initiales:

    DEFREAL a-z

Mots clés associés: DEFINT, DEFSTR



DEFSRT

DEFSTR
<liste de: <lettres concernées>

    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:

    DEFSTR a,b,c

...ou d'une fourchette d'initiales:

    DEFSTR a-z

Mots clés associés: DEFINT, DEFREAL



DEG

DEG

    DEG

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.

Mots clés associés: ATN, COS, RAD, SIN, TAN



DELETE

DELETE <ensemble de lignes>

    DELETE 100-200

COMMANDE: Efface une partie du programme défini dans l' <ensemble de lignes>.

Il n'est pas nécessaire d'indiquer la ligne de départ ou la ligne d'arrivée pour effacer le programme "depuis le début" ou "jusqu'à la fin".

    DELETE -200

...ou:

    DELETE 50-

...ou:

    DELETE

...qui efface la totalité du programme.

Mots clés associés:  CHAIN MERGE, RENUM



DERR

DERR

    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.

Mots clés associés: ERL, ERR, ERROR, ON ERROR GOTO, RESUME



DI

DI

    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).

Mots clés associés: AFTER, EI, EVERY, REMAIN



DIM

DIM <liste de: <variable indicée>

    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:

    position$(4,5,6)

Mots clés associés: ERASE



DRAW

DRAW <coordonnée x>,<coordonnée y> [,[<encre>][,<mode d'encre>]]

    10 MODE 0:BORDER 0:PAPER 0:INK 0,0
    20 x=RND*640:y=RND*400:z=RND*15
    30 DRAW x,y,z
    40 GOTO 20
    run

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)

Mots clés associés:  DRAWR, GRAPHICS PEN, MASK



DRAWR

DRAWR
<décalage x>,<décalage y> [,[<encre>][,<mode d'encre>]]

    10 CLS:PRINT"tu montes au premier !?"
    20 MOVE 0,350:FOR n=1 to 8
    30 DRAWR 50,0
    40 DRAWR 0,-50
    50 NEXT:MOVE 348,0:FILL 3
    60 GOTO 60
    run

COMMANDE: Trace une ligne sur l'écran entre la position du curseur graphique jusqu'à la position spécifiée par les <décalages> 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)

Mots clés associés:  DRAW, GRAPHICS PEN, MASK



EDIT

EDIT
<numéro de ligne>

    EDIT 20

COMMANDE: Affiche la ligne du programme ainsi que le curseur, prêt à l'édition.

Mots clés associés: AUTO, LIST



EI

EI

    EI

COMMANDE: Active (Enables) une Interruption désactivée par DI.

Des interruptions désactivées par un sous-programme d'interruption sont automatiquement rétablies par la commande RETURN, en fin de programme.

Mots clés associés: AFTER, DI, EVERY, REMAIN



ELSE

(voir IF)



END

END

    END

COMMANDE: Met fin à l'exécution d'un programme et rétablit le mode direct. Un programme peut contenir un nombre quelconque de commandes END (elle est implicite à la fin de tout programme BASIC A
MSTRAD).

Mots clés associés: STOP



ENT

ENT <numéro d'envelppe> [,<section d'enveloppe>]
[,<section d'enveloppe>]
                                        
[,<section d'enveloppe>] [,<section d'enveloppe>]
                                                                                                 [,<section d'enveloppe>]

    10 ENT 1,10,-50,10,10,50,10
    20 SOUND 1,500,200,10,,1
    run

COMMANDE: Définit l'ENveloppe de Tonalité spécifiée par le <numéro d'enveloppe> (entre 1 et 15) utilisée avec la commande SOUND. Si le <numéro d'enveloppe> est négatif (entre -1 et -15) l'enveloppe se répète jusqu'à la fin de la durée du son fixée par la commande SOUND.

Chaque <section d'enveloppe> peut contenir 2 ou 3 paramètres:

Dans le cas de trois paramètres, ceux-ci sont:

<nombre de pas> , <amplitude du pas> , <durée du pas>.

Paramètre 1: <nombre de pas>

Spécifie le
<nombre de pas> de variation de tonalité à l'intérieur de la section d'enveloppe. Par exemple, dans une section de note durant 10 secondes, vous pouvez fixer 10 pas de 1 seconde chacun. Dans ce cas, le <nombre de pas> sera 10.

Le
<nombre de pas> peut varier de 0 à 239.

Paramètre 2: <amplitude du pas>

Doit être compris entre -128 et +127. Les pas négatifs augmentent la hauteur de la note, les pas positifs l'abaissent. La période sonore minimale est de 0. Toutes les périodes sonores disponibles sont présentées au chapitre "Pour information...".

Paramètre 3: <durée du pas>

Spécifie la durée d'un pas, par unités de 0.01 seconde. Elle peut varier de 0 à 255 (0 a la valeur 256), la durée maximale d'un pas est donc de 2,56 secondes. Si vous n'utilisez que deux paramètres, ce sont:

<période sonore>,<durée du pas>


Paramètre 1
:
<période sonore>

Donne la nouvelle valeur de la période. (Voir le paramètre 2 de la commande SOUND)

Paramètre 2: <durée du pas>

Spécifie la durée du pas unique en unités de 0,01 secondes. Peut varier entre 0 et 255 (0 ayant la valeur 256), soit 2,56 secondes.


GÉN
ÉRALITÉS

La durée totale des pas ne doit pas dépasser le paramètre <durée> de la commande SOUND, car le son se termine alors avant d'avoir traversé la totalité des pas. (Le reste de l'enveloppe de tonalité est alors ignoré). De même, si la <durée> de la commande SOUND dépasse la durée totale des pas, le son se poursuit après avoir traversé tous les pas et demeure constant à la tonalité finale.

La commande ENT peut s'accompagner de 5 <sections d'enveloppe> différentes (chacune constituée des 2 ou 3 paramètres ci-dessus).

Le premier pas d'une enveloppe de tonalité s'exécute immédiatement.

Chaque fois qu'une nouvelle enveloppe est attribuée à un numéro d'enveloppe déterminé, la définition précédente est perdue.

Un <
numéro d'enveloppe> sans <section d'enveloppe> annule toutes les spécifications précédentes.

Mots clés associés: ENV, SOUND



ENV

ENV <numéro d'envelppe> [,<section d'enveloppe>]
[,<section d'enveloppe>]
                                        
[,<section d'enveloppe>] [,<section d'enveloppe>]
                                                                                                 [,<section d'enveloppe>]

    10 ENV 1,15,-1,10,15,,10
    20 SOUND 1,200,300,15,1
    run

COMMANDE: Définit l'ENveloppe de Volume correspondant au <numéro d'enveloppe> (entre 1 et 15), utilisé avec la commande SOUND.

Elle peut contenir 2 ou 3 paramètres:

Pour 3 paramètres:

<nombre de pas>,<amplitude du pas>,<durée du pas>.

Paramètre 1:
<nombre de pas>

Spécifie le
<nombre de pas> de volume qu'un son doit traverser dans la section d'enveloppe. Par exemple, dans une section de 10 secondes, vous pouvez fixer 10 pas de volume d'une seconde. Dans ce cas, le <nombre de pas> est égal à 10.

Le
<nombre de pas> peut varier de 0 à 127.

Paramètre 2: <amplitude du pas>

Peut faire varier le volume de 0 à 15 par rapport au pas précédent. Les 16 volumes différents sont les mêmes que ceux de la commande SOUND. Le paramètre
<amplitude du pas> peut cependant varier de -128 à +127. Le volume revenant à 0 après avoir atteint 15.

Paramètre 3: <durée du pas>

Spécifie la durée d'un pas, par unités de 0.01 seconde. Peut varier de 0 à 255 (0 a la valeur 256), soit 2,56 secondes.


Pour 2 paramètres:

<enveloppe matérielle>,<période de l'enveloppe>

Paramètre 1:
<enveloppe matérielle>

Spécifie la valeur à envoyer au registre d'enveloppe contenu dans le générateur sonore.

Paramètre 2: <période de l'enveloppe>

Spécifie la valeur à envoyer aux registres de période d'enveloppe contenus dans le générateur sonore.

L'utilisation d'enveloppes matérielles suppose la connaissance du matériel. Si vous ne l'avez pas, il vaut mieux utiliser une enveloppe logicielle intégrant un paramètre <durée du pas> adéquat.

GÉNÉRALITÉS

La durée totale des pas ne doit pas dépasser le paramètre <durée> de la commande SOUND, le son se termine alors avant d'avoir traversé tous les pas de volume (le reste de l'enveloppe est ignoré).

De même, si le paramètre de  <durée> de la commande SOUND dépasse la durée totale des pas, le son se poursuit après avoir traversé tous les pas de volume et demeure constant au volume final.

La commande ENV peut contenir 5 <sections d'enveloppe> différentes (constituées des 2 ou 3 paramètres ci-dessus).

Le premier pas d'une enveloppe de tonalité s'exécute immédiatement.

Chaque fois qu'une nouvelle enveloppe est attribuée à un numéro d'enveloppe déterminé, la définition précédente est perdue.

La spécification d'un <
numéro d'enveloppe> sans <section d'enveloppe> annule toutes les valeurs précédentes.

Mots clés associés: ENT, SOUND



EOF

EOF

    10 OPENIN"ex1.bas"
    20 WHILE NOT EOF
    30 LINE INPUT,#9,a$
    40 PRINT a$
    50 WEND
    60 CLOSEIN
    run

FONCTION: Pour tester l'état d'un fichier ouvert. Donne -1 (vrai) si l'on est en fin de fichier (End Of File) ou si aucun fichier n'est ouvert, sinon donne 0 (faux).

Mots clés associés: OPENIN, CLOSEIN



ERASE

ERASE <liste de:<nom de variable>

    DIM a(100),b$(100)
    ERASE a,b$

COMMANDE: Quand un tableau n'est plus nécessaire, il peut être effacé (ERASE) afin de libérer la mémoire pour d'autres utilisations.

Mots clés associés: DIM



ERL

ERL

    10 ON ERROR GOTO 30
    20 GOTO 1000
    30 PRINT"L'erreur est en ligne";ERL
    40 END
    run

FONCTION: Donne le numéro de la ligne de la dernière erreur rencontrée. Dans l'exemple ci-dessus, l'erreur de la ligne 20 est indiquée par la fonction ERL.

Mots clés associés: DERR, ERR, ERROR, ON ERROR GOTO, RESUME



ERR

ERR

    GOTO 500
    Line does not exist
    Ready
    PRINT ERR
       8

FONCTION: Donne le numéro de la dernière ERReur détectée. Voir la liste des messages d'erreur. Dans l'exemple ci-dessus, le numéro d'erreur 8 correspond à "Line does not exist" (Ligne non existante).

Mots clés associés: DERR, ERL, ERROR, ON ERROR GOTO, RESUME


ERROR

ERROR <nombre entier>

    10 IF INKEY$="" THEN 10 ELSE ERROR 17
    run

COMMANDE: Décide une action consécutive à une erreur numérotée. Voir liste des messages d'erreur 1 à 32. L'action est la même que celle prévue par le BASIC en cas d'erreur réelle, faisant appel à un sous programme de traitement d'erreur, le cas èchéant, et rapportant le valeurs appropriées d'ERR et ERL.

ERROR accompagné d'un <nombre entier> compris entre 33 et 255 peut servir à créer des messages d'erreur personnalisés tels que:

    10 ON ERROR GOTO 100
    20 INPUT"entrez un caractere ";a$
    30 IF LEN(a$)<>1 THEN ERROR 100
    40 GOTO 20
    100 IF ERR=100 THEN 110 ELSE 130
    110 PRINT CHR$(7)
    120 PRINT"j'ai dit UN caractere !"
    130 RESUME 20
    run

Mots clés associés: ERL, ERR, ON ERROR GOTO, RESUME



EVERY

EVERY <période du chronomètre>[,<numéro du chronomètre>] GOSUB <numéro de ligne>

    10 EVERY 50,1 GOSUB 30
    20 GOTO 20
    30 SOUND 1,20
    40 RETURN
    run

COMMANDE: Appelle un sous-programme du BASIC à intervalles réguliers. La <période du chronomètre> spécifie l'intervalle par unités de 0,02 seconde. Le <numéro de chronomètre> (compris entre 0 et 3) spécifie lequel des quatre chronomètres utiliser.
Le chronomètre 3 correspond à la priorité supérieure et le 0 à la priorité inférieure. Chaque chronomètre peut être associé à un sous-programme.

Mots clés associés: AFTER, REMAIN



EXP

EXP
(<expression numérique>)

    PRINT EXP(6.876)
       968.743625

FONCTION: Calcule "e" à la puissance donnée par
l'<expression numérique> où "e" est égal à 2,7182818 environ, le nombre dont le logarithme naturel est 1.

Mots clés associés: LOG



FILL

FILL <encre>

    10 MODE 0
    20 FOR n=1 TO 500
    30 PRINT "O";
    40 NEXT
    50 coulstylo=2+RND*13
    60 FILL coulstylo
    70 GOTO 50
    run

COMMANDE: Remplit une zone arbitraire de l'écran graphique. Les bords de la zone sont délimités par les lignes dessinées avec l'encre du stylo en cours ou avec l'encre du fond (comprise entre 0 et 15). Le remplissage part de la position du curseur graphique. Si celui-ci se trouve sur un bord, rien n'est rempli.

Mots clés associés: GRAPHICS PEN



FIX

FIX 
(<expression numérique>)

    PRINT FIX(9.99999)
       9

FONCTION: Enlève la partie décimale d'une
<expression numérique> en arrondissant toujours par défaut.

Mots clés associés: CINT, INT, ROUND



FN

(voir DEF FN)



FOR

FOR <variable simple>=<début> TO <fin> [STEP <incrément>]

    10 FOR n=2 TO 8 STEP 2
    20 PRINT n;
    30 NEXT n
    40 PRINT",qui va augmenter !"
    run

COMMANDE: Exécute la partie du programme se trouvant entre les mots clés FOR et NEXT, autant de fois que l'on peut ajouter l' <incrément> à la <variable simple> en partant du <début> jusqu'à la <fin>. Si l' <incrément> est omis, il prend implicitement la valeur 1.

La valeur de l' <incrément> peut être négative. Dans ce cas la valeur du paramètre <début> doit être supérieure à celle du paramètre <fin>, faute de quoi la variable ne peut être incrémentée.

Les boucles FOR...NEXT peuvent être imbriquées.

L'affectation du nom de variable à la commande NEXT est facultative car le BASIC détermine automatiquement la commande NEXT à laquelle est associée une commande FOR.

Mots clés associés: NEXT, STEP, TO



FRAME

FRAME

    10 MODE 0
    20 PRINT "sans FRAME"
    30 TAG
    40 MOVE 0,200
    50 FOR x=0 TO 500 STEP 4
    60 IF f=1 THEN FRAME
    70 MOVE x,200
    80 PRINT" ";CHR$(143);
    90 NEXT
    100 IF f=1 THEN RUN
    110 CLS
    120 TAGOFF
    130 PRINT"avec FRAME"
    140 f=1
    150 GOTO 30
    run

COMMANDE: Synchronise l'écriture des graphiques avec les trames vidéo. Il en résulte un mouvement plus harmonieux des caractères ou des graphiques à l'écran sans distorsion et sans scintillement.

Mots clés associés: TAG, TAGOFF



FRE

FRE
(<expression numérique>)
FRE
(<chaîne alphanumérique>)

    PRINT FRE(0)
    PRINT FRE(" ")

FONCTION: Indique l'espace disponible en mémoire. La forme FRE (" ") force l'ordinateur à mettre de l'ordre avant de donner la valeur de l'espace disponible.

REMARQUE: Le BASIC n'exploite que la BANQUE 0 de la mémoire.

Mots clés associés: HIMEM, MEMORY



GOSUB

GOSUB
<numéro de ligne>

    GOSUB 210

COMMANDE: Appelle un sous-programme BASIC en se branchant sur la ligne indiquée. La fin du sous-programme est marquée par la commande RETURN renvoyant le programme à l'instruction suivant la commande GOSUB.

Mots clés associés: RETURN



GOTO

GOTO
<numéro de ligne>

    GOTO 90

COMMANDE: Se branche sur le numéro de ligne indiqué.

Mots clés associés: Aucun



GRAPHICS PAPER

GRAPHICS PAPER <encre>

    10 MODE 0
    20 MASK 15
    30
GRAPHICS PAPER 3
    40 DRAW 640,0
    run

COMMANDE: Détermine l' <encre> du fond graphique. Lors du traçage de lignes, le fond n'est pas visible. Dans l'exemple ci-dessus, la commande MASK permet le traçage d'une ligne en tirets et la visualisation du fond graphique.

L'encre du fond (entre 0 et 15) sert à la zone "paper" sur laquelle s'affichent les caractères, lorsque TAG fonctionne, et fait office de valeur par défaut lors de l'effacement des fenêtres graphiques à l'aide de CLG.

Mots clés associés: CLG, GRAPHICS PEN, INK, MASK, TAG, TAGOFF



GRAPHICS PEN

GRAPHICS PEN [<encre>][,<mode du fond>]

    10 MODE 0
    20 GRAPHICS PEN 15
    30 MOVE 200,0
    40 DRAW 200,400
    50 MOVE 639,0
    60 FILL 15
    run

COMMANDE: Fixe l' <encre> (entre 0 et 15) pour le dessin des lignes et le positionnement des points. Le <mode du fond> peut également être fixé:

0: Fond opaque
1: Fond transparent

(Le fond transparent a une influence sur le fond graphique des caractères écrits avec TAG et les espaces en lignes pointillées).

Vous pouvez omettre l'un des paramètres mais pas les deux. Si l'un des paramètres est omis, la valeur spécifiée reste inchangée.

Mots clés associés: GRAPHICS PAPER, INK, MASK, TAG, TAGOFF



HEX$

HEX$ (<nombre entier sans signe>[,<largeur de zone>])

    PRINT HEX$(255,4)
    00FF

FONCTION: Change un nombre entier en un nombre HEXadécimal équivalent en accord avec le nombre de chiffres hexadécimaux indiqué par la <largeur de zone> (entre 0 et 16). Si ce nombre est trop grand, l'expression finale est complétée par des zéros à gauche du nombre. S'il est trop petit, elle ne sera PAS tronquée mais le nombre de chiffres produit sera égal au nombre requis.

Le <nombre entier sans signe> à convertir sous forme hexadécimale doit produire une valeur comprise entre -32768 et 65535.

Mots clés associés: BIN$, DEC$, STR$, UNT



HIMEM

HIMEM

    PRINT HIMEM
    42619

FONCTION: Donne l'adresse de l'octet le plus Haut dans la MEMoire utilisée par le BASIC (modifiable par la commande MEMORY).

REMARQUE: Le BASIC n'exploite que la BANQUE 0 de la mémoire.

Mots clés associés: FRE, MEMORY, SYMBOL, SYMBOL AFTER



IF

IF
(<expression logique>) THEN <option> [ELSE <option>]

    10 MODE 1
    20 x=CINT(RND*100)
    30 PRINT"devinez un chiffre (0 a 100)"
    40 INPUT n
    50 IF n<x THEN PRINT n;" est trop petit..."
    60 IF n>x  THEN
PRINT n;" est trop grand..."
    70 IF n=x THEN 80 ELSE c=c+1:GOTO 40
    80 PRINT"Bien vu! Trouve en";c+1;"fois !"
    run

COMMANDE: Détermine si l' <expression logique> est vraie pour exécuter, le cas échéant, la première <option>. Si l' <expression logique> est fausse, l' <option> placée après ELSE s'exécute. En absense de deuxième
<option>, le BASIC passe à la ligne suivante.

Les commandes IF THEN peuvent être imbriquées mais se terminent à la fin de la ligne. On ne peut donc PAS avoir de déclarations indépendantes de IF THEN sur la même ligne. Lorsque le résultat de l' <expression logique> nécessite un saut de ligne, la commande peut, par exemple, se formuler:

    IF a=1 THEN 100

...ou:

    IF a=1 GOTO 100

...ou:

    IF a=1 THEN GOTO 100

Mots clés associés: ELSE, GOTOTHEN



INK

INK <encre>,<numéro de couleur> [,<numéro de couleur>]

    10 MODE 1:PAPER 0:PEN 1
    20 FOR p=0 TO 1
    30 FOR i=0 TO 26
    40 INK p,i
    50 LOCATE 16,12:PRINT"INK";p;",";i
    60 FOR t=1 TO 400:NEXT t,i,p
    70 INK 0,1:INK 1,24:CLS
    run

COMMANDE: Affecte la ou les couleurs à une encre donnée. Le paramètre <encre> fournit la référence de l'encre (par un entier compris entre 0 et 15), à l'intention des commandes PEN ou PAPER correspondantes. Le premier paramètre <numéro de couleur> (entier) donne une valeur de couleur comprise entre 0 et 26. Si le second paramètre de couleur facultatif est spécifié, l'encre passe d'une couleur à l'autre selon une vitesse définie par la commande SPEED INK.

Mots clés associés: GRAPHICS PAPER, GRAPHICS PEN, PAPER, PEN, SPEED INK



INKEY

note : préférer la fonction INKEY$

INKEY (<nombre entier>)

    10 IF INKEY(55)<>32 THEN 10
    20 PRINT"vous venez d'appuyer [SHIFT] et V"
    30 CLEAR INPUT
    run

FONCTION: Interroge le clavier pour indiquer le touches pressées. Le clavier est analysé tous les cinquantièmes de seconde. Cette fonction sert à détecter la position haute ou basse d'une touche par détection de la valeur -1 (indépendante de l'état des touches [SHIFT] et [CONTROL]).

Dans l'exemple ci-dessus, le système détecte l'actionnement simultané de [SHIFT] et V (numéro de touche 55) avant d'arrêter le programme. Les numéros de touche sont donnés dans le diagramme situé en haut à droite du boitier de l'ordinateur (voir également "Cpc 6128 - documentation").

[SHIFT] et [CONTROL] sont identifiés par les valeurs suivantes:

        Valeur         [SHIFT]                 [CONTROL]         touche spécifiée
         -1               INDIFFERENT     
INDIFFERENT     RELEVEE
         0                RELEVEE              RELEVEE            ENFONCEE
         32              ENFONCEE           RELEVEE             ENFONCEE
         128            RELEVEE               ENFONCEE         ENFONCEE
         160            ENFONCEE            ENFONCEE         ENFONCEE

Mots clés associés: CLEAR INPUT, INKEY$, JOY




INKEY$

INKEY$

    10 CLS
    20 PRINT"choisissez OUI ou NON (O/N)"
    30 a$=INKEY$
    40 IF a$="" THEN 30
    50 IF a$="o" OR a$="O" THEN 80
    60 IF a$="n" OR a$="N" THEN 90
    70 GOTO 30
    80 PRINT"Vous avez choisi OUI":END
    90 PRINT"Vous avez choisi NON"
    run

FONCTION: Interroge le clavier pour introduire dans le programme toute chaîne de caractères entrée. Si aucune touche de clavier n'est actionnée, INKEY$ renvoie une chaîne vide. Dans l'exemple ci-dessus les lignes 40 et 70 commandent au programme de revenir à la ligne 30 après interrogation du clavier par la fonction INKEY$.

Mots clés associés: CLEAR INPUT, INKEY



INP

INP(<numéro de port>)

    PRINT INP(&FF77)
       255

FONCTION: Lit la valeur contenue dans le port d'entrées-sorties dont l'adresse est transmise par l'argument de cette fonction.

Mots clés associés: OUT, WAIT



INPUT

INPUT [#<numéro de canal>,][;][<chaîne> <séparateur>]
                                                                <liste de:<variable>
    10 MODE 1
    20 INPUT "donnez-moi deux nombres a multiplier (separes par une virgule)";a,b
    30 PRINT a;"fois";b;"font";a*b
    40 GOTO 20
    run

COMMANDE: Reçoit les données en provenance du canal précisé (canal #0 en l'absence de spécification).

Un point-virgule après INPUT supprime le passage à la ligne après exécution de la commande.

Le <sépararateur> peut être un point-virgule ou une virgule. Un point-virgule placé après la chaîne fait apparaître un point d'interrogation; une virgule le supprime.

Si une entrée erronnée est effectuée, un O pour un 0 par exemple, le BASIC répond:

    ?Redo from start

...ou tout autre message d'erreur programmé par vos soins.

Toute réponse au clavier doit se terminer par [RETURN].

Mots clés associés: LINE INPUT



INSTR

INSTR ( [<position de départ>,]<chaîne contenante>,<chaîne contenue> )

    10 CLS:FOR n=1 TO 26
    20 alphabet$=alphabet$+CHR$(n+64)
    30 NEXT
    40 INPUT "entrez une lettre";a$
    50 b$=UPPER$(a$)
    60 PRINT b$;" est en position";
    70 PRINT INSTR(alphabet$,b$);
    80 PRINT"dans l'alphabet.":PRINT
    90 GOTO 40
    run

FONCTION: Cherche dans la <chaîne contenante> l'occurence de la <chaîne contenue> et indique la position de la première occurence de la chaîne recherchée. En son absence, la fonction indique la valeur 0.

La position du début de la recherche est facultative, elle est spécifiée par le paramètre <position de départ> sous la forme d'un entier compris entre 1 et 255.

Mots clés associés: Aucun



INT

INT
(<expression numérique>)

    PRINT INT(-1.995)
       -2

FONCTION: Arrondit au premier entier inférieur, enlevant la partie fractionnaire. Identique à FIX pour les nombres positifs, il donne 1 de moins que FIX pour les nombres négatifs qui ne sont pas entiers.

Mots clés associés: CINT, FIX, ROUND



JOY

JOY
(<nombre entier>)

    10 PRINT"Pour arreter le programme -";
    20 PRINT"actionnez la manette de jeu"
    30 IF JOY(0)<>0 THEN END
    40 GOTO 10
    run

FONCTION: La fonction JOY lit l'état de la manette de jeu spécifiée par le <nombre entier> (0 ou 1). Le résultat n'a de signification qu'en binaire.

                                    Bit                Décimal
                                    0:Haut                 1
                                    1:Bas                   2
                                    2:Gauche             4
                                    3:Droite               8
                                    4:Tir 2               16
                                    5:Tir 1               32

Ainsi, lorsque vous appuyez sur le bouton de "tir" (Tir 2) de la première manette en déplaçant celle-ci vers la gauche, la fonction JOY(0) envoie une valeur décimale égale à 20, soit 16 (Tir 2) + 4 (Gauche).

Pour de plus amples informations, consultez le chapitre "Pour information..."

Mots clés associés: CLEAR INPUT, INKEY



KEY

KEY <numéro logique de touche>,<chaîne alphanumérique>

    KEY 11,"border 13:paper 0:pen 1:ink 0,13:ink 1,0:mode 2:list"+CHR$(13)

Appuyez sur la touche [ENTER]

COMMANDE: Associe une chaîne à la touche (KEY) correspondant au <numéro logique de touche> spécifiée. Il existe 32 numéros logiques de touche (de 0 à 31) occupant les touches 128 à 159. Les touches 128 (0 sur le clavier numérique) à 140 ([CONTROL][ENTER] sur le clavier numérique) sont associées par défaut aux chiffres 0 à 9, au point décimal, à [RETURN] et à RUN"[RETURN] - (pour la cassette), mais peuvent être associées à d'autres chaînes si nécessaire. Les numéros logiques de touche 13 à 31 (touches 141 à 159) sont affectées à des chaînes vides par défaut mais peuvent être étendus et associés à des touches, à l'aide de la commande KEY DEF.

Le <numéro logique de touche> fourni dans la commande KEY doit être compris entre 0 et 31 ou entre 128 et 159 pour correspondre aux numéros physiques des touches du clavier numérique. (Voir la représentation des touches au chapitre 
"Cpc 6128 - documentation").

La chaîne spécifiée ne doit pas dépasser 120 caractères au total. Le dépassement de cette limite entraîne une erreur (5) "Improper argument" (argument incorrect)

Mots clés associés: KEY DEF



KEY DEF

KEY DEF <numéro de touche>,<répétition>[,<normal>[,<avec shift>[,avec control]]]

    KEY 159,"c'est la touche TAB"
    KEY DEF 68,1,159

Appuyez sur la petite touche [TAB]

COMMANDE: Définit la valeur logique d'une touche (KEY) DEFinie par son numéro physique, compris entre 0 et 79 (voir l'illustration des numéros de touche en haut à droite de l'ordinateur ou au chapitre 
"Cpc 6128 - documentation"). Les paramètres <normal>, <avec shift> et <avec control> doivent contenir les valeurs à envoyer lorsque la touche est enfoncée, seule, avec [SHIFT] ou avec [CONTROL]. Ces paramètres sont facultatifs.

Le paramètre <répétition> permet d'activer et de désactiver la fonction d'auto-répétition (1 ou 0). La vitesse de celle-ci est réglable par la commande SPEED KEY.

Dans l'exemple ci-dessus, la touche 159 (correspondant au numéro logique 31) est d'abord associé à une chaîne. La commande KEY DEF définit ensuite la touche 68 (touche [TAB]) pour activer l'auto-répétition (1) et envoyer la valeur <normal> 159 lorsque la touche est enfoncée.

Pour revenir au mode normal:

    KEY DEF 68,0,9

...9 étant la valeur ASCII normale de [TAB]

Mots clés associés: KEY, SPEED KEY



LEFT$

LEFT$(<chaîne alphanumérique>,<longueur requise>)

    10 CLS
    20 a$="AMSTRAD"
    30 FOR n=1 TO 7
    40 PRINT LEFT$(a$,n)
    50 NEXT
    run

FONCTION: Extrait un certain nombre de caractères (entre 0 et 255) à gauche d'une
<chaîne alphanumérique>. Si la chaîne est plus courte que la longueur requise, elle est utilisée entièrement.

Mots clés associés: MID$, RIGHT$



LEN

LEN
(<chaîne alphanumérique>)

    10 LINE INPUT "entrez une phrase";a$
    20 PRINT"la phrase est longue de";
    30 PRINT LEN(a$);"caractères."
    run

FONCTION: Donne le nombre de caractères de la
<chaîne alphanumérique>, les espaces compris.

Mots clés associés: Aucun



LET

LET <variable>=<expression>

    LET x=100

COMMANDE: Un reste des BASICS historiques, pour lesquels on devait annoncer ses variables. Seulement utile pour la compatibilité avec des programmes antérieurs. En AMSTRAD BASIC, il suffit d'écrire:

    x=100

Mots clés associés: Aucun



LINE INPUT

LINE INPUT [
#<numéro de canal>,][;][<chaîne> <séparateur>] <variable en chaîne>

    10 LINE INPUT "tapez une ligne de texte ponctuée. ";a$
    20 CLS
    30 PRINT"la variable a$ est bien egale a :"
    40 PRINT a$
    run

COMMANDE: Reçoit une ligne entière en provenance du canal indiqué (# 0 en l'absence de spécification). Le premier [;] point-virgule facultatif supprime le retour chariot/saut de ligne qui intervient normalement après exécution de la commande.

Le <séparateur> peut être un point-virgule ou une virgule. Le
point-virgule entraîne l'affichage d'un point d'interrogation; la virgule le supprime.

L'entrée de LINE INPUT au clavier se termine par l'activation de la touche [RETURN].

LINE INPUT en provenance du canal #9 de la disquette (ou de la cassette) se termine par un retour chariot ou par l'affectation de plus de 255 caractères à la <variable en chaîne>.

Mots clés associés: INPUT



LIST

LIST [<ensemble de lignes>][, #<numéro de canal>]

    LIST 100-1000,#1

COMMANDE: Liste le programme sur le canal désiré. #0 est l'écran, #8 est l'imprimante. Le LISTage peut être provisoirement interrompu si vous appuyez une fois sur la touche [ESC], pour être ensuite repris avec la barre d'espacement. Si vous appuyez deux fois sur [ESC], vous arrêtez le listage et revenez au mode direct.

Vous pouvez omettre le premier ou le dernier numéro du paramètre <ensemble de lignes> pour lister le programme depuis le début, ou jusqu'à la fin.

Exemples:

    LIST -200

...ou:

    LIST 50-

...liste la totalité du programme.

    LIST
  
Mots clés associés: Aucun



LOAD

LOAD <nomfich>[,<adresse>]

    LOAD"fichdisc.xyz",&2AF8

COMMANDE: Charge en mémoire un programme BASIC se trouvant sur disquette, en écrasant tout programme en place. Avec l'option de l'adresse, charge un fichier binaire à l'adresse indiquée au lieu de l'adresse à laquelle il se trouvait au moment de la sauvegarde.

Un programme protégé ne peut PAS être chargé par la commande LOAD car il est alors immédiatement effacé de la mémoire. Dans ce cas, utilisez RUN ou CHAIN.

Mots clés associés: CHAIN, CHAIN MERGE, MERGE, RUN, SAVE



LOCATE

LOCATE [#<numéro de canal>,]<coordonnée x>,
<coordonnée y>

    10 MODE 1
    20 FOR n=1 TO 20
    30 LOCATE n,n
    40 PRINT CHR$(143);"position";
    50 PRINT n;",";n
    60 NEXT
    run

COMMANDE: Déplace le curseur de texte vers une nouvelle position relative au coin supérieur gauche de la fenêtre (WINDOW). #0 représente le canal par défaut.

Mots clés associés: WINDOW



LOG

LOG (<expression numérique>)

    PRINT LOG(9999)
        9.21024037

FONCTION: Calcule le LOGarithme naturel d'une <expression numérique> (supérieure à zero)

Mots clés associés: EXP, LOG10



LOG10

LOG10 (<expression numérique>)

    PRINT LOG10(9999)
       3.99995657

FONCTION: Calcule le LOGarithme à base 10 de l'<expression numérique> (supérieure à zéro)

Mots clés associés: EXP, LOG



LOWER$

LOWER$
(<chaîne alphanumérique>)

    10 a$="REGARDEZ COMMENT LES LETTRES SONT CHANGEES "
    20 PRINT LOWER$(a$+"EN TYPE MINUSCULE")
    run

FONCTION: Change toutes les majuscules d'une chaîne alphanumérique en minuscules. Utile quand on attend des réponses composées d'un mélange de majuscules et de minuscules.

Mots clés associés: UPPER$



MASK

MASK [<nombre entier>][,<tracé du premier point>]

    10 MODE 0:INK 5,21:INK 8,16
    20 MOVE -100*RND,400*RND
    30 WHILE XPOS<640
    40 FOR x=1 TO 8
    50 MASK 2^ (8-x)
    60 DRAWR 32,0,x,1:MOVER -32,0
    70 NEXT
    80 MOVER 34,0
    90 WEND:GOTO 20
    run

COMMANDE: Définit le modèle à utiliser pour le tracé des lignes. La valeur binaire du <nombre entier> comprise entre 0 et 255 active (1) ou désactive (0) les bits dans chaque groupe adjacent de 8 pixels.

Le paramètre
<tracé du premier point> détermine si le premier point de la ligne doit être tracé (1) ou non (0).

Vous pouvez mettre l'un des paramètres mais pas les deux. Si vous en omettez un, sa spécification demeure inchangée.

Mots clés associés: DRAW, DRAWR, GRAPHICS PAPER, GRAPHICS PEN



MAX

MAX
(<liste de:<expression numérique>)

    10 n=66
    20 PRINT MAX(1,n,3,6,4,3)
    run
       66

FONCTION: Donne la valeur la plus grande (MAXimale) de la liste.

Mots clés associés: MIN



MEMORY

MEMORY <adresse>

    MEMORY &20AA

COMMANDE: Définit la quantité de mémoire BASIC disponible en fixant l'adresse de l'octet le plus élevé.

Mots clés associés: FRE, HIMEM, SYMBOL, SYMBOL AFTER



MERGE

MERGE <nomfich>

    MERGE "nouversi.bas"

COMMANDE: Charge un programme à partir de la disquette et l'ajoute au programme déjà en mémoire.

Les numéros de ligne du programme en place se retrouvant dans le nouveau programme sont automatiquement écrasés.

Les fichiers protégés (SAuVEgardé par SAVE,p) ne peuvent PAS être fusionnés avec un autre programme en place.

Mots clés associés: CHAIN, CHAIN MERGE, LOAD



MID$

MID$ (<
chaîne alphanumérique>,<position de départ>[,<longueur de la sous chaîne>])

    10 MODE 1:ZONE 3
    20 a$="ENCYCLOPEDIE"
    30 PRINT"Regardez comment epeler ";a$
    40 PRINT
    50 FOR n=1 TO LEN(a$)
    60 PRINT MID$(a$,n,1),
    70 FOR t=1 TO 700:NEXT t,n
    80 PRINT:PRINT
    90 INPUT "entrez un nouveau mot";a$
    100 GOTO 50
    run

FONCTION: Renvoie une nouvelle sous-chaîne commençant à la <position de départ> de la <chaîne alphanumérique> et contenant le nombre de caractères correspondant à la <longueur de la sous-chaîne>. Si le paramètre <longueur de la sous-chaîne> n'est pas spécifié, la fonction renvoie le reste de la <chaîne alphanumérique> à partir de la <position de départ>.

Si la <position de départ> est supérieure à la longueur totale de la
<chaîne alphanumérique>, une chaine vide est renvoyée. La <position de départ> est comprise entre 1 et 255, la <longueur de la sous-chaîne> entre 0 et 255.

Mots clés associés: LEFT$, RIGHT$



MID$

MID$ (<variable chaîne>,<position d'insertion>[,<longueur de la nouvelle chaîne>])=<nouvelle chaîne alphanumérique>

    10 a$="bonjour"
    20 MID$(a$,3,2)="XX"
    30 PRINT a$
    run
    boXXour

COMMANDE: Insère dans la chaîne spécifiée une <nouvelle chaîne alphanumérique> d'un nombre de caractères donné, à la <position d'insertion>.

Lorsque vous utilisez MID$ en tant que COMMANDE, vous devez faire appel à une <variable chaîne>, tel que A$ et non PAS à une constante comme "bonjour".

Mots clés associés: LEFT$, RIGHT$



MIN

MIN (
<liste de:<expression numérique>)

    PRINT MIN(3,6,2.999,8,9,)
    2.999

FONCTION: Donne la valeur la plus petite (MINimale) de la
<liste de:<expression numérique>.

Mots clés associés: MAX



MOD

<argument 1> MOD <argument 2>

    PRINT 10 MOD 3
       1
    PRINT 10 MOD 5
       0

OPERATEUR: Donne le reste de la division entière de l'<argument 1> par l'<argument 2> (on dit
<argument 1> MODulo <argument 2>.

Mots clés associés: Aucun



MODE

MODE <nombre entier>

    10 m=m+1: IF m>2 THEN m=0
    20 MODE m
    30 PRINT"Ceci est le mode";m
    40 PRINT"Pressez une touche"
    50 IF INKEY$="" THEN GOTO 50 ELSE 10
    run

COMMANDE: Modifie le mode d'écran (0,1 ou 2) et rétablit sur l'écran l'encre 0, même si l'encre actuellement utilisée par le papier est différente. Toutes les fenêtres et curseurs sont réinitialisés.

Mots clés associés: WINDOW, ORIGIN



MOVE

MOVE <coordonnée x>,
<coordonnée y>[,[<encre>][,<mode d'encre>]]

    10 MODE 1:TAG
    20 x=RND*800-100:y=RND*430
    30 MOVE x,y
    40 PRINT"je suis ici";
    50 GOTO 20
    run

COMMANDE: Positionne le curseur graphique au point absolu spécifié. Le paramètre facultatif <encre> (compris entre 0 et 15) permet de changer la couleur du stylo graphique.

Le paramètre facultatif <mode d'encre> détermine l'interaction de l'encre sur l'affichage en place à l'écran. Il existe 4 <modes d'encre>:

0:Normal
1:XOR (OU exclusif)
2:AND (ET)
3:OR (OU)

Mots clés associés: MOVER, ORIGIN, XPOS, YPOS



MOVER

MOVER <décalage x>,<décalage y>[,[<encre>][,<mode d'encre>]]

    10 MODE 1:TAG:MOVE 0,16
    20 PRINT"la vie a ses";
    30 FOR n=1 TO 10
    40 MOVER -45,16
    50 PRINT"hauts";:NEXT:PRINT" et";
    60 FOR n=1 TO 10
    70 MOVER -64,-16
    80 PRINT"bas";:NEXT
    run

COMMANDE: Positionne le curseur graphique en coordonnées relatives (par rapport à la position actuelle). Le paramètre facultatif <encre> (compris entre 0 et 15) permet de changer la couleur du stylo graphique.

Le paramètre facultatif <mode d'encre> détermine l'interaction de l'encre sur l'affichage en place à l'écran. Il existe 4 <modes d'encre>:

0:Normal
1:XOR (OU exclusif)
2:AND (ET)
3:OR (OU)

Mots clés associés: MOVE, ORIGIN, XPOS, YPOS



NEW

NEW

    NEW

COMMANDE: Efface le programme et les variables en mémoire. Les définitions de touches ne sont pas effacées et l'affichage reste ce qu'il était (MODE, PEN, PAPER, INK etc.).

Mots clés associés: Aucun



NEXT

NEXT [<liste de: <variable>]

    10 FOR a=1 TO 3
    20 FOR b=0 TO 26
    30 MODE 1
    40 PEN a:BORDER b
    50 PRINT"PEN";a;"BORDER";b
    60 FOR c=1 TO 500
    70 NEXT c,b,a
    run

COMMANDE: Marque la fin d'une boucle commencée avec FOR. La commande NEXT peut être anonyme ou peut se rapporter au FOR concerné. Dans l'exemple ci-dessus, la <liste de variable> doit apparaître en sens inverse de la spécification des commandes FOR, afin d'éviter le chevauchement des boucles imbriquées.

Mots clés associés: FOR, STEP, TO



NOT

NOT <argument>

    IF NOT "alain"  < "bernard" THEN PRINT "vrai" ELSE PRINT "faux"
    faux
    IF NOT "chat"  > "chien" THEN PRINT "vrai" ELSE PRINT "faux"
    vrai
    ......
    PRINT NOT -1
    0
    PRINT NOT 0
    -1

OPERATEUR: Exécute des opérations par bit sur des entiers. Inverse chaque bit de l'argument.


Mots clés associés: AND, OR, XOR



ON BREAK CONT

ON BREAK CONT

    10 ON BREAK CONT
    20 PRINT"Le programme CONTinuera si vous essayez"
    25 PRINT "
de faire *Break* avec la touche [ESC]":PRINT
    30 FOR t=1 TO 1000:NEXT:GOTO 20
    run

COMMANDE: Annule l'action de la touche [ESC], empêchant l'arrêt du programme. Cette commande est à utiliser avec précaution car le programme ne peut alors être interrompu que par réinitialisation complète de l'ordinateur (vous devez donc sauvegarder le programme avant de le lancer).

Vous pouvez désactiver ON BREAK CONT par ON BREAK STOP à l'intérieur d'un programme.

Mots clés associés: ON BREAK GOSUB, ON BREAK STOP



ON BREAK GOSUB

ON BREAK GOSUB <numéro de ligne>

    10
ON BREAK GOSUB 40
    20 PRINT"le programme tourne"
    30 GOTO 20
    40 CLS::PRINT"Appuyer 2 fois [ESC],";
    50 PRINT"appelle le sous-programme"
    60 FOR t=1 TO 2000:NEXT
    70 RETURN
    run

COMMANDE: Demande au BASIC de passer au sous-programme spécifié par le <numéro de ligne> lorsque vous appuyez deux fois sur [ESC].

Mots clés associés: ON BREAK CONT, ON BREAK STOP, RETURN



ON BREAK STOP

ON BREAK STOP

    10 ON BREAK GOSUB 40
    20 PRINT"le programme tourne"
    30 GOTO 20
    40 CLS:PRINT"Appuyer 2 fois [ESC],";
    50 PRINT"appelle le sous-programme"
    60 FOR t=1 TO 2000:NEXT
    65 ON BREAK STOP
    70 RETURN
    run

COMMANDE: Désactive les commandes ON BREAK CONT et ON BREAK GOSUB pour permettre l'arrêt du programme sur activation de la touche [ESC]. Dans l'exemple ci-dessus, la commande ON BREAK GOSUB ne fonctionne qu'une seule fois car elle est désactivée à la ligne 65 dans le sous-programme ON BREAK.

Mots clés associés: ON BREAK CONT, ON BREAK GOSUB


ON ERROR GOTO

ON ERROR GOTO
<numéro de ligne>

    10 ON ERROR GOTO 60
    20 CLS:PRINT"Si une erreur est trouvee, ";
    30 PRINT"alors LISTer le programme"
    40 FOR t=1 TO 4000:NEXT
    50 GOTO 100
    60 PRINT"Erreur detectee a la ligne";
    70 PRINT ERL:PRINT:LIST
    run

COMMANDE: Passe à la ligne spécifiée aussitôt qu'une erreur est détectée.

La commande ON ERROR GOTO 0 désactive le déroutement du programme sur erreur et rétablit le traitement normal des erreurs par le BASIC.

Voir également la commande RESUME.

Mots clés associés: DERR, ERL, ERR, ERROR, RESUME



ON <expression> GOSUB

ON <sélecteur> GOSUB <liste de:
<numéro de ligne>

    10 PAPER 0:PEN 1:INK 0,1
    20 CLS:PRINT" MENU":PRINT
    30 PRINT"1 - Changer le cadre":PRINT
    40 PRINT"2 - Changer le stylo":PRINT
    50 PRINT"3 - Changer de mode":PRINT
    60 INPUT"Votre choix";x
    70 ON x GOSUB 90,110,130
    80 GOTO 20
    90 b=b-1:IF b<0 THEN b=26
    100 BORDER b:RETURN
    110 p=p-1:IF p<2 THEN p=26
    120 INK 1,p:RETURN
    130 m=m-1:IF m<0 THEN m=2
    140 MODE m:RETURN
    run
   
COMMANDE: Sélectionne une ligne de sous-programme en fonction de la valeur du <sélecteur> (nombre entier compris entre 0 et 255). L'ordre des valeurs des
<sélecteurs> détermine le numéro de ligne à extraire de la <liste de: <numéro de ligne>. Dans l'exemple ci-dessus:

1 provoque le passage à la ligne 90
2 provoque le passage à la ligne 110
3 provoque le passage à la ligne 130

Si cette expression est égale à zéro, ou si elle est supérieure au nombre de lignes de la liste spécifiée dans la commande, la sélection n'a pas lieu.

Mots clés associés: RETURN



ON <expression> GOTO

ON <sélecteur> GOTO <liste de:
<numéro de ligne>

    10 CLS:PRINT" MENU":PRINT
    20 PRINT"1 - LISTe le programme":PRINT
    30 PRINT"2 - EDITe pour corriger":PRINT
    40 PRINT"3 - Fait le CATalogue":PRINT
    50 INPUT"Votre choix";n
    60 ON n GOTO 80,90,100
    80 LIST
    90 AUTO
    100 CAT
    run

COMMANDE: Sélectionne une ligne à laquelle le programme doit sauter en fonction de la valeur du <sélecteur> (nombre entier compris entre 0 et 255). L'ordre des valeurs des <sélecteurs> détermine le numéro de ligne à extraire de la <liste de: <numéro de ligne>.

Dans l'exemple ci-dessus:

1 provoque le passage à la ligne 80
2 provoque le passage à la ligne 90
3 provoque le passage à la ligne 100

Si cette expression est égale à zéro, ou si elle est supérieure au nombre de lignes de la liste spécifiée dans la commande, la sélection n'a pas lieu.

Mots clés associés: Aucun



ON SQ GOSUB

ON SQ (<numéro de canal>) GOSUB <numéro de ligne>

    10 ENV 1,15,-1,1
    20 ON SQ(1) GOSUB 60
    30 MODE 0:ORIGIN 0,0,200,440,100,300
    40 FOR x=1 TO 13:FRAME:MOVE 330,200,x
    50 FILL x:NEXT:GOTO 40
    60 READ s:IF s=0 THEN RESTORE:GOTO 60
    70 SOUND 1,s,25,15,1
    80 ON SQ(1) GOSUB 60:RETURN
    90 DATA 50,60,90,100,35,200,24,500,0
    run

COMMANDE: Provoque un déroutement en cas de place dans une file sonore (Sound Queue). Le
<numéro de canal> est un nombre entier indiquant une des valeurs:

1: pour canal A
2: pour canal B
4: pour canal C

Mots clés associés: RETURN, SOUND, SQ



OPENIN

OPENIN <nomfich>

    10 REM Ouvre et Recoit le fichier en provenance de la disquette
    20 OPENIN "NOMFICH":INPUT#9,a,a$
    30 CLOSEIN:PRINT"les 2 valeurs sont:"
    40 PRINT:PRINT a,a$
    run

COMMANDE: Ouvre un fichier existant sur la disquette afin d'y lire des données destinées au programme en mémoire. Le fichier à ouvrir doit être un fichier ASCII. Cet exemple ne fonctionne que si vous avez créé le fichier selon l'exemple de la commande OPENOUT.

Mots clés associés: CLOSEIN, EOF



OPENOUT

OPENOUT <nomfich>

    10 REM Ouvre et Sort le fichier sur la disquette
    20 INPUT"Donnez moi un nombre";a
    30 INPUT"Donnez moi un mot";a$
    40 OPENOUT "NOMFICH"
    50 WRITE#9,a,a$
    60 CLOSEOUT:PRINT"Les donnees sont sauvees sur disquette"
    run

COMMANDE: Ouvre sur la disquette un fichier de sortie utilisable par le programme en mémoire.

Mots clés associés: CLOSEOUT


OR

<argument> OR <argument>

    IF "alain" < "bernard" OR "chien" > "chat" THEN PRINT "vrai" ELSE PRINT "faux"
    vrai
    IF "bernard" < "alain" OR "chat" > "chien" THEN PRINT "vrai" ELSE PRINT "faux"
    faux
    IF "alain" < "bernard" OR "chat" > "chien" THEN PRINT "vrai" ELSE PRINT "faux"
    vrai
    .....
    PRINT 1 OR 1
    1
    PRINT 0 OR 0
    0
    PRINT 1 OR 0
    1

OPERATEUR: Exécute en langage machine des opérations booléennes sur des entiers. Donne 1 dans tous les cas sauf si les deux arguments sont égaux à 0.

Mots clés associés: AND, NOT, XOR



ORIGIN

ORIGIN <x>,<y>[,<gauche>,<droite>,<haut>,<bas>]

    10 MODE 1:BORDER 13:TAG
    20 ORIGIN 0,0,100,540,300,100
    30 GRAPHICS PAPER 3:CLG
    40 FOR x=550 TO -340 STEP -10
    50 MOVE x,206
    60 PRINT"Voici une fenetre graphique";
    70 FRAME:NEXT:GOTO 40
    run

COMMANDE: Etablit le point d'origine du curseur fraphique aux coordonnées <x>, <y> spécifiées. Vous pouvez également fixer les dimensions de la fenêtre graphique par spécification des quatres derniers paramètres facultatifs. Si les coordonnées spécifiées pour la
fenêtre graphique se trouvent en dehors de l'écran, les bord de l'écran sont alors considérés comme les limites de la fenêtre.

Mots clés associés: CLG



OUT

OUT <numéro de port>,<nombre entier>

    OUT &F8F4,&FF

COMMANDE: Envoie la valeur du <nombre entier> (entre 0 et 255) vers le port de sortie précisé par son adresse.

A déconseiller aux utilisateurs peu avertis.

Mots clés associés: INP, WAIT



PAPER

PAPER[#
<numéro de canal>,]<encre>

    10 MODE 0:PEN 0:INK 0,13
    20 FOR p=1 TO 15
    30 PAPER p:CLS
    40 LOCATE 7,12:PRINT"PAPER";p
    50 FOR t=1 TO 5000:NEXT t,p
    60 PAPER 5:CLS
    run

COMMANDE: Etablit la couleur du fond pour le caractères. Lors de l'affichage des caractères sur l'écran, sa matrice (la grille) est remplie par l'<encre> correspondant au papier (PAPER INK) avant qu'il ne soit lui-même affiché (sauf en cas de mode transparent).

Si le
<numéro de canal> n'est pas spécifié, le canal #0 est pris par défaut.

Le nombre de couleurs disponibles dépend du mode choisi.

Mots clés associés: INK, GRAPHICS PAPER, PEN



PEEK

PEEK (<adresse>)

    10 MODE 1:ZONE 7
    20 WINDOW 1,40,1,2:WINDOW#1,1,40,3,25
    30 PRINT"Adresse memoire"
    40 LOCATE 20,1:PRINT"Contenu memoire"
    50 FOR n=0 TO 65535
    60 p=PEEK(n)
    70 PRINT#1,n,"(&";HEX$(n);")";
    80 PRINT#1,TAB(20);p,"(&";HEX$(p);")"
    90 NEXT
    run

FONCTION: Lit le contenu de la case mémoire Z80 dont l'<adresse> est indiquée entre parenthèses. Cette adresse doit être comprise entre &0000 et &FFFF (0 et 65535). PEEK n'opère que sur la mémoire vive (RAM), jamais sur la mémoire morte (ROM), et fournit des valeurs comprises entre &00 et &FF (0 et 255).

Mots clés associés: POKE



PEN

PEN [#
<numéro de canal>,][<encre>][,<mode du fond>]

    10 MODE 0:PAPER 0:INK 0,13
    20 FOR p=1 TO 15
    30 PEN p:PRINT SPACE$(47);"PEN";p
    40 FOR t=1 TO 5000:NEXT t,p:GOTO 20
    run

COMMANDE: Sélectionne l'<encre> à utiliser (de 0 à 15) pour écrire sur le canal indiqué (par défaut #0). Le paramètre <mode du fond> peut être soit transparent (1), soit opaque (0).

Au moins un des deux derniers paramètres doit figurer. Si l'un d'eux est omis, sa valeur antérieure reste inchangée.

Mots clés associés: PAPER



PI

PI

    PRINT PI
     3.14159265

FONCTION: Fournit la valeur du rapport de circonférence-diamètre d'un cercle.


Mots clés associés: DEG, RAD




PLOT

PLOT <coordonnée x>,<coordonnée y>[,[<encre>][,<mode d'encre>]]

    10 MODE 1:BORDER 0:PAPER 0:PEN 1
    20 INK 0,0:INK 1,26:INK 2,13,26:DEG
    30 FOR x=1 TO 360:ORIGIN 320,200
    40 DRAW 50*COS(x),50*SIN(x),1
    50 PLOT 100*COS(x),25*SIN(x):NEXT
    60 ORIGIN 0,0:t=TIME+700:WHILE TIME<t
    70 PLOT RND*640,RND*400:WEND
    80 PLOT
RND*640,RND*400,2
    90 GOTO 90
    run

COMMANDE: Affiche, en mode graphique, le point de coordonnées x et y. On définit l'<encre> de ce point sur une échelle de 0 à 15.

Le paramètre facultatif <mode d'encre> détermine le mode d'interaction entre la couleur utilisée et celle de l'écran. Voici les quatres modes possibles:

0: Normal
1: XOR (OU exclusif)
2: AND (ET)
3: OR (OU)

Mots clés associés: GRAPHICS PEN, PLOTR


PLOTR

PLOTR <décalage x>,<décalage y>[,[<encre>][,<mode d'encre>]]

     20 BORDER 0:GRAPHICS PEN 1
    30 MODE 1:PLOT 320,200
    35 PRINT "utilisez le pave curseur pour dessiner"
    40 IF INKEY(0)=0 THEN PLOTR 0,1
    50 IF INKEY(1)=0 THEN PLOTR 1,0
    60 IF INKEY(2)=0 THEN PLOTR 0,-1
    70 IF INKEY(8)=0 THEN PLOTR -1,0
    80 IF INKEY(9)=0 THEN 30:REM [COPY]=CLS
    90 GOTO 40
    run

COMMANDE: En mode graphique, affiche à l'écran le point de coordonnées x et y relatives à la position du curseur à ce moment. On définit l'<encre> de ce point sur une échelle de 0 à 15.

Le paramètre facultatif <mode d'encre> détermine le mode d'interaction entre la couleur utilisée et celle de l'écran. Voici les quatres modes possibles:

0: Normal
1: XOR (OU exclusif)
2: AND (ET)
3: OR (OU)

Mots clés associés: GRAPHICS PEN, PLOT



POKE

POKE <adresse>,<nombre entier>

    10 FOR m=49152 TO 65535
    20 POKE m,100
    30 NEXT
    run

COMMANDE: Inscrit la valeur correspondant au <nombre entier> (compris entre 0 et 255) directement dans la case de la mémoire vive (RAM) du Z80 dont l'<adresse> est indiquée.

Commande à utiliser avec précaution !

Mots clés associés: PEEK



POS

POS (#<numéro de canal>)

    10 MODE 1:BORDER 0:LOCATE 8,2
    20 PRINT"utilisez les fleches droite/gauche "
    30 WINDOW 1,40,12,12:CURSOR 1,1
    40 FOR n=1 TO 19:PRINT CHR$(9);:NEXT
    50 IF INKEY(1)<>-1 THEN PRINT CHR$(9);
    60 IF INKEY(8)<>-1 THEN PRINT CHR$(8);
    70 LOCATE #1,2,24
    80 PRINT #1,"curseur texte,";
    90 PRINT #1,"position horizontale=";
    100 PRINT #1,POS(#0):GOTO 50
    run

FONCTION: Calcule la POSition du curseur de texte sur l'axe horizontal, à partir du bord gauche de la fenêtre. Le <numéro de canal> doit obligatoirement être précisé; il ne prend pas la valeur #0 par défaut.

POS(#8) calcule la position horizontale du chariot de l'imprimante par rapport à la marge gauche (de coordonée 1).

POS(#9) calcule la position logique du canal d'unité de disquettes, c'est-à-dire le nombre de caractères transmis depuis le dernier «retour chariot».

Mots clés associés: VPOS, WINDOW



PRINT

PRINT [#
<numéro de canal>,][<liste de: <article à imprimer>]

    10 a$="petite"
    20 b$="Ceci est une longue chaine de caracteres"
    30 PRINT a$;a$
    40 PRINT a$,a$
    50 PRINT
    60 PRINT b$;b$
    70 PRINT b$,b$
    run

COMMANDE: Transmet la <liste de: <article à imprimer> ou à afficher sur le canal indiqué, (#0 par défaut).

Le point-virgule indique à l'ordinateur qu'un article doit être imprimé immédiatement à la suite du précédent. Toutefois, s'il est trop long pour tenir sur la même ligne, l'ordinateur passe tout de même à la ligne.

La virgule indique qu'un article doit être positionné à la tabulation suivante. Toutefois, si l'impression ou l'affichage de l'article précédent déborde sur la tabulation indiquée, l'ordinateur décale le nouvel article d'une tabulation supplémentaire.


PRINT SPC
PRINT TAB

PRINT [#<numéro de canal>,][<liste de: <article à imprimer>][;]
            [SPC(<nombre entier>)]
[<liste de: <article à imprimer>]

PRINT [#<numéro de canal>,][<liste de: <article à imprimer>][;]
            [TAB(<nombre entier>)]
[<liste de: <article à imprimer>]

    10 PRINT"Ceci est l'instruction SPC"
    20 FOR x=6 TO 15
    30 PRINT SPC(5) "a";SPC(x);"b"
    40 NEXT
    50 PRINT"Ceci est l'instruction TAB"
    60 FOR x=6 TO 15
    70 PRINT TAB(5) "a";TAB(x);"b"
    80 NEXT
    run

SPC ménage le nombre d'espaces vides indiqué par le <nombre entier> avant d'imprimer ou d'afficher l'article indiqué, à condition que ce dernier tienne intégralement sur la ligne. Il est donc inutile d'utiliser le point-virgule avec la commande SPC.

TAB
ménage, à partir de la marge gauche, le nombre d'espaces vides indiqué avant avant d'imprimer ou d'afficher l'article indiqué, à condition que ce dernier tienne sur la ligne. Le point-virgule est donc inutile après TAB. Si le curseur a déjà dépassé la position demandée, un changement de ligne est effectué avant la tabulation.



PRINT USING

PRINT [#<
numéro de canal>][<liste de:<article à imprimer>][;]
[USING<modèle de format>][<séparateur> <expression>]

    10 FOR x=1 TO 10
    20 n=100000*(RND^ 5)
    30 PRINT"marchandise";USING"########,##";n
    40 NEXT
    run

PRINT USING permet de définir le format d'impression ou d'affichage d'une expression transmise par la commande PRINT. On définit pour cela le <modèle de format> sous lequel on désire voir apparaître l'expression. On utilise comme <séparateur> soit une virgule, soit un point-virgule. Le <modèle de format> est une chaîne de caractères composée des
« indicateurs de champ » suivants:

Formats numériques

Dans un nombre:

#  Chaque signe # indique l'emplacement d'un chiffre.
    Exemple: ######

.   Indique l'emplacement du point décimal (équivalent à notre virgule).
    Exemple:######.##

,   (Réserve un espace). Ce signe, ne pouvant figurer qu'immédiatement avant le point décimal, indique que les chiffres situés à gauche du point décimal seront disposés par groupes de trois (correspondant aux milliers) séparés entre eux par une virgule
    Exemple:######,.##

Encadrement d'un nombre:

££   (Réserve deux espaces). Indique que le signe £ apparaîtra immédiatement avant le premier chiffre ou le point décimal, c'est à dire sur l'un des emplacements réservés aux chiffres.
       Exemple: ££######,.##

**   (Réserve deux espaces). Indique que tous les espaces vides situés avant le nombre seront comblés par les astérisques.
       Exemple: **######,.##

**£  
(Réserve trois espaces). Additionne les options ** et ££, c'est à dire les astérisques en tête et le signe £ précédent immédiatement le nombre.
         Exemple: **£######,.##

$$
    (Réserve deux espaces). Indique que le signe $ apparaîtra immédiatement à gauche du premier chiffre ou du point décimal, c'est-à-dire sur des emplacements réservés aux chiffres.
        Exemple:$$######,.##

**$
  (Réserve trois espaces). Additionne les options ** et $$, c'est-à-dire les astérisques en tête et le signe $ précédant immédiatement le nombre.
        Exemple: **$######,.##

+      Indique qu'on désire voir figurer le signe du nombre. Ce signe apparaîtra avant le nombre si le + est situé au début du <modèle de format> et après le nombre s'il est situé à la fin.
        Exemple: +####.####

-       Le signe - ne peut figurer qu' A LA FIN du masque. Il demande la présence du signe - après tout nombre ou tout exposant négatifs. En l'absence de cette spécification, le signe - apparaît par défaut avant le nombre négatif.
        Exemple:####.####-

^^^^  Indique que le nombre doit apparaître en exposant. Les signes ^^^^ se placent APRES le dernier emplacement des chiffres, mais AVANT tout signe + ou - final.
         Exemple: #.####^^^^+

La longueur maximale du <modèle de format> d'un nombre est de 20 caractères. Les nombres sont arrondis au nombre de signes indiqué.

Si un format est trop petit pour contenir l'expression saisie:

    PRINT USING "####";12345678

... celle-ci n'est pas tronquée, mais apparaît dans son intégralité, précédée du signe % indiquant un
«format erroné».

Format dune chaîne alphanumérique

    10 CLS:a$="abcdefghijklmnopqrst"
    20 PRINT"chaine alphanum.= ";a$
    30 PRINT:PRINT"Avec  !  =  ";
    40 PRINT USING "!";a$
    50 PRINT:PRINT"Avec  \espaces\  =  ";
    60 PRINT USING "\           \";a$
    70 PRINT:PRINT
"Avec  &  =  ";
    80 PRINT USING "&";a$
    90 GOTO 90
    run

!   indique que seul le premier caractère de la chaîne doit apparaître.
    Exemple: !

\<espaces>\
    Indique que seuls les x premiers caractères de la chaîne doivent apparaître, x étant égal à la longueur du format (barres comprises).
    Exemple:\            \

&   Indique que la chaîne doit apparaître
«telle quelle».
      Exemple: &

Le <modèle de format> d'une chaîne ne peut excéder 255 caractères.

Tout <modèle de format> peut être représenté par une variable alphanumérique, comme le montre l'exemple suivant:

    10 a$="FF######,.##"
    20 b$="!"
    30 PRINT USING a$;12345.6789;
    40 PRINT USING b$;"centimes"
    run

Mots clés associés: SPC, TAB, USING, ZONE



RAD

RAD

    RAD

COMMANDE: Etablit le mode de calcul en RADians. En BASIC, il est adopté par défaut.

Mots clés associés: ATN, COS, DEG, SIN, TAN



RANDOMIZE

RANDOMIZE [<expression numérique>]

    RANDOMIZE 123.456
    PRINT RND
       0.258852139

COMMANDE: Donne une valeur aléatoire calculée à partir de l'
<expression numérique> indiquée. Le générateur de nombres aléatoires fournit une séquence pseudo-aléatoire dans laquelle chaque nombre dépend du précédent. La séquence elle-même est prédéterminée. Si la valeur initiale n'est pas précisée dans la commande, c'est l'utilisateur qui l'entrera en cours d'exécution. RANDOMIZE TIME fournit une séquence pratiquement imprévisible.

Mots clés associés: RND



READ

READ <liste de:<variable>

    10 FOR n=1 TO 8
    20 READ a$,c
    30 PRINT a$;" ";:SOUND 1,c:NEXT
    40 DATA voici,478,les,426,8,379,notes
    50 DATA 358,de,319,la,284,gamme,253,.,239
    run

COMMANDE: Lit les données contenues dans une instruction DATA et les assigne à des variables. READ passe automatiquement d'une donnée à la suivante. La commande RESTORE permet de revenir à une commande DATA antérieure.

Mots clés associés: DATA, RESTORE



RELEASE

RELEASE <canaux sonores>

    10 SOUND 65,1000,100
    20 PRINT"appuyez [R] pour liberer la note"
    30 IF INKEY(50)=-1 THEN 30
    40 RELEASE 1
    run

COMMANDE: Libère les canaux sonores bloqués par la commande SOUND.

Le paramètre <canaux sonores> prend les valeurs suivantes:

    1: Libère le canal A
    2: Libère le canal B
    3: Libère les canaux A et B
    4: Libère le canal C
    5: Libère les canaux A et C
    6: Libère les canaux B et C
    7: Libère les canaux A,B et C

Mots clés associés: SOUND



REM

REM <texte>

    10 REM CHASSE AUX ENVAHISSEURS DANS L'HYPERESPACE INTERGALACTIQUE
    20 REM         COPYRIGHT by AMSOFT

COMMANDE: Insère une REMarque dans le programme. BASIC ne tient pas compte du <texte> situé sur la ligne à droite de REM, même si celui-ci comprend un séparateur d'instructions ":" ou tout autre code.

On peut remplacer REM par une apostrophe ' dans tous les cas, SAUF à l'intérieur d'une instruction DATA.

Mots clés associés: Aucun



REMAIN

REMAIN (<numéro de chronomètre>)

    10 AFTER 500,1 GOSUB 40
    20 AFTER 100,2 GOSUB 50
    30 PRINT"Le programme tourne":GOTO 30
    40 REM ce sous programme ne sera plus appele dans la mesure
    45 REM ou il a ete rendu inoperant en ligne 70
    50 PRINT:PRINT "Le chronometre 1 va ";
    60 PRINT"etre supprime par REMAIN."
    70 PRINT"il restait";REMAIN(1);"unites de temps au chrono 1"
    run

FONCTION: Lit le temps restant à décompter par le chronomètre indiqué (de 0 à 3), avant de le désactiver.


Mots clés associés: AFTER, DI, EI, EVERY



RENUM

RENUM [<nouveau numéro de ligne>][,[<ancien numéro de ligne>][,<incrément>]]

    10 CLS
    20 REM cette ligne deviendra: ligne 123
    30 REM cette ligne deviendra: ligne 124
    40 REM cette ligne deviendra: ligne 125
    RENUM 123,20,1
    LIST

COMMANDE: RENUMérote les lignes d'un programme.

L'<ancien numéro de ligne> est un paramètre indiquant la ligne du programme à laquelle on désire commencer la numérotation. En l'absence de ce paramètre, toutes les lignes du programme seront renumérotées. Le <nouveau numéro de ligne> indique le nouveau numéro de la première ligne renumérotée (10 par défaut). L'<incrément> indique l'espacement désiré entre deux lignes (10 par défaut). RENUM opère les réajustements nécessaires à l'intérieur des instructions d'appels telles que GOTO et GOSUB. En revanche, il laisse inchangé les numéros de lignes contenus dans le chaînes de caractères apparaîssant dans les commandes KEY, REM, CHAIN et CHAIN MERGE. Les numéros de lignes doivent être compris entre 1 et 65535.

Mots clés associés: DELETE, LIST



RESTORE

RESTORE [
<numéro de ligne>]

    10 READ a$:PRINT a$;" ";
    20 RESTORE 50
    30 FOR t=1 TO 500:NEXT:GOTO 10
    40 DATA les data recuperes peuvent etre lus encore
    50 DATA et encore
    run

COMMANDE: Ramène le pointeur sur l'instruction DATA indiquée. En l'absence de paramètre, le pointeur retourne à la première instruction DATA du programme.
 
Mots clés associés: DATA, READ



RESUME

RESUME
[<numéro de ligne>]

    10 ON ERROR GOTO 60
    20 FOR x=10 TO 0 STEP-1:PRINT 1/x:NEXT
    30 END
    40 PRINT"je viens ici en cas d'erreur"
    50 END
    60 PRINT"erreur No.";ERR;"a la ligne";ERL
    70 RESUME 40
    run

COMMANDE: Reprend l'exécution d'un programme après la détection et le traitement d'une erreur par la commande ON ERROR GOTO. Si aucun
<numéro de ligne> n'est indiqué, l'exécution du programme reprend à la ligne contenant l'erreur détectée. Supprimez ce paramètre dans l'exemple ci-dessus, puis faites tourner le programme.

    70 RESUME
    run

Mots clés associés: DERL, ERL, ERR, ERROR, ON ERROR GOTO, RESUME NEXT



RESUME NEXT

RESUME NEXT

    10 ON ERROR GOTO 90
    20 PRINT"tapez [ENTER] a chaque fois"
    30 INPUT "1";a
    40 INPUT "2";a
    50 inpot "3";a:REM erreur de syntaxe
    60 INPUT "4";a
    70 INPUT "5";a
    80 END
    90 PRINT"erreur No.";ERR;"a la ligne";ERL
    100 RESUME NEXT
    run

COMMANDE: Reprend l'exécution d'un programme après la détection et le traitement d'une erreur par la commande ON ERROR GOTO.

L'exécution du programme reprend à partir de la ligne suivant immédiatement la ligne erronée.

Mots clés associés: DERR, ERR, ERROR, ON ERROR GOTO, RESUME



RETURN

RETURN

    10 GOSUB 50:PRINT "Apres le GOSUB":END
    50 FOR n=1 TO 20
    60 PRINT"sous-programme"
    70 NEXT:PRINT
    80 RETURN
    run

COMMANDE: Indique la fin d'un sous-programme. Après l'exécution d'un sous-programme, BASIC retourne à l'instruction suivant immédiatement l'appel GOSUB correspondant.

Mots clés associés: GOSUB



RIGHT$

RIGHT$
(<chaîne alphanumérique>,<longueur requise>)

    10 MODE 1:a$="ordinateur CPC 6128"
    20 FOR n=1 TO 19:LOCATE 41-n,n
    30 PRINT RIGHT$(a$,n)
    40 NEXT
    run

FONCTION: Extrait un certain nombre de caractères (entre 0 et 255) à droite d'une
<chaîne alphanumérique>. Si la chaîne est plus courte que la <longueur requise>, elle est utilisée entièrement.

Mots clés associés: LEFT$, MID$



RND

RND [
(<expression numérique>)]

    10 RANDOMIZE
    20 FOR x=1 TO -1 STEP-1
    30 PRINT"parametre RND=";x
    40 FOR n=1 TO 6
    50 PRINT RND(x)
    60 NEXT n,x
    run

FONCTION: Fournit le prochain nombre de la séquence pseudo aléatoire en cours lorsque l'
<expression numérique> est positive ou lorsqu'elle ne figure pas dans la commande.

Lorsque l'
<expression numérique> est nulle, RND renvoie le dernier nombre généré.

Une valeur négative de l'
<expression numérique> lance une nouvelle séquence aléatoire, dont RND fournit le premier élément.

Mots clés associés: RANDOMIZE



ROUND

ROUND
(<expression numérique>[,<nombre de décimales>])

    10 FOR n=4 TO -4 STEP -1
    20 PRINT ROUND(1234.5678,n),
    30 PRINT "arrondi a";n;"decimales"
    40 NEXT
    run

FONCTION: Arrondit l'
<expression numérique> au nombre de chiffres après la virgule ou de puissances de dix indiqué par le paramètre <nombre de décimales>. Si ce paramètre est négatif, l'expression est arrondie à un entier absolu, suivi d'un nombre de zéros égal à sa valeur absolue.

Mots clés associés: ABS, CINT, FIX, INT



RUN

RUN
<chaîne alphanumérique>

    RUN "disc"

COMMANDE: Charge et exécute un programme BASIC ou un programme-objet situé sur la disquette. Tout programme déjà présent en mémoire est automatiquement écrasé.

Cette commande permet d'accéder directement aux programmes BASIC protégés.

Mots clés associés: LOAD



RUN

RUN [
<numéro de ligne>]

    RUN 200

COMMANDE: Exécute le programme BASIC présent en mémoire, en commençant au
<numéro de ligne> indiqué ou, à défaut, au début du programme. RUN réinitialise toutes les variables.

Cette commande peut ne pas donner accès aux programmes protégés chargés en mémoire.

Mots clés associés: CONT, END, STOP



SAVE

SAVE <nomfich>[,<type de fichier>][,<paramètres binaires>]

    SAVE "fichdisc.xyz"

...sauvegarde le fichier en mode BASIC non protégé.

    SAVE "fichdisc.xyz",P

...sauvegarde le fichier en mode BASIC Protégé.

    SAVE "fichdisc.xyz",A

...sauvegarde le fichier en mode ASCII.

    SAVE "fichdisc.xyz",B,8000,3000,8001

...sauvegarde le fichier en mode Binaire. Dans notre exemple, le programme sera stocké en mémoire à partir de l'adresse 8000 et occupera 3000 octets. L'adresse (facultative) du point d'entrée est 8001.

COMMANDE: Sauvegarde sur disquette le programme se trouvant actuellement en mémoire. Une zone mémoire chargée sur disquette s'appelle un fichier Binaire. Voici quels sont les différents paramètres Binaires:

<adresse du début>,<taille du fichier>[,<point d'entrée>]

Il est possible de sauvegarder la mémoire d'écran sous forme de fichier Binaire. Cette opération, appelée
«vidage d'écran », s'effectue au moyen de la commande suivante:

    SAVE "ecran",B ,&C000,&4000

On obtient ensuite son rechargement à l'écran en entrant la commande:

    LOAD "ecran"

Mots clés associés: CHAIN, CHAIN MERGE, LOAD, MERGE, RUN



SGN

SGN
(<expression numérique>)

    10 FOR n=200 TO -200 STEP -20
    20 PRINT" SGN renvoi";
    30 PRINT SGN(n);"pour une valeur de:";n
    40 NEXT
    run

FONCTION: Etablit le SiGNe de l'
<expression numérique>. SGN renvoie les valeurs:-1 (si l'expression  est négative), 0 (si elle est nulle) et 1 (si elle est positive).

Mots clés associés: ABS



SIN

SIN
(<expression numérique>)

    10 CLS:DEG:ORIGIN 0,200
    20 FOR n=0 TO 720
    30 y=SIN(n)
    40 PLOT n*640/720,198*y:NEXT
    50 GOTO 50
run

FONCTION: Calcule le SINus de l'
<expression numérique> indiquée.

On peut exprimer l'argument en degrés ou en radians en utilisant, respectivement, les fonctions DEG et RAD.

Mots clés associés: ATN, COS, DEG, RAD, TAN



SOUND

SOUND <état de canal>,<période sonore>[,<durée>[,<volume>[,<enveloppe de
             volume>,[<enveloppe de tonalité>[,<période du bruit>]]]]]

    10 FOR z=0 TO 4095
    20 SOUND 1,z,1,12
    30 NEXT
    run

COMMANDE: Permet la programmation d'un son, à l'aide des paramètres suivants:

Paramètre 1: <état de canal>

L'
<état de canal> admet pour valeur des entiers compris entre 1 et 255. La conversion en binaire de ce paramètre donne la signification de chaque bit selon la table de correspondance suivante:

Bit 0 (1 en décimale): sortir le son sur le canal A (Bit de poid faible)
Bit 1 (2 en décimale): sortir le son sur le canal B
Bit 2 (4 en décimale): sortir le son sur le canal C
Bit 3 (8 en décimale): rendez-vous avec le canal A
Bit 4 (16 en décimale): rendez-vous avec le canal B
Bit 5 (32 en décimale): rendez-vous avec le canal C
Bit 6 (64 en décimale): bloquer un canal sonore
Bit 7 (128 en décimale): vider un canal sonore (Bit de poid fort)

L'<état de canal> 68, par exemple, aura l'effet suivant:

Sortie sur le canal C (4), à l'état bloqué (64).


Paramètre 2: <période sonore>

Ce paramètre établit la hauteur du son, c'est-à-dire la
«note» produite (par exemple Do, Ré, Mi, Fa, Sol). Chaque note se définit par une valeur numérique représentant sa <période sonore> (Voir le chapitre «Pour information... »).

Paramètre 3: <durée>

Ce paramètre établit la longueur, ou
«durée», du son. Une unité correspond à un centième de seconde. La <durée> du son prend par défaut la valeur 20, c'est-à-dire un cinquième de seconde.

En cas de paramètre de <durée> nul, la longueur du son sera celle de l'enveloppe de volume indiquée.

Si le paramètre de <durée> est négatif, l'enveloppe de volume sera répétée pendant un nombre de fois égal à la valeur absolue du paramètre.

Paramètre 4: <volume>

Ce paramètre établit le volume sonore initial d'une note. Il peut prendre une valeur entre 0 (volume nul) et 15 (volume maximal). L'ordinateur choisit par défaut la valeur 12.

Paramètre 5: <enveloppe de volume>

Il est possible de moduler le volume d'une note durant son exécution à l'aide de la commande ENV. Cette commande vous permet de définir à l'avance un maximum de quinze enveloppes différentes, codées de 1 à 15. Le paramètre <enveloppe de volume> de la commande SOUND permet ensuite de sélectionner une de ces enveloppes prédéfinies.

Voir commande ENV

Paramètre 6: <enveloppe de tonalité>

Des variations de période, donc de hauteur, peuvent être obtenues durant l'exécution d'une note par l'intermédiaire de la commande ENT. Cette commande vous permet de définir à l'avance un maximum de 15 enveloppes de tonalités différentes, codées de 1 à 15. Le paramètre
<enveloppe de tonalité> de la commande SOUND permet ensuite de sélectionner une de ces enveloppes prédéfinies. Si, dans la commande ENT, vous avez utilisé un numéro d'enveloppe négatif, la valeur absolue de ce nombre devra alors être prise comme paramètre de la commande SOUND.

Voir commande ENT

Paramètre 7: <période de bruit>

Vous disposez d'un choix de bruits blancs pouvant être ajoutés ou supprimés du signal sonore à l'aide du paramètre
<période de bruit> (valeur comprise entre 0 et 31).

Mots clés associés: ENT, ENV,ON SQ GOSUB, RELEASE, SQ



SPACE$

SPACE$
(<nombre entier>)

    10 MODE 1
    20 PRINT"met 9 espaces entre vous";
    30 PRINT SPACE$(9);
    40 PRINT"et moi!"
    run

FONCTION: Crée une chaîne d'espaces de la longueur indiquée (de 0 à 255)

Mots clés associés: SPC, STRING$, TAB



SPC

(Voir PRINT SPC)



SPEED INK

SPEED INK <période 1>,<période 2>

    10 BORDER 7,18
    20 FOR i=30 TO 1 STEP -1
    30 SPEED INK i,i
    40 FOR t=1 TO 700:NEXT t,i
    run

COMMANDE: Permet d'établir la période d'alternance lorsqu'une instruction INK ou BORDER prescrit l'utilisation de deux couleurs intermittentes. Les durées respectives d'utilisation de la première et de la seconde couleur sont indiquées en cinquantièmes de secondes par les paramètres
<période 1> et <période 2>.

Lors du choix des paramètres, pensez aux risques d'effets secondaires hypnotiques !!!

Mots clés associés: BORDER, INK



SPEED KEY

SPEED KEY <délai initial>,<intervalle inter-répétitions>

    10 CLS:FOR K=7 TO 1 STEP -2
    20 PRINT"Entrez votre nom , puis [RETURN]"
    30 SPEED KEY k,k
    40 LINE INPUT a$:NEXT
    50 PRINT"quel drole de nom !"
    run

COMMANDE: Etablit la vitesse de répétition automatique du clavier. Le paramètre
<délai initial> fixe le temps de réaction (mesuré en cinquantièmes de secondes) entre l'enfoncement de la touche et le début de la répétition automatique. L'<intervalle inter-répétitions> établit le laps de temps séparant les répétitions.

La commande SPEED KEY ne concerne que les touches pour lesquelles la répétition automatique existe implicitement ou celles pour lesquelles cette fonction a été programmée au moyen de la commande KEY DEF.

Avant de définir une répétition automatique à très faible
<délai initial>, il est prudent de programmer une des touches numériques afin de pouvoir rétablir les paramètres par défaut de la fonction SPEED KEY (30,2). Voici comment procéder:

    KEY 0,"SPEED KEY 30,2"+CHR$(13)

Il suffira, pour revenir à l'état initial, d'actionner la touche 0 du pavé numérique.

Mots clés associés: KEY DEF



SPEED WRITE

SPEED WRITE <nombre entier>

    SPEED WRITE 1

COMMANDE: Indique la vitesse de transmission des données de l'ordinateur vers un lecteur de cassettes, le cas échéant. Cette vitesse est soit de 2000 bauds (bits par secondes) si le paramètre est égal à 1, soit, par défaut, de 1000 bauds si celui-ci est égal à 0. Lors du chargement d'un fichier enregistré sur cassette, l'ordinateur choisit automatiquement la bonne vitesse de lecture.

SPEED WRITE 0 est le débit assurant la meilleure fiabilité de transfert.

La commande SPEED WRITE ne s'applique pas aux unités de disquettes.

Mots clés associés: OPENOUT, SAVE



SQ

SQ
(<numéro de canal>)

    10 SOUND 65,100,100
    20 PRINT SQ(1)
    run
       67

FONCTION: Indique l'état de la file d'attente (Sound Queue) dans un canal sonore donné. Le <numéro de canal> doit être une expression numérique entière prenant les valeurs:

1: canal A
2: canal B
4: canal C

Cette fonction fournit un entier correspondant aux bits de signification suivants:

Bits 0, 1 et 2 : nombres d'entrées libres dans la file
Bits 3, 4 et 5 : état du rendez-vous au début de la file
Bit 6 : la tête de la file est bloquée
Bit 7 : le canal est en activité

... où le Bit 0 représente le bit de poid faible, et le Bit 7 celui de poid fort.

On peut constater que si le Bit 6 est à 1, Le Bit 7 ne peut pas l'être. De même si les Bits 3, 4 ou 5 sont à 1, les Bits 6 et 7 ne peuvent pas l'être.

Mots clés associés: ON SQ GOSUB, SOUND



SQR

SQR
(<expression numérique>)

    PRINT SQR(9)
       3

FONCTION: Fournit la racine carrée (SQuare Root) de l'expression numérique indiquée.

Mots clés associés: Aucun


STEP

(Voir FOR)


STOP

STOP

    10 FOR n=1 TO 30:PRINT n:NEXT
    20 STOP
    30 FOR n=31 TO 60:PRINT n:NEXT
    run
    cont

COMMANDE: Interrompt un programme, tout en laissant à l'utilisateur la possibilité d'en reprendre l'exécution au moyen de la commande CONT. STOP permet ainsi d'interrompre un programme à un endroit donné afin d'effectuer une mise au point.

Mots clés associés: CONT, END



STR$

STR$
(<expression numérique>)

    10 a=&FF:REM 255 hexadecimal
    20 b=&X1111:REM 15 binaire
    30 c$="$$$"
    40 PRINT c$+STR$(a+b)+c$
    run
    $$$ 270$$$

FONCTION: Fournit sous forme de chaîne alphanumérique la représentation décimale de l'
<expression numérique> indiquée.

Mots clés associés: BIN$, DEC$, HEX$, VAL



STRING$

STRING$ (<longueur>,<caractère>)

    PRINT STRING$(40,"$")
    $$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$

FONCTION: Fournit une chaîne de caractères de la longueur indiquée (entre 0 et 255) constituée par la répétition d'un même caractère. L'exemple ci-dessus peut également s'écrire:

    PRINT STRING$(40,42)
    $$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$

où le <caractère> 42 correspond à la valeur ASCII du caractère «$». Cette notation équivaut donc à PRINT STRING$(40,CHR$(42)).

Mots clés associés:  SPACE$


SWAP

(Voir WINDOW SWAP)


SYMBOL

SYMBOL <numéro de caractère>,<liste de:<ligne>

    10 MODE 1:SYMBOL AFTER 105
    20 rangee1=255:REM 11111111 en binaire
    30 rangee2=129:REM 10000001 en binaire
    40 rangee3=189:REM 10111101 en binaire
    50 rangee4=153:REM 10011001 en binaire
    60 rangee5=153:REM 10011001 en binaire
    70 rangee6=189:REM 10111101 en binaire
    80 rangee7=129:REM 10000001 en binaire
    90 rangee8=255:REM 11111111 en binaire
    100 PRINT"La ligne 110 redefinie la lettre i (105)"
    105 PRINT"Tapez quelques 'i' et regardez !"
    110 SYMBOL 105,rangee1,
rangee2,rangee3,rangee4,rangee5,rangee6,rangee7,rangee8
    run

COMMANDE: Redéfinit la forme d'un caractère affiché à l'écran. Chacun des paramètres prend une valeur entière située entre 0 et 255.

Afin d'être en mesure d'attribuer une place en mémoire à un caractère redéfini, l'ordinateur doit avoir été préparé par la commande:

    SYMBOL AFTER x

...où x est inférieur ou égal au numéro de caractère à redéfinir.

On entre ensuite la commande SYMBOL, suivie immédiatement du numéro de caractère x.

On peut toujours faire apparaître à l'écran le caractère correspondant à la valeur de x, même s'il n'est pas accessible par l'intermédiaire du clavier. On utilise pour cela la commande:

    PRINT CHR$(x)

Après SYMBOL x viennent les huit paramètres définissant une à une les huit lignes constituant le caractère, en commençant par le haut. Chacun des paramètres prend une valeur comprise entre 0 et 255. C'est la représentation binaire du paramètre qui définit le motif de la ligne correspondante dans le nouveau caractère.

Si, par exemple, on donne au premier paramètre la valeur 1, la représentation en binaire de la première rangée sera alors: 00000001. Le point correspondant au 1 apparaîtra dans le caractère et sera de la couleur définie dans la commande PEN. En revanche, les points correspondants aux 0 seront affichés avec la couleur PAPER, c'est-à-dire qu'ils n'apparaîtront pas. On peut donc constater que le caractère redéfini dans notre exemple comportera un point dans le coin supérieur droit. Si l'on attribue aux septs autres paramètres les valeurs: 3, 7, 15, 31, 63, 0, 0, on obtient la représentation en binaire suivante:

paramètre (rangée) 1: 00000001 (1 en décimale)
paramètre (rangée) 2: 00000011 (3 en décimale)
paramètre (rangée) 3: 00000111 (7 en décimale)
paramètre (rangée) 4: 00001111 (15 en décimale)
paramètre (rangée) 5: 00011111 (31 en décimale)
paramètre (rangée) 6: 00111111 (63 en décimale)
paramètre (rangée) 7: 00000000 (0 en décimale)
paramètre (rangée) 8: 00000000 (0 en décimale)

Cette disposition des paramètres transcrits en binaire permet de visualiser la forme du nouveau caractère. On peut affecter ces paramètres au caractère numéro 255, par exemple, au moyen de la commande:

    SYMBOL 255,1,3,7,15,63,0,0

On remarque qu'il est inutile de faire figurer les deux derniers paramètres dans la mesure où ils sont nuls.

    SYMBOL 255,1,3,7,15,63

On peut éviter de convertir en notation décimale les symboles binaires constituant le
«dessin» du caractère. Il suffit pour cela d'introduire les paramètres directement en binaire, sans oublier le préfixe &X. Dans notre cas:

    SYMBOL 255,&X00000001,&X00000011,
&X00000111,&X00001111
   
&X00011111,&X00111111

Voici maintenant la commande permettant de faire apparaître le caractère:

    PRINT CHR$(255)

Si les paramètres ci-dessus sont affectés à un des caractères du clavier, le caractère redéfini apparaîtra chaque fois qu'on actionnera la touche correspondante, de même qu'à chaque commande PRINT le concernant. Ce nouveau caractère sera accepté par le BASIC comme l'équivalent du caractère remplacé.

Mots clés associés: HIMEM, MEMORY, SYMBOL AFTER



SYMBOL AFTER

SYMBOL AFTER <nombre entier>

    10 CLS
    20
SYMBOL AFTER 115
    30 PRINT"La ligne 40 redefinie la lettre s ";
    40 SYMBOL 115,0,56,64,64,48,8,8,112
    50 PRINT"en s"
    60 PRINT"on revient a l'etat normal en tapant:"
    70 PRINT"
SYMBOL AFTER 240"
    run

COMMANDE: Fixe la limite inférieure des numéros de caractères redéfinissables (de 0 à 255). La valeur par défaut du nombre entier est de 240, auquel cas on dispose de 16 caractères redéfinissables (entre 240 et 255). Lorsque le
<nombre entier> a pour valeur 32, tous les caractères situés entre 32 et 255 sont redéfinissables. La commande SYMBOL AFTER 256 interdit donc toute redéfinition de caractère.

La commande SYMBOL AFTER rétablit la valeur par défaut de tous les caractères précédemment redéfinis.

La commande SYMBOL AFTER ne peut PAS fonctionner si la valeur de HIMEM a été précédemment modifiée par une commande MEMORY ou par l'ouverture d'un fichier au moyen de OPENIN ou OPENOUT. L'ordinateur affiche dans ce cas le message d'erreur «Improper argument», (à moins que l'état précédent ne soit SYMBOL AFTER 256).

Mots clés associés: HIMEM, MEMORY, SYMBOL


TAB

(Voir PRINT TAB)


TAG

TAG [#
(<numéro de canal>)]

    10 INPUT "entrez votre nom";a$:CLS
    20 PRINT"Quel va et vient ";a$;" !!"
    30 TAG
    40 x=LEN(a$)*17:y=50+RND*300:MOVE -x,y
    50 FOR f=-x TO 640 STEP RND*7+3
    60 MOVE f,y:PRINT" ";a$;:FRAME:NEXT
    70 FOR b=640 TO -x STEP -RND*7+3
    80 MOVE b,y:PRINT a$;" ";:FRAME:NEXT
    90 GOTO 40
    run

COMMANDE: Ecrit le texte spécifié à la position du curseur graphique. Cette commande permet d'introduire du texte et des symboles dans un graphique et de les déplacer pixel par pixel plutôt que caractère par caractère. Le numéro de canal prend par défaut la valeur 0.

L'extrémité gauche de la chaine de caractères se positionne sur le curseur graphique (Text At Graphics). Les caractères de contrôle non visualisés tels que le changement de ligne ou le retour chariot n'auront aucun effet si l'instruction PRINT est terminée par un point-virgule; dans le cas contraire, ils apparaîtront sous leur forme graphique.

Si l'indicateur de canal est #0 (par défaut), BASIC annule la commande TAG lors du retour en mode direct.

Mots clés associés: TAGOFF



TAGOFF

TAGOFF
[#(<numéro de canal>)]

    10 MODE 2:TAG:REM texte aux coordonnees graphiques
    20 annee=1984:FOR x=1 TO 640 STEP 60
    30 MOVE x,400:DRAWR 0,-350
    40 annee=annee+1:PRINT annee;:NEXT
    50 TAGOFF:REM retour aux coordonnées texte
    60 LOCATE 28,25:PRINT"chiffres annuels"
    70 GOTO 70
    run

COMMANDE: Annule la commande TAG concernant le canal indiqué (#0 par défaut). Le texte se trouve donc à nouveau dirigé sur la position du curseur de texte.

Mots clés associés: TAG



TAN

TAN
(<expression numérique>)

    PRINT TAN(45)
       1.61977519

FONCTION: Calcule la TANgente de l'
(<expression numérique>), qui doit être comprise entre -200000 et +200000.

On peut exprimer l'argument en degrés ou en radians par l'intermédiaire des fonctions DEG et RAD, respectivement.

Mots clés associés: ATN, COS, DEG, RAD, SIN



TEST

TEST (<coordonnée x>,
<coordonnée y>)

    10 CLS
    20 PRINT"Vous utilisez le stylo (pen) No:";
    30 PRINT TEST(12,394)
    40 PRINT"Changez de mode et de stylo";
    50 PRINT"... puis faites RUN."
    run

FONCTION: Place le curseur graphique à la position définie par x et y (en coordonnées absolues) et indique la valeur du paramètre <encre> à cet endroit.

Mots clés associés: MOVE, MOVER, TESTR, XPOS, YPOS



TESTR

TESTR (<décalage x>,<décalage y>)

    10 MODE 0:FOR x=1 TO 15:LOCATE 1,x
    20 PEN x:PRINT STRING$(10,143);:NEXT
    30 MOVE 200,400:PEN 1
    40 FOR n=1 TO 23:LOCATE 12,n
    50 PRINT"pen";TESTR(0,-16):NEXT
    run

FONCTION: Place le curseur sur une position de coordonnées x et y par rapport à sa position actuelle et indique la valeur du paramètre <encre> à cet endroit.

Mots clés associés: MOVE, MOVER, TEST, XPOS, YPOS



THEN

(Voir IF)


TIME

TIME

    10 CLS:REM horloge
    20 INPUT "heure";heure
    30 INPUT "minute";minute
    40 INPUT "seconde";seconde
    50 CLS:donnee=INT(TIME/300)
    60 WHILE heure<13
    70 WHILE minute<60
    80 WHILE tic<60
    90 tic=(INT(TIME/300)-donnee)+seconde
    100 LOCATE 1,1
    110 PRINT USING "## ";heure;minute;tic
    120 WEND
    130 tic=0:seconde=0:minute=minute+1
    140 GOTO 50
    150 WEND
    160 minute=0:heure=heure+1
    170 WEND
    180 heure=1
    190 GOTO 60
    run

FONCTION: Indique le temps écoulé depuis la mise sous tension de l'ordinateur ou la dernière commande RESET (les temps de transfert entre l'ordinateur et l'unité de disquette ne sont pas comptés).

A chaque seconde correspond une fois la valeur: TIME/300.

Mots clés associés: AFTER, EVERY, WEND, WHILE


TO

(Voir FOR)


TROFF
TRON

TROFF
TRON

    10 TROFF:PRINT:PRINT"TROFF"
    20 FOR n=1 TO 8
    30 PRINT"Le programme tourne":NEXT
    40 IF f=1 THEN END
    50 TRON:PRINT:PRINT"TRON"
    60 f=1:GOTO 20
    run

COMMANDE: Permet de suivre l'exécution d'un programme par l'affichage de chaque numéro de ligne exécutée. Ce numéro est affiché entre crochets []. Cette fonction s'obtient au moyen de la commande TRON. La commande TROFF rétablit le mode normal d'exécution. La commande TRON est particulièrement précieuse lorsque l'on désire suivre ligne par ligne le déroulement d'un programme afin de corriger une erreur.

Mots clés associés: Aucun



UNT

UNT (<adresse>)

    PRINT UNT(&FF66)
       -154

COMMANDE: Convertit l'argument en un nombre entier signé (en représentation complément à 2) compris entre -32768 et 32767.

Mots clés associés: CINT, FIX, INT, ROUND



UPPER$

UPPER$
(<chaîne alphanumérique>)

    10 CLS:a$="mes petites, comme vous avez grandies !"
    20 PRINT UPPER$(a$)
    run

FONCTION: Recopie la
<chaîne alphanumérique> indiquée en remplaçant par des majuscules les caractères alphabétiques (de A à Z) apparaissant en minuscules. Cette fonction s'utilise en particulier pour le traitement d'entrées dans lesquelles se trouvent mélangées des majuscules et des minuscules.

Mots clés associés: LOWER$


USING

(voir PRINT USING)


VAL

VAL (<chaîne de caractères>)

    10 CLS:PRINT "Je connais mes tables !"
    20 PRINT:PRINT"pressez une touche (1-9)"
    30 a$=INKEY$:IF a$="" THEN 30
    40 n=VAL(a$):IF n<1 OR n>9 THEN 30
    50 FOR x=1 TO 12
    60 PRINT n;"X";x;"=";n*x
    70 NEXT:GOTO 20
    run

FONCTION: Fournit la VALeur numérique du ou des premiers caractères (y compris le signe négatif et le point décimal) de la
<chaîne alphanumérique> indiquée.

On obtient la valeur 0 lorsque le premier caractère de la chaîne n'est pas un chiffre. Si le signe
«-» apparaît en premier caractère ou si celui-ci est un point décimal suivi d'un caractère non numérique, le message d'erreur «Type mismatch» (erreur de frappe) (13) s'affiche à l'écran.

Mots clés associés: STR$


VPOS

VPOS
( # <numéro de canal>)

    10 MODE 1:BORDER 0:LOCATE 8,2
    20 PRINT"utilisez les touches flechees (haut/bas)"
    30 WINDOW 39,39,1,25:CURSOR 1,1
    40 LOCATE 1,13
    50 IF INKEY(0)<>-1 THEN PRINT CHR$(11);
    60 IF INKEY(2)<>-1 THEN PRINT CHR$(10);
    70 LOCATE #1,3,24
    80 PRINT#1,"curseur texte ";
    90 PRINT#1,"position verticale =";
    100 PRINT#1,VPOS(#0):GOTO 50
    run

FONCTION: Indique, sur l'axe Vertical, la POSition du curseur de texte, à partir du bord supérieur de la fenêtre de texte. L'indicateur de canal doit obligatoirement figurer; il ne prend pas la valeur #0 par défaut.

Mots clés associés: POS, WINDOW



WAIT

WAIT <numéro de port>,<masque>[,<inversion>]

    WAIT &FF34,20,25

COMMANDE: Provoque une attente jusqu'à ce que le port d'entrées-sorties désigné transmette une valeur comprise entre 0 et 255; de telle sorte qu'après avoir opéré un XOR (OU exclusif) avec le <masque>, puis un AND (ET) avec le paramètre d'<inversion>, on obtienne un résultat non nul.

Le BASIC attend jusqu'à ce que la condition est vérifiée.

Cette commande est à utiliser avec précaution.

Mots clés associés: INP, OUT



WEND

WEND

    WEND

COMMANDE: Indique la fin d'une section de programme exécutée à l'intérieur d'une boucle WHILE. Le BASIC reconnaît automatiquement la commande WHILE à laquelle WEND est associée.

Mots clés associés: TIME, WHILE



WHILE

WHILE
<expression logique>

    10 CLS:PRINT "chronometre de 10 secondes":t=TIME
    20 WHILE TIME<t*3000
    30 SOUND 1,0,100,15
    40 WEND:SOUND 129,40,30,15

COMMANDE: Répète une section de programme tant qu'une condition donnée est vérifiée. Le mot WHILE indique le début de la section à exécuter tandis que l'
<expression logique> définit la condition à vérifier.

Mots clés associés: TIME, WEND



WIDTH

WIDTH <nombre entier>

    WIDTH 40

COMMANDE: Indique le nombre de caractères par ligne lors d'une sortie sur imprimante. Le BASIC se charge donc d'envoyer automatiquement les retours chariot et les sauts de ligne nécessaires durant l'impression.

En l'absence d'une commande WIDTH, l'ordinateur adopte par défaut la valeur 132. La commande WIDTH 255 supprime tous les retours chariots et sauts de ligne supplémentaires laissant à l'imprimante le soin de générer elle-même ces caractères. Cependant, les retours chariot et sauts de ligne normaux dûs à l'instruction PRINT continuent à être envoyés à moins que la commande PRINT ne soit terminée par un
«;» ou une virgule.

Mots clés associés: POS



WINDOW

WINDOW
[ # <numéro de canal>,]<gauche>,<droite>,<haut>,<bas>

    10 MODE 0:BORDER 0:REM cible tv
    20 INK 0,0:INK 1,25:INK 2,23:INK 3,21
    30 INK 4,17:INK 5,6:INK 6,2:INK 7,26
    40 PAPER 0:CLS
    50 PAPER 1:WINDOW 2,4,1,18:CLS
    60 PAPER 2:WINDOW 5,7,1,18:CLS
    70 PAPER 3:WINDOW 8,10,1,18:CLS
    80 PAPER 4:WINDOW 11,13,1,18:CLS
    90 PAPER 5:WINDOW 14,16,1,18:CLS
    100 PAPER 6:WINDOW 17,19,1,18:CLS
    110 PAPER 7:WINDOW 2,19,19,25:CLS
    120 GOTO 120
    run

COMMANDE: En mode texte, indique les dimensions d'un canal d'affichage à l'écran (on parle dans ce cas de fenêtre). On veillera à ce que les valeurs des paramètres <gauche>, <droite>, <haut> et <bas> correspondent bien aux coordonnées en vigueur dans le MODE écran utilisé.

Le <numéro de canal> prendra par défaut la valeur # 0

Mots clés associés: WINDOW SWAP



WINDOW SWAP

WINDOW SWAP <numéro de canal>,<numéro de canal>

    10 MODE 1:INK 1,24:INK 2,9:INK 3,6
    20 WINDOW 21,40,13,25:PAPER 3
    30 WINDOW #1,1,20,1,12:PAPER #1,2
    40 CLS:PRINT" Fenetre No 0"
    50 CLS #1:PRINT #1," Fenetre No 1"
    60 LOCATE 1,6
    70 PRINT" Fenetre Rouge (0)";SPC(2)
    80 LOCATE #1,1,6
    90 PRINT #1," Fenetre Verte (1)"
    100 FOR t=1 TO 1000:NEXT
    110 WINDOW SWAP 0,1:GOTO 60
    run

COMMANDE: Intervertit la première fenêtre et la seconde.

Les deux
<numéros de canal> doivent obligatoirement figurer sans être précédés, dans ce cas précis, de l'indicateur de canal #.

Cette commande permet de diriger les messages BASIC sur un autre canal que celui par défaut #0.

Mots clés associés: WINDOW



WRITE

WRITE [
# <numéro de canal>,][<données à écrire>]

    10 REM ecrit des donnees sur la disquette
    20 INPUT "donnez -moi un nombre";a
    30 INPUT
"donnez -moi une chaine de caracteres";a$
    40 OPENOUT "NOMFICH"
    50 WRITE #9,a,a$
    60 CLOSEOUT:PRINT "Les donnees sont sauvees sur disquette"
    run

COMMANDE: Affiche ou écrit (WRITE) des données sur le canal indiqué. Deux articles distincts doivent être séparés par une virgule et les chaînes de caractères sont placées entre guillemets.

Dans notre exemple, les données entrées seront écrites sur le canal #9, c'est-à-dire enregistrées sur disquette.

Pour retrouver les données, on utilisera le programme ci-dessous:

    10 REM retrouve les données sur la disquette
    20 OPENIN "NOMFICH":INPUT #9,a,a$
    30 CLOSEIN:PRINT"Les 2 donnees sont:"
    40 PRINT:PRINT a,a$
    run

Mots clés associés: INPUT, LINE INPUT



XOR

<argument> XOR <argument>

    IF "alain" < "bernard" XOR "chien" > "chat" THEN PRINT "vrai" ELSE PRINT "faux"
       faux
    IF "bernard" < "alain" XOR "chat" > "chien" THEN PRINT "vrai" ELSE PRINT "faux"
       faux
    IF "alain" < "bernard" XOR "chat" > "chien" THEN PRINT "vrai" ELSE PRINT "faux"
       vrai
     ....
    PRINT 1 XOR 1
       0
    PRINT 0 XOR 0
       0
    PRINT 1 XOR 0
       1

OPERATEUR: Effectue bit à bit l'opération booléenne XOR (OU exclusif) sur des entiers. Lorsque les bits des deux arguments ne sont pas identiques, le bit résultant vaut 1.

Mots clés associés: AND, OR, NOT


XPOS

XPOS

    10 MODE 1:DRAW 320,200
    20 PRINT"POSition X du curseur graphique=";
    30 PRINT XPOS
    run

FONCTION: Indique, sur l'axe horizontal (X), la POSition du curseur graphique.

Mots clés associés: MOVE, MOVER, ORIGIN, YPOS



YPOS

YPOS

    10 MODE 1:DRAW 320,200
    20 PRINT"POSition Y du curseur graphique";
    30 PRINT YPOS
    run

FONCTION: Indique, sur l'axe vertical (Y), la POSition du curseur graphique.

Mots clés associés: MOVE, MOVER, ORIGIN, XPOS



ZONE

ZONE <nombre entier>

    10 CLS:FOR z=2 TO 20
    20 ZONE z
    30 PRINT "X","X ZONE ";z:NEXT
    run

COMMANDE: Modifie la largeur de la tabulation désignée par la virgule dans la commande PRINT. La largeur des zones d'affichage ou d'impression, (de 13 caractères par défaut), peut ainsi prendre une valeur entière quelconque entre 1 et 255.

Mots clés associés: PRINT