![]() ![]() ![]() ![]() 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 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
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 RAD, RANDOMIZE, READ, RELEASE, REM, REMAIN, RENUM, RESTORE, RESUME, RESUME NEXT, RETURN, RIGHT$, RND, ROUND, RUN", RUN SAVE, SGN, SIN, SOUND, SPACE$, SPC, SPEED INK, SPEED KEY, SPEED WRITE, SQ, SQR, STEP, STOP, STR$, STRING$, SWAP, SYMBOL, 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: READ, RESTORE 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 AMSTRAD). 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, GOTO, THEN 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 [#<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 |