Hébergé par Ti-Gen      
GFA-Basic On-Calc GFA Basic On-Calc!     
Bienvenue sur le site de GFA-Basic, un langage interprété on-calc pour les TI89/89T/92+ & V200.
Ce site a pour objectif de regrouper un ensemble d'outils et de documentations pour vous permettre de mieux exploiter ce langage sur votre calculatrice.

 
Menu général
News
Le manuel
FAQ (Foire Aux Questions)
Téléchargements
GFA-Basic Editor
Forum
Historique
A Propos...
Contacts

Administration

Partenaires




Compteur live
Compteur de visites Compteur pages rank




    
Introduction
Instructions et fonctions


Cette partie contient la description de toutes les instructions et fonctions disponibles, pas forcément dans l'ordre alphabétique. Il se peut que certaines instructions ou fonctions soient différentes du GFA Basic sur ATARI ST. Ce manuel fera la distinction.

La différence entre instruction et ordre, qui avait un sens historiquement, est désormais levée (Il était d'usage d'appeler ordre ce qui concernait le mode direct et qui contribuait à l'élaboration des programmes). Les instructions, par contre, s'utilisaient à l'interieur d'un programme. Comme toutes les instructions peuvent être employées aussi bien en mode direct que dans un programme, cette distinction n'est plus necessaire).

La description des instructions et des fonctions s'organise en quatre parties.


1- Syntaxe:

Ici est décrit le format de l'instruction ou de la fonction.

Les mots écrits en majuscules sont des mots-clés.

Les expressions entre crochets sont optionnelles, c'est à dire facultatives. Trois petits points "..." indiquent que l'expression qui se trouve avant peut être répétée autant de fois que l'on veut.

Les expressions qui interviennent dans le format de l'instruction sont expliquées dans la suite de la description.


2- Exemple:

Dans cette partie, on présente un exemple simple de programmes.

D'une part, l'exemple doit mettre en évidence les différentes syntaxes possibles de l'instruction.

D'autre part, l'exemple sert à concrétiser l'utilisation de l'instruction ou de la fonction.

Si, après l'explication de l'instruction ou de la fonction, des doutes subsistent quant à son emploi ou son utilitée, il est conseillé de taper et de tester soi-même l'exemple fourni.

Comme certains exemples utilisent des boucles sans fin, il est important de savoir que l'on peut interrompre l'execution d'un programme avec la touche [ON].


3- Fonction:

Décrit en peu de mots quelle est l'utilisation de l'instruction ou de la fonction (c'est-à-dire ce que fait l'instruction ou la fonction).


4- Explication:

Dans cette partie, on explique de façon détaillée ce qu'il est important de connaître pour la mise en application de l'instruction ou de la fonction.

Si on peut préciser le domaine d'application de l'instruction.

  • Instruction I/O (relative aux entrées/sorties).
  • Instruction graphique.
  • Instruction arithmétique.
  • Instruction de structure.
  • ...

    ce dernier sera précisé dans l'en-tête de la description.

    Dans la description concernant les instructions graphiques, nous supposons que la résolution de la calculatrice est en noir & blanc et que la taille de l'écran est de 240 x 128 pixels.

    A noter qu'il existe des constantes, les constantes dynamiques ont un rapport avec le modèle de la calculatrice où le programme est executé et non développé.

    Attention:
    La liste ci-dessous contient énormément d'instructions/fonctions non implantées et est incompléte (certaines fonctions ne sont pas encore documentées mais elles sont implantées dans GFA-Basic).
    Veuillez vous reporter au fichier beta.txt disponible dans le pack pour connaître les instructions/fonctions développées et utilisables.

    Liste des instructions/fonctions
    Instruction arithmétique:
    ADDDECDIVINC
    MULSUB

    Instruction I/O:
    BGETBITBLTBLOAD BSAVE
    BPUTCHAINCHDIRCLEAR
    CLOSEDIRFIELDFILES
    FORM INPUTFORM INPUT ASGETHARDCOPY
    INPUT INPUT #KILLLINE INPUT
    LINE INPUT #LISTLLISTLOAD
    LPRINTMKDIRNAMEOPEN
    OUTPRINT PRINT #PRINT USING
    PUTRELSEEKRMDIRSAVE
    PSAVESEEKWRITE WRITE #

    Instruction graphique:
    ALERTBOXCIRCLECOLOR
    DEFFILLDEFLINEDEFMARKDEFMOUSE
    DEFTEXTDRAWELLIPSEFILL
    GRAPHMODEHIDEMLINEMOUSE
    PBOXPCIRCLEPELLIPSEPLOT
    POLYLINE POLYFILL POLYMARKPRBOX
    RBOXSETCOLORSGETSHOWN
    SPRITESPUT

    Instruction de structure:
    @DO...LOOPEXIT EXIT IF
    FOR...NEXTGOSUBGOTOIF
    ELSEIF ELSE IF ELSE ENDIF
    LOCALON...GOSUBPROCEDUREREPEAT...UNTIL
    RETURNWHILE...WEND

    Instruction:
    ' !ARRAYFILLBMOVE
    CALLCHDRIVECLEARWCLOSEW
    CLRCLSCONTDATA
    DEFFNDEFLISTDEFNUMDIM
    EDITENDERASEERROR
    FILESELECTFULLWGETINFOW
    LETLSETMENUMID$
    MONITORNEWON BREAK ON BREAK CONT
    ON BREAK GOSUBON ERROR ON ERROR GOSUBON MENU BUTTON
    ON MENU GOSUBOPENWOPTION OPTION BASE 0
    OPTION BASE 1PAUSEPOKE DPOKE
    LPOKEPUTQUITREAD
    REMRESERVERESTORERESUME
    RSETRUNSETTIMESOUND
    SPOKE SDPOKE SLPOKESTOP
    SWAPSYSTEMTEXTTITLEW
    TROFFTRONVOIDVSYNC
    WAVE

    Fonction:
    ==ABSARRPTRASC
    ATNBASEPAGEBIN$C:
    CHR$COSCRSCOL CRSLIN
    CVI CVL CVFDATE$
    DFREEDIM?DIR$EOF
    ERREVENEXISTEXP
    FATALFIXFRACFRE
    HEX$HIMEMINKEY$INP
    INP?INPUT$INSTRINT
    LEFT$LENLOCLOF
    LOG LOG10LPOSMAX
    MENUMID$MINMKI$
    MKL$ MKF$MOUSEX MOUSEY
    MOUSEKOCT$ODDOUT?
    PEEK DPEEK LPEEKPOINT
    POSRANDOMRIGHT$RND
    SGNSINSPACE$SPC
    SQRSTR$STRING$TAB
    TANTIME$TIMERTRUNC
    TYPEUPPER$VALVAL?
    VARPTRVDIBASE

    Instruction/Fonction:
    *EXEC

    Constante statique:
    FALSEPITRUE

    Constante dynamique:

    Il y a un total de 250 instructions/fonctions.


    INSTRUCTION '
    !



    Syntaxe: ' texte
    ! texte

    Exemple(s): 'Ceci est un commentaire
    CLS
    PRINT "toto" !Encore un autre commentaire


    Fonction: Permet d'insérer des commentaires à l'intérieur du programme.

    Explications:

    Les commentaires illustrent un programme et rendent sa compréhension plus facile.

    L'instruction ' (REM) n'est pas executée, mais le texte 'texte' apparaît sur le listing.

    Un commentaire peut être placé après une instruction, en utilisant le caractère séparateur "!":

       DO     !Boucle sans fin
       LOOP   !Avec rien dedans




    INSTRUCTION/FONCTION *

    Non implantée.




    FONCTION ==

    Non implantée.




    INSTRUCTION DE STRUCTURE @



    Syntaxe: @nom[(list expressions)]

    Exemple(s): CLS
    PRINT "Programme principal"
    @sousprg
    PRINT "Programme principal"
    PROCEDURE sousprg
      PRINT "Sous programme"
    RETURN


    Fonction: Synonyme de Gosub.

    Explications:

    Ce symbole est simplement un synonyme de la fonction Gosub. Il permet ainsi de mieux identifier les sauts à des procédures (sous-programmes).




    FONCTION ABS



    Syntaxe: ABS(x)

    Exemple(s): CLS
    A=-2329
    PRINT ABS(A)
    PRINT ABS(&X1010)
    PRINT ABS(3*(-7))


    Fonction: Retourne la valeur absolue de x.

    Explications:

    x est une expression numérique quelconque.
    ABS(x) est la fonction mathématique valeur absolue. La valeur absolue d'une expression numérique est toujours supérieur ou égale à 0. Elle vaut:

    - si x>0, alors ABS(x)=x
    - si x=0, alors ABS(x)=0
    - si x<0, alors ABS(x)=-x




    INSTRUCTION ARITHMéTIQUE ADD



    Syntaxe: ADD var,n

    Exemple(s): CLS
    T=TIMER
    FOR I%=1 TO 10000
      ADD A%,5
    NEXT I%
    PRINT (TIMER-T)/200
    A%=0
    T=TIMER
    FOR I%=1 TO 10000
      A%=A%+5
    NEXT I%
    PRINT (TIMER-T)/200


    Fonction: Additionne n à la valeur de var.

    Explications:

    'var' doit être une variable numérique ou un élément d'un tableau numérique. 'n' est une expression numérique.

    ADD var,n est identique à var=var+n. L'avantage de l'instruction ADD réside dans la vitesse d'execution (testez l'exemple!). Ainsi l'utilisation de ADD permet d'augmenter sensiblement la vitesse d'execution, qui par ailleurs est déjà très grande.




    INSTRUCTION GRAPHIQUE ALERT

    Non implantée.




    INSTRUCTION ARRAYFILL



    Syntaxe: ARRAYFILL tabl(),n

    Exemple(s): CLS
    DIM A%(4,5,6),B(100)
    C=7
    ARRAYFILL A%(),12
    ARRAYFILL B(),C
    PRINT A%(0,0,0),A%(4,5,6),B(80)


    Fonction: Remplit un tableau avec la valeur n.

    Explications:

    'tabl()' est un tableau numérique ou un tableau de booléens quelconque. Cette instruction affecte la valeur n à tous les éléments de tabl().

    'n' peut être un nombre ou une variable numérique.

    Ainsi, l'instruction tirée de l'exemple:

                   ARRAYFILL A%(),12

    est identique au bloc d'instructions:

                   FOR I=0 TO 4
                     FOR J=0 TO 5
                       FOR K=0 TO 6
                         A%(I,J,K)=12
                       NEXT K
                     NEXT J
                   NEXT I




    FONCTION ARRPTR



    Syntaxe: ARRPTR(var)

    Exemple(s): CLS
    A$="BASIC"
    PRINT ARRPTR(A$)
    PRINT DPEEK(ARRPTR(A$))
    PRINT DPEEK(ARRPTR(A$)+2)


    Fonction: Détermine l'adresse du descripteur d'une chaîne de caractères ou d'un tableau.

    Explications:

    'var' est une variable alphanumérique (chaîne de caractères) ou un tableau.
    Les chaînes de caractères et les tableaux sont placés en mémoire suivant un schéma précis à l'aide d'un descripteur.

    ARRPTR détermine l'adresse du premier octet du descripteur qui est différent selon une chaîne de caractères ou un tableau. Dans l'exemple on détermine le numéro de handle et la longeur de A$.

    A noter que si le type d'une variable est différent d'une chaîne de caractère, une erreur est retournée. Pour obtenir l'adresse du contenu d'une variable, utilisez la fonction Varptr.




    FONCTION ASC



    Syntaxe: ASC(x$)

    Exemple(s): CLS
    A$="Gfa"
    PRINT ASC(A$)
    PRINT ASC("!")
    PRINT ASC("!ATTENTION!")


    Fonction: Retourne le code ASCII du premier caractère de la chaîne x$.

    Explications:

    Les caractères disponibles sur TI68K sont ordonnés suivant le code ASCII. Il y a 256 caractères repérables par leur code compris entre 0 et 255 (les codes 0 à 31 représentent des caractères de contrôle). Une table de correspondance entre les caractères et leurs codes se trouve dans le menuel de votre calculatrice.

    'x$' est une chaîne de caractères quelconque (string). La fonction ASC retourne le code ASCII du premier caractère d'une chaîne. Ainsi, ASC("!ATTENTION!") est équivalent à ASC("!"), et vaut 33. Si la chaîne x$ est une chaîne vide, la valeur retournée est 0.




    FONCTION ATN



    Syntaxe: ATN(x)

    Exemple(s): CLS
    INPUT pente
    RAD=ATN(pente/100)
    DEGRE=RAD*180/PI
    PRINT DEGRE


    Fonction: Retourne l'arctangente de x.

    Explications:

    'x' est une expression numérique qui représente la valeur de la tangente d'un certain angle (en radian) que l'on veut calculer.

    La fonction ATN retourne une valeur comprise entre -PI/2 et PI/2. L'angle obtenu a pour unité le radian. Si l'on veut convertir cet angle en degrés, il faut le multiplier par 180/PI (PI représente le périmètre d'un cercle de diamètre 1. Sa valeur est obtenue directement grâce à la fonction PI du BASIC Gfa).




    FONCTION BASEPAGE

    Non implantée.




    INSTRUCTION I/O BGET

    Non implantée.




    FONCTION BIN$



    Syntaxe: BIN$(x)

    Exemple(s): CLS
    A=-1
    B=&O22
    PRINT BIN$(A)
    PRINT BIN$(234)
    PRINT BIN$(B)


    Fonction: Convertit la valeur de x en une chaîne de caractères représentant l'écriture binaire de x.

    Explications:

    'x' est un entier relatif (compris entre -2147483648 et +2147483647) écrit dans une représentation quelconque (c'est à dire la représentation décimale normale (sans préfixe), la représentation hexadécimale (préfixe &H), la représentation octale (préfixe &O) ou la représentation binaire (préfixe &X)) ou une variable.

    BIN$ convertit x en une chaîne de caractères qui est la représentation binaire de x (c'est-à-dire que la variable B de notre exemple est convertie en la chaîne "10010").

    BIN$, tout comme HEX$ et OCT$, utilise la représentation interne des nombres sur 32 bits: le résultat obtenu n'est donc jamais précédé d'un signe. Ce n'est pas le cas avec la représentation décimale qui traite le signe des nombres entiers.

    (voir aussi HEX$(x), OCT$(x) et STR$(x)).




    INSTRUCTION I/O BITBLT

    Non implantée.




    INSTRUCTION I/O BLOAD
    BSAVE

    Non implantée.




    INSTRUCTION BMOVE

    Non implantée.




    INSTRUCTION GRAPHIQUE BOX



    Syntaxe: BOX x0,y0,x1,y1

    Exemple(s): CLS
    BOX 38,32,150,96
    BOX 188,96,263,32




    Fonction: Trace un rectangle vide dont les deux sommets sur la diagonale ont pour coordonnées (x0,y0) et (x1,y1).

    Explications:

    L'origine des coordonnées est le coin supérieur gauche de l'écran. Les deux sommets ne doivent pas obligatoirement faire partie de l'écran ((0-239,0-127) sur TI92+/V200), ((0-159,0-99) sur TI89/TI89SE/TI89T). Dans ce cas, il est évident que seule une partie du rectangle sera représenté (voir second exemple).

    Cette instruction utilise la ROM_CALL 0x195 (DrawClipRect).




    INSTRUCTION I/O BPUT

    Non implantée.




    FONCTION C:

    Non implantée.




    INSTRUCTION CALL

    Non implantée.




    INSTRUCTION I/O CHAIN

    Non implantée.




    INSTRUCTION I/O CHDIR

    Non implantée.




    INSTRUCTION CHDRIVE

    Non implantée.




    FONCTION CHR$



    Syntaxe: CHR$(x)

    Exemple(s): CLS
    PRINT CHR$(65)
    PRINT CHR$(577)
    PRINT CHR$(-191)


    Fonction: Retourne le caractère dont le code ASCII est x.

    Explications:

    Les caractères disponibles sur TI68K sont numérotés suivant le code ASCII. Il y a 256 caractères dont les codes sont comrpis entre 0 et 255 (les codes 0 à 31 représentent des caractères de contrôle). Une table de correspondance entre les différents caractères et leurs codes se trouve dans le maneul de votre calculatrice.

    'x' est un entier relatif. 'x' est tout d'abord converti en un entier comrpis entre 0 et 255 grâce à la formule x AND 255.

    On obtient une chaîne de caractères de longueur 1 avec le caractère correspondant au code ASCII. Ainsi les trois exemples ci-dessus renvoient tous la chaîne de caractères "A".




    INSTRUCTION GRAPHIQUE CIRCLE

    Non implantée.




    INSTRUCTION I/O CLEAR

    Non implantée.




    INSTRUCTION CLEARW

    Non implantée.




    INSTRUCTION I/O CLOSE

    Non implantée.




    INSTRUCTION CLOSEW

    Non implantée.




    INSTRUCTION CLR



    Syntaxe: CLR var[()][,var[()]...]

    Exemple(s): CLS
    DIM tbl(2)
    A=10
    PRINT A,DIM?(tbl())
    CLR A,tbl()
    PRINT A,DIM?(tbl())


    Fonction: Efface une liste de variables.

    Explications:

    'var' représente un nom de variable ou de tableau. L'exemple prdouit le même effet que:
                CLS
                PRINT A,DIM?(tbl())

    Sur ATARI ST l'effacement d'un tableau n'est pas supporté par cette fonction. Elle ne fonctionne qu'avec les variables. Il est à noté que sur TI68K, la fonction ERASE est identique à CLR, contrairement à l'ATARI ST ou ERASE efface uniquement les tableaux.




    INSTRUCTION CLS



    Syntaxe: CLS [[#]i]

    Exemple(s): CLS
    PRINT 52
    CLS
    PRINT 25


    Fonction: Efface l'écran.

    Explications:

    L'instruction CLS entraine l'effacement de l'écran. Le curseur est replacé à sa position HOME (en haut à gauche de l'écran). CLS peut être aussi utilisé pour des canaux de données (qui ont par exemple été ouvert par OPEN "",#1,"VID:"), la syntaxe est alors CLS #i (où i indique le numéro du canal).

    Gestion des canaux de données non implantée.




    INSTRUCTION GRAPHIQUE COLOR

    Non implantée.




    INSTRUCTION CONT

    Non implantée.




    FONCTION COS



    Syntaxe: COS(x)

    Exemple(s): 1) CLS
       INPUT RAD
       PRINT COS(RAD)
       INPUT DEG
       PRINT COS(DEG*PI/180)

    2) CLS
       PLOT 120,64
       FOR I=1 TO 5400
         X=I/36*COS(I*PI/180)
         Y=I/36*SIN(I*PI/180)
         DRAW TO 120+X,64+Y
       NEXT I


    Fonction: Retourne le cosinus de x.

    Explications:

    'x' est une expression numérique qui représente l'angle (en radians) dont on veut calculer le cosinus.

    Si l'on veut introduire l'angle en degrè, il faut remplacer x par deg*PI/180, où PI est une fonction du BASIC Gfa qui renvoie la valeur de pi (c'est-à-dire le périmètre d'un cercle de diamètre 1).

    Le premier exemple calcul tout d'abord le cosinus d'un angle donné en radians, puis celui d'un angle donné en degrès. Le deuxième exemple dessine une spirale degré par degré.

    L'exemple n°2 n'est pas fonctionnel dû à des d'instructions et des fonctions non implantées.




    FONCTION CRSCOL
    CRSLIN



    Syntaxe: °CRSCOL
    CRSLIN

    Exemple(s): CLS
    Ox=CRSCOL
    Oy=CRSLIN
    PRINT AT(9,9);"TEST"
    PRINT AT(Ox,Oy);


    Fonction: Permet d'obtenir la position du curseur (colonne et ligne).

    Explications:

    La fonction CRSLIN resp. CRSOL retournent la ligne resp. la colonne où se trouve le curseur. Dans l'exemple, on sauve la position du curseur, on affiche un message et enfin, on replace le curseur à sa position initiale.

    (voir aussi PRINT AT).

    Sur Atari ST le curseur change de coordonnées en même temps que le texte avance. Contraiment sur TI68K où seulement les coordonnées du cursuer avec PRINT AT et INPUT AT sont mémorisées.




    FONCTION CVI
    CVL
    CVF



    Syntaxe: CVI(x$)
    CVL(x$)
    CVF(x$)

    Exemple(s): CLS
    A=0.1111
    A$=MKF$(A)
    PRINT CVF(A$)


    Fonction: Convertit une chaîne de caractères en une valeur numérique.

    Explications:

    'x$' est une chaîne de caractères quelconque.
    Les différentes fonctions convertissent x$ en une valeur numérique, à savoir:


  • CVI convertit une chaîne de 2 octets en un entier de 16 bits.

  • CVL convertit une chaîne de 4 octets en un entier de 32 bits.

  • CVF convertit une chaîne de 10 octets réalisant le format spécifique des flottants sur TI68K en valeur numérique.
    (fcts inverses: MKI$, MKL$, MKF$).

    Les données à convertir doivent se trouve sur une adresse paire! Dans le cas contraire, une barre noire en haut de l'écran avec le message d'erreur 'Address error' s'affichera et vous serez obligé d'effectuer un RESET de la calculatrice!

    Le GFA Basic sur TI68K ne supporte pas les fonctions CVS et CVD contrairement à l'ATARI ST. Il est a noté que le format des flottants sur ATARI ST est différent du format des flottants sur TI68K, un flottant sur l'ATARI ST est stocké sur 6 octets contrairement à 10 octets sur TI68K.




    INSTRUCTION DATA



    Syntaxe: DATA [const[,const]...]

    Exemple(s): CLS
    READ A,B$,C$,D,E!
    PRINT A,B$,C$,D,E!
    DATA 234,"G,f,a","BASIC",&HFF,56


    Fonction: Permet de stocker des valeurs qui pourront être lus par READ.

    Explications:

    'const' est une constante numérique, booléenne ou alphanumérique. Les constantes sont séparées entre elles par des virgules. Les constantes numériques peuvent être représentées sous n'importe quelle format (décimal, héxadécimal, octal, binaire). Si on lit, avec l'instruction READ, la valeur 0 pour une variable booléenne, on affecte à celle-ci 0. Pour toutes les autres valeurs, on affecte à la variable booléenne -1.

    (voir aussi READ et RESTORE).




    FONCTION DATE$

    Non implantée.




    INSTRUCTION ARITHMéTIQUE DEC



    Syntaxe: DEC var

    Exemple(s): CLS
    T=TIMER
    FOR I%=1 TO 10000
      DEC A%
    NEXT I%
    PRINT (TIMER-T)/200
    A%=0
    FOR I%=1 TO 10000
      A%=A%-1
    NEXT I%
    PRINT (TIMER-T)/200


    Fonction: Diminue var de 1.

    Explications:

    'var' doit être une variable numérique ou un élément de tableau numérique. DEC var est identique à var=var-1. L'avantage de l'instruction DEC réside dans son format concis (économie de place mémoire) et surtout dans sa vitesse d'execution (testez l'exemple !). Ainsi, l'utilisation de l'instruction DEC permet d'augmenter de façon sensible la vitesse d'execution qui par ailleur est déjà très élevée.




    INSTRUCTION GRAPHIQUE DEFFILL

    Non implantée.




    INSTRUCTION DEFFN

    Non implantée.




    INSTRUCTION GRAPHIQUE DEFLINE

    Non implantée.




    INSTRUCTION DEFLIST

    Non implantée.




    INSTRUCTION GRAPHIQUE DEFMARK

    Non implantée.




    INSTRUCTION GRAPHIQUE DEFMOUSE

    Non implantée.




    INSTRUCTION DEFNUM

    Non implantée.




    INSTRUCTION GRAPHIQUE DEFTEXT

    Non implantée.




    FONCTION DFREE



    Syntaxe: DFREE(x)

    Exemple(s): CLS
    PRINT DFREE(0)
    PRINT DFREE(1)


    Fonction: Indique la place mémoire disponible sur chaque unité de mémoire.

    Explications:

    'n' est une expression numérique qui correspond au numéro de l'unité de mémoire.

    L'instruction retourne la place mémoire disponible sur l'unité de mémoire n

    Si n=0, il s'agit de l'unité de mémoire RAM, dans le cas contraire il s'agit de l'unité de mémoire d'archive (mémoire Flash).

    Sur ATARI ST, cette fonction renvoie l'espace mémoire disponible sur une disquette de l'unité n.




    INSTRUCTION DIM



    Syntaxe: DIM var(indices)[,var(indices),...]

    Exemple(s): DIM A(1000),B(4,5,3)
    DIM N$(20,5)


    Fonction: Détermine les dimensions d'un tableau.

    Explications:

    'var' est une variable numérique, aplhanumérique ou booléenne quelconque.

    'indices' est une liste d'expressions numériques séparées par des virgules et indiquant les dimensions du tableau.

    On peut par exemple se représenter un tableau de dimension 3 comme un immeuble de bureaux, pour lequel le premier indice serait l'étage, le deuxième indice le numéro de chambre d'un étage déterminé et le troisième indice le numéro de table d'une chambre déterminé.

    Transposé en BASIC, cela signifie qu'on peut accéder à différentes places de la mémoire (des tables dans notre exemple) grâce à la connaissance d'un certain nombre d'indices.

    L'instruction DIM détermine la borne supérieur de l'indice (la valeur la plus petite que peut prendre l'indice est 0) et réserve une zone mémoire de taille correspondante.

    Le nombre maximal d'éléments pour un tableau est de 65535.

    Ainsi on accède à un tableau à partir de l'indice 0 à l'indice n.




    FONCTION DIM?



    Syntaxe: DIM?(tableau())

    Exemple(s): CLS
    DIM A$(3,4,5),N%(12,12)
    PRINT DIM?(A$()),DIM?(N%())


    Fonction: Retourne le nombre d'éléments d'un tableau.

    Explications:

    'tableau' est une variable tableau quelconque.

    La fonction donne le nombre d'éléments d'un tableau qui a précédemment été défini avec l'instruction DIM, Notez que les indices commencent à 0: Ainsi, l'exemple ci-dessus affiche les valeurs 120 et 169.

    Si on demande la dimension d'un tableau non défini, on obtient en retour la valeur 0.




    INSTRUCTION I/O DIR

    Non implantée.




    FONCTION DIR$

    Non implantée.




    INSTRUCTION ARITHMéTIQUE DIV



    Syntaxe: DIV var,n

    Exemple(s): CLS
    DIM A%(10000)
    FOR I=1 TO 10000
      A%(I)=5
    NEXT I
    T=TIMER
    FOR I=1 TO 10000
      DIV A%(I),5
    NEXT I
    PRINT (TIMER-T)/200
    T=TIMER
    FOR I=1 TO 10000
      A%(I)=A%(I)/5
    NEXT I
    PRINT (TIMER-T)/200


    Fonction: Divise la valeur de var par n.

    Explications:

    'var' doit être une variable numérique ou un élément de tableau numérique. 'n' est une expression numérique.

    DIV var,n est identique à var=var/n. L'avantage de l'instruction DIV réside dans la vitesse d'exécution (il suffit de tester l'exemple !). De cette manière, la vitesse déjà très élévée peut être encore augmentée facilement.

    Il est a noté que l'emploie d'une variable entière avec DIV force une division entière.
                   CLS
                   A=53
                   A%=53
                   DIV A,5
                   DIV A%,5
                   PRINT A,A%

    Dans l'exemple suivant on note la différence entre une division d'entiers et une division entre flottants.
    Sur ATARI ST, la fonction DIV ne fait pas cette distinction, le résultat est toujours de la forme TRUNC(A/B) avec des entiers.




    INSTRUCTION DE STRUCTURE DO...LOOP



    Syntaxe: DO
    LOOP

    Exemple(s): CLS
    DO
      INC I
      PRINT I
    LOOP


    Fonction: Met en place une boucle sans fin.

    Explications:

    La partie du programme qui se trouve entre DO et LOOP est répétée à l'infini.

    On peut sortir de cette boucle par l'instruction EXIT ou EXIT IF. Si cette dernière instruction n'est pas utilisée, il ne reste plus qu'une solution pour interrompre le programme: l'action sur la touche [ON].

    Sur ATARI ST pour sortir d'une boucle, seul l'instruction EXIT IF existe. EXIT seul n'est pas reconnue.




    INSTRUCTION GRAPHIQUE DRAW

    Non implantée.




    INSTRUCTION EDIT



    Syntaxe: °EDIT

    Exemple(s): CLS
    PRINT "Retour au TIOS sans"
    PRINT "message d'alarme"
    EDIT


    Fonction: Retour au TIOS.

    Explications:

    Cette instruction permet d'interrompre le programme, l'instruction EDIT a presque le même effet que END, avec la différence que la main est rendue au système d'exploitation sans passer par le message de fin de programme.

    Sur ATARI ST, cette instruction permet de revenir à l'éditeur en mode direct.




    INSTRUCTION GRAPHIQUE ELLIPSE

    Non implantée.




    INSTRUCTION END



    Syntaxe: END

    Exemple(s): DO
      INC I
      IF I=10000 THEN
        END
      ENDIF
    LOOP


    Fonction: Ferme tous les fichiers et termine l'exécution du programme.

    Explications:

    L'instruction END peut être placée partout dans le programme. L'emploi de END en fin de programme est facultatif.




    FONCTION EOF

    Non implantée.




    INSTRUCTION ERASE



    Syntaxe: ERASE var[()][,var[()]...]

    Exemple(s): CLS
    DIM A(15,50,5)
    PRINT FRE
    ERASE A()
    PRINT FRE



    Fonction: Efface un tableau ou une variable et libère la place mémoire correspondante dans le cas d'un tableau.

    Explications:

    L'instruction ERASE permet d'effacer une variable ou un tableau qui a été défini avec l'instruction DIM. Par la suite, il est naturellement possible de redéfinir un tableau de même nom.

    Si un tableau n'est plus utilisé dans la suite du déroulement d'un programme, il peut être avantageux (surtout s'il reste peu de place disponible en RAM) de l'effacer avec ERASE. De cette manière, la place qui a été réservée est à nouveau entièrement disponible.

    L'instruction ERASE est identique à CLR sur TI68K contrairement à l'ATARI ST où l'instruction ERASE efface uniquement les tableaux.




    FONCTION ERR

    Non implantée.




    INSTRUCTION ERROR

    Non implantée.




    FONCTION EVEN



    Syntaxe: EVEN(x)

    Exemple(s): CLS
    REPEAT
      INPUT "Entrez un nombre pair, s.v.p : ";N
    UNTIL EVEN(N)


    Fonction: Détermine la parité d'un nombre.

    Explications:

    'n' est une expression numérique. Si n est pair, EVEN(n) retourne -1. Si n est impair, on obtient 0.

    (voir ODD).




    INSTRUCTION/FONCTION EXEC

    Non implantée.




    FONCTION EXIST

    Non implantée.




    INSTRUCTION DE STRUCTURE EXIT
    EXIT IF



    Syntaxe: EXIT
    EXIT IF condition

    Exemple(s): CLS
    DO
      A=A+1
      PRINT A
      EXIT IF A=20
    LOOP


    Fonction: Permet de sortir d'une boucle.

    Explications:

    Si l'instruction EXIT ou EXIT IF est rencontrée à l'intérieur d'une boucle, le déroulement du programme se poursuit à la première instruction en dehors de la boucle. Ces instructions permettent de sortir de n'importe quelle boucle :
    FOR...NEXT, DO...LOOP, REPEAT...UNTIL et WHILE...WEND.

    A noter que sur ATARI ST, l'instruction EXIT seule n'existe pas.




    FONCTION EXP



    Syntaxe: EXP(x)

    Exemple(s): CLS
    PRINT EXP(1)
    PRINT EXP(0.5)
    PRINT EXP(-2)


    Fonction: Calcule l'exponentielle de x (e^x e=2.7182818285).

    Explications:

    'x' est une expression numéritque quelconque.

    La fonction EXP(x) calcule e (base du logarithme népérien) à la puissance x.
    Il est possible d'utiliser la syntaxe de la touche exponentielle de la TI.




    CONSTANTE STATIQUE FALSE



    Syntaxe: FALSE

    Exemple(s): CLS
    Flag!=FALSE
    PRINT Flag


    Fonction: Constante 0.

    Explications:

    Il s'agit simplement d'une autre écriture de la valeur booléenne "faux". FALSE est équivalent à 0.

    (voir aussi TRUE).




    FONCTION FATAL

    Non implantée.




    INSTRUCTION I/O FIELD

    Non implantée.




    INSTRUCTION I/O FILES

    Non implantée.




    INSTRUCTION FILESELECT

    Non implantée.




    INSTRUCTION GRAPHIQUE FILL

    Non implantée.




    FONCTION FIX



    Syntaxe: FIX(x)

    Exemple(s): CLS
    A=3.1415
    PRINT FIX(A)
    PRINT FIX(-12)
    PRINT FIX-1.99)


    Fonction: Retourne la partie de x située avant la virgule.

    Explications:

    'x' est une expression numérique quelconque.

    Cette fonction est identique à INT ainsi qu'à la fonction TRUNC. FIX récupère la partie entière située avant la virgule soit dans notre exemple nous obtenons les valeurs suivantes: 3, -12 et -1.

    Sur Atari ST la fonction INT n'est pas identique à la fonction FIX, elle gère différement les nombres négatifs.




    INSTRUCTION DE STRUCTURE FOR...NEXT



    Syntaxe: FOR Var=d [DOWN]TO f [STEP s]
    NEXT [Var]

    Exemple(s): CLS
    FOR I=3 TO 5
      FOR J=5 DOWNTO 3
        FOR K=1 TO 5 STEP 2
          PRINT I,J,K
        NEXT K
      NEXT
    NEXT


    Fonction: Met en place une boucle dont le nombre de passages est fixé.

    Explications:

    On affecte à la variable Var la valeur d et on exécute les instructions entre FOR et NEXT. Var est ensuite (une fois sur NEXT) augmenté de la valeur s et on teste si le contenu de Var est supérieure à f. Si ce n'est pas le cas, le programme se rebranche sur FOR. Ce processus est répété jusqu'à ce que Var dépasse la valeur de fin f.

    Si s est négatif, le processus est inversé: Var est diminué, et on teste si Var est plus petit que f.

    Si la partie facultative STEP s est absente, s prend la valeur 1 par défaut.

    Si on utilise DOWNTO à la place de TO, il est interdit d'employer STEP s et s prend toujours la valeur -1.

    Les boucles FOR-NEXT peuvent être emboîtées les unes dans les autres.

    La vitesse d'exécution d'une boucle FOR-NEXT peut sensiblement augmentée si on choisit une variable entière pour le compteur 'Var'. L'exemple suivant met en évidence une diminution du temps d'execution par la simple utilisation de la variable entière I% à la place de I:

      T=TIMER
      FOR I=1 TO 10000
      NEXT I
      PRINT (TIMER-T)/200
      T=TIMER
      FOR I%=1 TO 10000
      NEXT I%
      PRINT (TIMER-T)/200

    Sur Atari ST NEXT est toujours suivie de Var mais sur TI68K Var est facultatif. Ceci apporte un confort interessant lorsque l'on emboîte beaucoup de boucles FOR. Ainsi il est inutile de rechercher la variable terminant une boucle FOR et la stipuler après NEXT. NEXT seule est donc autorisé.




    INSTRUCTION I/O FORM INPUT

    Non implantée.




    INSTRUCTION I/O FORM INPUT AS

    Non implantée.




    FONCTION FRAC



    Syntaxe: FRAC(x)

    Exemple(s): CLS
    A=-10.1234
    PRINT FRAC(3.1415)
    PRINT FRAC(A)
    PRINT TRUNC(A)+FRAC(A)


    Fonction: Retourne la partie de x située après la virgule.

    Explications:

    'x' est une expression numértique quelconque.

    FRAC(x) tronque la partie de x avant la virgule et restitue la partie de x après la virgule. Pour des valeurs entières de x, FRAC(x) retourne donc la valeur 0.

    On a :            FRAC(x)=x-TRUNC(x)

    FRAC est la fonction complémentaire de TRUNC (FIX) et de INT et non de ROUND.

    (voir INT et TRUNC).

    Sur Atari ST, la fonction INT est différente, elle n'est pas identique à TRUNC ou FIX, elle gère différement les nombres négatifs.




    FONCTION FRE



    Syntaxe: FRE[(x)]

    Exemple(s): CLS
    PRINT FRE(A%)
    DIM N$(1000)
    PRINT FRE


    Fonction: Calcule la taille en octets de la place mémoire encore disponible en mémoire RAM.

    Explications:

    Les parenthèses et le paramètre x, qui peut être une expression numérique, ne sont pas pris en compte.

    A l'appel de la fonction FREE, le BASIC Gfa calcule, en nombres d'octets, la place encore disponible de la mémoire RAM après avoir effectué une 'Garbage-collection' (collecte et effacement de la place (occupée des objets 'morts') non utilisée dans la RAM).




    INSTRUCTION FULLW

    Non implantée.




    INSTRUCTION GET



    Syntaxe: GET x0,y0,x1,y1,a$[,screen_mem]

    Exemple(s): CLS
    FOR I=1 TO 5
      CIRCLE LCD_WIDTH,LCD_HEIGHT,I*40
    NEXT I
    GET 0,0,LCD_WIDTH,LCD_HEIGHT,A$
    PUT LCD_WIDTH,0,A$,3


    Fonction: Affecte une zone rectangulaire de l'écran transformée en une suite de bits à la chaîne de caractères a$.

    Explications:

    (x0,y0) et (x1,y1) sont les deux sommets diagonalement opposés du rectangle qui doit être lu.

    'a$' est une variable chaîne de caractères qui va recevoir la série de bits correspondante.

    Avec l'instruction PUT, on peut inversement afficher une partie de l'écran préalablement mémorisée dans a$ à une place quelconque de l'écran (voir PUT).

    'screen_mem' correspond à l'adresse où se trouve l'écran vidéo où sera sauvegardée l'image dans a$ avec GET. Par défaut screen_mem vaut LCD_MEM.

    Sur Atari ST le paramètre screen_mem n'existe pas. Ce paramètre a été ajouté sur TI68K pour permettre de travailler avec des buffers vidéo (cela est très pratique dans les jeux ou par exemple chaque buffers correspond à un plan (background).




    INSTRUCTION I/O GET

    Non implantée.




    INSTRUCTION DE STRUCTURE GOSUB



    Syntaxe: GOSUB nom[(list expressions)]

    Exemple(s): CLS
    PRINT "Programme principal"
    GOSUB _1er.niveau
    PRINT "Retour du 1"
    PROCEDURE _1er.niveau
      PRINT "Procedure 1"
      GOSUB _2eme.niveau(3,2)
      PRINT "Retour du 2"
      PRINT A,B
    RETURN
    PROCEDURE _2eme.niveau(A,B)
      PRINT A,B
      PRINT "Procedure 2"
    RETURN


    Fonction: Appelle la procédure dont le nom est 'nom'.

    Explications:

    'nom' est le nom de la procédure appelée.

    Le nom d'une proécudre peut s'écrire avec des chiffres, le caractère souligné et le point.

    'liste expressions' est une liste d'expressions séparées par des virgules qui sont transmises aux variables locales de la procédure (voir PROCEDURE).

    Lorsque l'interpréteur rencontre une instruction GOSUB, il se branche sur la procédure avec le nom correspond.

    Il est possible, à l'intérieur d'une procédure, d'appeler une autre procédure GOSUB.

    Il est même possible, à l'intérieur d'une procédure, d'appeler à nouveau la procédure où l'on se trouve (appel récursif).

    L'exemple appelle, à partir du programme, la procédure '_1er.niveau'. A l'intérieur de la procédure '_1er.niveau', on transmet, par appel de la procédure '_2eme.niveau', les valeurs 3 et 2 aux variables A et B. Enfin, la procédure '_2eme.niveau' affiche ces deux valeurs à l'écran. Pour bien montrer que A et B sont locales à la deuxième procédure, on affiche à nouveau les variables A et B après avoir quitté la deuxième procédure: on obtient deux fois la valeur 0.

    Le symbole @ est identique à GOSUB.

    (voir PROCEDURE, RETURN, LOCAL).




    INSTRUCTION DE STRUCTURE GOTO



    Syntaxe: GOTO etiquette

    Exemple(s): CLS
    Boucle:
    PRINT "Boucle sans fin ";
    GOTO Boucle


    Fonction: Permet un branchement inconditionnel.

    Explications:

    'etiquette' est une chaîne de caractères formée de lettres, de chiffres, du souligné et du point. Cette chaîne peut commencer par un chiffre à l'inverse des noms de variables.

    Comme le BASIC Gfa travaille sans les numéros de lignes, il est nécessaire de marquer l'endroit où doit se positionner le compteur de programme. On utilise pour cela un nom d'étiquette (label) suivi d'un bouble-point.

    Lors d'une exécution, quand l'interpréteur rencontre un GOTO, il se branche de manière inconditionnelle après la ligne repérée par l'étiquette correspondante.

    L'exemple simule une boucle DO...LOOP.

    Il est a noter que pour l'instant un label ne peut contenir les caractères point ou souligné. Un label doit toujours commencer par une lettre, le reste peut être suivi de chiffres.




    INSTRUCTION GRAPHIQUE GRAPHMODE

    Non implantée.




    INSTRUCTION I/O HARDCOPY

    Non implantée.




    FONCTION HEX$



    Syntaxe: HEX$(x)

    Exemple(s): CLS
    A=-1
    B=&O22
    PRINT HEX$(A)
    PRINT HEX$(234)
    PRINT HEX$(B)


    Fonction: Convertit x en une chaîne de caractères représentant l'écriture héxadécimale de x.

    Explications:

    'x' est un entier relatif (entre -2147483648 et +2147483647) dans une représentation quelconque (c'est-à-dire la représentation décimale normale (sans préfixe), la représentation héxadécimale (préfixe &H), la représentation octale (préfixe &O) ou la représentation binaire (préfixe &X)) ou une variable du type correspondant.

    HEX$(x) convertit la valeur x est une chaîne de caractères représentant l'écriture héxadécimale de x (cela signifie que la variable B de l'exemple est convertie en la chaîne "12").

    HEX$, de même que BIN$ et OCT$, considèrent les entiers relatifs comme une série de 32 bits, et les représentent donc sans signe, à l'inverse de la représentation décimale normale.

    (voir aussi OCT$(x), BIN$(x) et STR$(x)).




    INSTRUCTION GRAPHIQUE HIDEM

    Non implantée.




    FONCTION HIMEM

    Non implantée.




    INSTRUCTION DE STRUCTURE IF
    ELSEIF
    ELSE IF
    ELSE
    ENDIF



    Syntaxe: IF condition [THEN]
    blocprogramme
    [ELSEIF condition [THEN]]
    [blocprogramme]
    [ELSE IF condition [THEN]]
    [blocprogramme]
    [ELSE]
    [blocprogramme]
    ENDIF

    Exemple(s): CLS
    INPUT A,B
    IF A=3
      PRINT "Vous avez gagné..."
      IF B=3 THEN
        PRINT "...le gros lot !"
      ELSE
        PRINT "...le lot de consolation !"
      ENDIF
    ELSE
      PRINT "Vous avez malheuresement perdu."
    ENDIF
    PRINT "A bientôt !"


    Fonction: Branche le programme sur différents blocs-programmes, suivant la valeur logique (vrai ou faux) de 'condition'.

    Explications:

    Le déroulement d'un programme dépend souvent de certaines conditions.
    D'où l'utilité de l'instruction IF.

    Si la confition est réalisée, on exécute les instructions du bloc-programme qui se trouve entre IF et ELSE (ou bien IF et ELSEIF (ELSE IF) ou bien IF et ENDIF, si ELSE ou ELSEIF (ELSE IF) sont absentes). Si la condition n'est pas remplie, on exécute le bloc-programme entre ELSE et ENDIF ou bien ELSEIF (ELSE IF) et ENDIF (si les instructions facultatives ELSE ou ELSEIF (ELSE IF) manques, on passe à la suite).

    Dans tous les cas, après le traitement de l'instruction IF, le programme poursuit son exécution en se branchant sur la première instruction après ENDIF.

    Comme cette instruction souvent utilisée possède une syntxae différente de celle des langages BASIC classiques, il est fortement conseillé de tester le programme de l'exemple.

    Il est à noter que l'Atari ST ne gère pas ELSEIF (ELSE IF). Cette possibilité à été ajoutée tout simplement car elle est très souvent utilisées. A vrai dire, le manque de ELSEIF (ELSE IF) sur le GFA Basic de l'Atari ST est un handicap assez important.

    Ainsi l'exemple suivant:

               CLS
               INPUT "Votre âge ",age
               IF age<3 THEN
                 PRINT "Encore trop jeune pour l'école!"
               ELSE
                 IF age<=5 THEN
                   PRINT "Vous êtes en maternelle."
                 ELSE
                   IF age<=10
                     PRINT "Vous êtes en école primaire."
                   ELSE
                     IF age<=15
                       PRINT "Vous êtes au collège."
                     ELSE
                       IF age<=18 THEN
                         PRINT "Vous êtes au lycée."
                       ELSE
                         PRINT "Vous faîtes des études supérieures ou autre."
                       ENDIF
                     ENDIF
                   ENDIF
                 ENDIF
               ENDIF

    est simplifiable en:

               CLS
               INPUT "Votre âge ",age
               IF age<3 THEN
                 PRINT "Encore trop jeune pour l'école!"
               ELSEIF age<=5 THEN
                 PRINT "Vous êtes en maternelle."
               ELSE IF age<=10
                 PRINT "Vous êtes en école primaire."
               ELSEIF age<=15
                 PRINT "Vous êtes au collège."
               ELSE IF age<=18 THEN
                 PRINT "Vous êtes au lycée."
               ELSE
                 PRINT "Vous faîtes des études supérieures ou autre."
               ENDIF




    INSTRUCTION ARITHMéTIQUE INC



    Syntaxe: INC var

    Exemple(s): CLS
    T=TIMER
    FOR I%=1 TO 10000
      INC A%
    NEXT I
    PRINT (TIMER-T)/200
    A%=0
    T=TIMER
    FOR I%=1 TO 10000
      A%=A%+1
    NEXT I%
    PRINT (TIMER-T)/200


    Fonction: Augmente var de la valeur 1.

    Explications:

    'var' doit être une variable numérique ou un élément d'un tableau numérique.

    'INC var' est identique à 'var=var+1'.

    L'avantage de l'instruction INC réside dans la concision de sa syntaxe (gain de place mémoire) et surtout dans sa vitesse d'exécution (testez l'exemple !). Ainsi, l'utilisation de l'instruction INC augmente de façon sensible la vitesse d'exécution déjà très élévée par ailleurs.




    INSTRUCTION INFOW

    Non implantée.




    FONCTION INKEY$

    Non implantée.




    FONCTION INP

    Non implantée.




    FONCTION INP?

    Non implantée.




    INSTRUCTION I/O INPUT
    INPUT #



    Syntaxe: INPUT [AT(x,y);]["texte";(ou ,)]var[,var...]
    INPUT #n,var[,var...]

    Exemple(s): CLS
    INPUT K
    INPUT AT(15,15);"Votre nom ";N$
    INPUT "âge et domicile: ",A,D$


    Fonction: Permet d'effectuer une saisie au clavier pendant l'exécution du programme.

    Explications:

    'texte' est une chaîne de caractères quelconque qui est affichée sur l'écran avant la saisie des données. Ce texte doit toujours être donné entre guillemets.

    'var' est une variable quelconque.

    Quand l'interpréteur rencontre l'instruction INPUT, il interrompt l'exécution du programme et l'utilisateur a la possibilité d'entrer des données. Avec INPUT n#, les données sont lues sur le canal n. Si le texte (facultatif) est présent, il est affiché sur l'écran et le curseur se positionne à droite du texte. Si un point-virgule sépare 'texte' et 'var', le texte est suivi d'un point d'interrogation et d'un blanc. Si 'texte' et 'var' sont séparés par une virgule, l'introduction des données commence immédiatement à droite du texte.

    Si les données introduites ne sont pas du même type que les variables correspondantes, le programme redemande une autre saisie correcte. Si la saisie est effectuée à partir d'un fichier, un message d'erreur est affiché.

    Une chaîne de caractères saisie avec INPUT ne peut dépasser 64 caractères mais cette restriction peut être modifiée.

    Si plusieurs variables suivent l'instruction INPUT, les données introduites doivent être validées une par une.

    A noter que le comportement de cette fonction sur Atari ST est bien différente, sur Atari ST INPUT AT(x,y);... n'est pas autorisé contrairement aux TI68K, de plus sur TI68K il n'est pas possible d'insérer des caractères spéciaux et encore moins de pouvoir revenir en arrière avec les touches de direction pour corriger son texte. Sur Atari ST, l'interpréteur prend en compte dans le texte les virgules et les guillemets ne sont pas mémorisé. Sur TI68K, le texte en entier est sauvegardé en intégralité dans la variable.
    Il faut savoir qu'il est possible de rentrer un nombre en Hexadécimal, Octal ou binaire avec INPUT en respectant le prefixe (&H ou &X ou &O).

    A savoir que INPUT #n n'a pas été encore implantée, seulement la saisie de texte fonctionne.




    FONCTION INPUT$

    Non implantée.




    FONCTION INSTR

    Non implantée.




    FONCTION INT



    Syntaxe: INT(x)

    Exemple(s): CLS
    A=3.1415
    PRINT INT(A)
    PRINT INT(678)
    PRINT INT(-1.001)


    Fonction: Calcul la partie entière de x.

    Explications:

    'x' est une expression numérique quelconque.

    La fonction INT est identique à la fonction TRUNC et FIX. Cette fonction revient à tronquer la partie de x située après la virgule.

    A noter que sur Atari ST cette fonction se comporte différement avec les nombres négatifs. INT arrondit x dans le sens des x négatifs. Ainsi l'exemple INT(-1.001) retourne -2 contrairement sur TI68K ou on obtient -1.




    INSTRUCTION I/O KILL

    Non implantée.




    FONCTION LEFT$



    Syntaxe: LEFT$(x[,n])

    Exemple(s): CLS
    N$="BASIC Gfa"
    PRINT LEFT$(N$)
    PRINT LEFT$(N$,3)
    PRINT LEFT$(N$,12)


    Fonction: Prend le premier caractère ou les n premiers caractères (de gauche) de la chaîne 'string'.

    Explications:

    'string' est une chaîne de caractères ou une variable chaîne de caractères.

    'n' est normalement un entier naturel ou une variable de même type (cependant, on peut entrer un nombre décimal. L'éditeur ne prendra en compte que sa partie entière).

    Si la paramètre facultatif n est absent, la fonction retourne uniquement le premier caractère de la chaîne 'string'.

    Autrement, la fonction retourne une sous-chaîne de 'string' qui est composée des n premiers caractères (caractères de gauche). Les caractères blancs sont également pris en compte.

    Si n est supérieur au nombre de caractères de 'string', la fonction retourne la chaîne 'string' elle-même. Si n=0, on obtient la chaîne vide.




    FONCTION LEN



    Syntaxe: LEN(x$)

    Exemple(s): CLS
    A$="Gfa"
    PRINT LEN(A$)
    PRINT LEN("BASIC"+A$)


    Fonction: Calcule la longueur de la chaîne de caractères x$.

    Explications:

    'x$' est une chaîne de caractères quelconque.

    LEN calcule le nombre de caractères de la chaîne x$. Les caractères non affichables et les caractères blancs sont également pris en compte. On obtient dans l'exemple les valeurs 4 et 9.




    INSTRUCTION LET

    Non implantée.




    INSTRUCTION GRAPHIQUE LINE



    Syntaxe: LINE x0,y0,x1,y1

    Exemple(s): CLS
    LINE 0,0,LCD_WIDTH,LCD_HEIGHT
    LINE LCD_WIDTH,0,0,LCD_HEIGHT


    Fonction: Relie les points (x0,y0) et (x1,y1) par une droite.

    Explications:

    L'origine des axes est le coin supérieur gauche de l'écran. x0 et y0 sont les coordonnées du point de départ, x1 et y1 les coordonnées du point d'arrivée.

    L'exemple ci-dessus trace les deux diagonales de l'écran.

    Cette instruction est identique à l'instruction DRAW x0,y0 TO x1,y1 (non implantée).

    (voir aussi DEFLINE (non implantée)).

    Cette instruction utilise la ROM_CALL 0x193 (DrawClipLine).




    INSTRUCTION I/O LINE INPUT
    LINE INPUT #

    Non implantée.




    INSTRUCTION I/O LIST

    Non implantée.




    INSTRUCTION I/O LLIST

    Non implantée.




    INSTRUCTION I/O LOAD

    Non implantée.




    FONCTION LOC

    Non implantée.




    INSTRUCTION DE STRUCTURE LOCAL



    Syntaxe: LOCAL var[,var]

    Exemple(s): CLS
    A=1000
    PRINT A
    GOSUB Sousprg
    PROCEDURE Sousprg
      LOCAL A
      I=I+1
      A=I
      PRINT A
      IF I=5 THEN
      ELSE
        GOSUB Sousprg
      ENDIF
      PRINT A
    RETURN


    Fonction: Déclare 'var' comme variable locale.

    Explications:

    'var' peut être de n'importe quel type, sauf un tableau. En BASIC Gfa, on peut déclarer des variables locales à l'intérieur de proécudres (sous-programmes).

    Une variable située en-dehors de la procédure, n'est pas affectée par une modification du contenu de la variable locale, même si les deux variables ont le même nom.

    L'exemple ci-dessus démontre bien cette propriété, en appelant 10 fois la même procédure de façon récursive.

    (voir aussi GOSUB, PROCEDURE, RETURN).




    FONCTION LOF

    Non implantée.




    FONCTION LOG
    LOG10



    Syntaxe: LOG(x)
    LOG10(x)

    Exemple(s): CLS
    A=2.7182818285
    PRINT LOG(A)
    PRINT LOG(A^2)
    PRINT LOG10(10*10*10)
    PRINT LOG10(2.456)


    Fonction: Calcule le logarithme népérien (LOG) ou le logarithme à base 10 (LOG10).

    Explications:

    'x' doit être une expression numérique dont la valeur est supérieure à 0.

    LOG(x) calcule le logarithme népérien de x (logarithme de base e=2.71828182...).

    LOG10(x) calcule le logarithme décimal de x (logarithme de base 10) soit LOG(x)/LOG(10).




    FONCTION LPOS

    Non implantée.




    INSTRUCTION I/O LPRINT

    Non implantée.




    INSTRUCTION LSET

    Non implantée.




    FONCTION MAX

    Non implantée.




    INSTRUCTION MENU

    Non implantée.




    FONCTION MENU

    Non implantée.




    FONCTION MID$



    Syntaxe: MID$(string,i[,n])

    Exemple(s): CLS
    N$="BASIC Gfa"
    PRINT MID$(N$,5)
    PRINT MID$(N$,1,3)
    PRINT MID$(N$,0,3)
    PRINT MID$(N$,3,12)


    Fonction: Extrait une sous-chaîne de 'string' de n caractères à partir de la ième position.

    Explications:

    'string' est une chaîne de caractères (constante ou variable).

    'i' et 'n' sont normalement des entiers naturels (constantes ou variables). (Cependant, on peut également introduire des nombres décimaux. L'éditeur ne prendra en compte que la partie entière).

    Si le paramètre facultatif 'n' est absent, la fonction extrait tous les caractères de la chaîne 'string' à partir de la ième position.

    Sinon, on obtient une sous-chaîne qui commence par le ième caractère et qui comprend n caractères (les caractères blancs sont aussi pris en compte).

    Pour i=0, on obtient le même résultat que pour i=1.

    Si n est supérieur au nombre de caractères de 'string' situés à droite du ième caractère (inclus), on obtient MID$(string,i).

    Si n est nul, on obtient la chaîne vide.




    INSTRUCTION MID$

    Non implantée.




    FONCTION MIN

    Non implantée.




    INSTRUCTION I/O MKDIR

    Non implantée.




    FONCTION MKI$
    MKL$
    MKF$



    Syntaxe: MKI$(n)
    MKL$(n)
    MKF$(n)

    Exemple(s): CLS
    A=0.111
    PRINT MKF$(A)
    FOR I=0 TO 9
      Z=PEEK(VARPTR(A)+I)
      PRINT Z,CHR$(Z)
    NEXT I


    Fonction: Convertit une valeur numérique en une chaîne de caractères.

    Explications:

    'n' est une expression numérique. Les fonctions convertissent les valeurs de ces expressions numériques en chaîne de caractères, à savoir:

  • MKI$ convertit un entier sur 16 bits en une chaîne de deux caractères.

  • MKL$ convertit un entier sur 32 bits en une chaîne de caractères de quatre caractères.

  • MKF$ met 'n' sous le format flottant spécifique aux TI68K (10 octets).

    Toute donnée numérique que l'on veut stocker sur un fichier à accès direct doit d'abord être convertie en une chaîne de caractères à l'aide des fonctions précédentes.

    L'exemple montre que le BASIC Gfa stocke les nombres en mémoire interne sous un format de 10 octets, que l'on peut également obtenir en utilisant la fonction MKF$.

    Les fonctions inverses respectives sont:
             CVI, CVL, CVF.

    A noter que sur Atari ST que le format des flottants tient sur 10 octets. Les fonctions MKS$, MKD$ n'existent pas sur TI68K contrairement à la version Atari ST.




    INSTRUCTION MONITOR

    Non implantée.




    INSTRUCTION GRAPHIQUE MOUSE

    Non implantée.




    FONCTION MOUSEX
    MOUSEY
    MOUSEK

    Non implantée.




    INSTRUCTION ARITHMéTIQUE MUL



    Syntaxe: MUL var,n

    Exemple(s): CLS
    DIM A%(10000)
    ARRAYFILL A%(),5
    T=TIMER
    FOR I=1 TO 10000
      MUL A%(I),5
    NEXT I
    PRINT (TIMER-T)/200
    T=TIMER
    FOR I=1 TO 10000
      A%(I)=A%(I)*5
    NEXT I
    PRINT (TIMER-T)/200


    Fonction: Multiplie le contenu de 'var' par n.

    Explications:

    'var' doit être une variable numérique ou un élément d'un tableau numérique.

    'n' est un nombre ou également une variable numérique.

    MUL var,n est identique à var=var*n. L'avantage de l'instruction MUL réside dans la vitesse d'exécution (testez l'exemple!). Ainsi l'utilisation de MUL augmente de façon sensible la vitesse d'exécution déjà très élevée par ailleurs.




    INSTRUCTION I/O NAME

    Non implantée.




    INSTRUCTION NEW

    Non implantée.




    FONCTION OCT$



    Syntaxe: OCT$(x)

    Exemple(s): CLS
    A=-1
    B=&H22
    PRINT OCT$(A)
    PRINT OCT$(234)
    PRINT OCT$(B)


    Fonction: Convertit la valeur de x en une chaîne de caractères qui est la représentation octale de x.

    Explications:

    'x' est un nombre entier compris entre -2147483648 et +2147483647 dans une représentation quelconque (à savoir l'écriture décimale normale (sans prefixe), l'écriture hexadécimale (préfixe &H), la représentation octale (préfixe &O), la représentation binaire (préfixe &X)) ou une variable du même type. OCT$(x) convertit la valeur x en une chaîne de caractères qui est la représentation octale de x. (c'est-à-dire que la variable B de l'exemple est transformée en "42").

    OCT$, tout comme BIN$ et HEX$, considèrent les nombres comme suite de 32 bits et les représentent sans signe, à l'inverse de la représentation décimale normale.

    (voir aussi HEX$(x), BIN$(x) et STR$(x)).




    FONCTION ODD



    Syntaxe: ODD(n)

    Exemple(s): CLS
    REPEAT
      INPUT "Entrez un nombre pair SVP ";N
    UNTIL NOT ODD(N)


    Fonction: Permet d'obtenir la parité d'un nombre.

    Explications:

    'n' est une expression entière.

    ODD(n) retourne -1 si n est impaire, et 0 si n est pair.

    (voir aussi EVEN).




    INSTRUCTION ON BREAK
    ON BREAK CONT
    ON BREAK GOSUB

    Non implantée.




    INSTRUCTION ON ERROR
    ON ERROR GOSUB

    Non implantée.




    INSTRUCTION ON MENU BUTTON

    Non implantée.




    INSTRUCTION ON MENU GOSUB

    Non implantée.




    INSTRUCTION DE STRUCTURE ON...GOSUB

    Non implantée.




    INSTRUCTION I/O OPEN

    Non implantée.




    INSTRUCTION OPENW

    Non implantée.




    INSTRUCTION OPTION
    OPTION BASE 0
    OPTION BASE 1

    Non implantée.




    INSTRUCTION I/O OUT

    Non implantée.




    FONCTION OUT?

    Non implantée.




    INSTRUCTION PAUSE



    Syntaxe: PAUSE x

    Exemple(s): CLS
    PRINT "Patientez 5 secondes s.v.p !"
    PAUSE 250
    PRINT "Et voilà !"



    Fonction: Interrompt l'éxecution du programme pendant un certain temps.

    Explications:

    'x' est une expression numérique dont la valeur comprise entre -2147483648 et +2147483647.

    L'instruction provoque une pause dans l'exécution du programme, dont la durée en seconde est donnée par x/50.




    INSTRUCTION GRAPHIQUE PBOX

    Non implantée.




    INSTRUCTION GRAPHIQUE PCIRCLE

    Non implantée.




    FONCTION PEEK
    DPEEK
    LPEEK



    Syntaxe: PEEK(x)
    DPEEK(x)
    LPEEK(x)

    Exemple(s): CLS
    A$="A"
    D=ARRPTR(A$)
    A=LPEEK(D)
    L=DPEEK(D+4)
    C+PEEK(A)
    PRINT "Adresse descripteur:"'D
    PRINT "Adresse:"'A
    PRINT "Longueur:"'L
    PRINT "Code-ASCII:"'C


    Fonction: Donne le contenu de 1,2 ou 4 octets à partir de l'adresse x.

    Explications:

    'x' est une expression numérique qui représente une adresse.

    PEEK(x) renvoie le contenu de l'octet situé à l'adresse x.

    DPEEK(x) retourne le contenu de deux octets consécutifs dont les adresses respectives sont x et x+1. DPEEK convertit le nombre binaire contenu dans les 16 bits en un nombre décimal.

    Exemple:
    Si le premier octet vaut 11 et le deuxième 189, le résultat obtenu est 11*256+189 = 3005.

    LPEEK(x) est semblable à DPEEK(x), mais se rapporte à 4 octets.

    Exemple:
    Le contenu de l'adresse x vaut 8, le contenu de l'adresse x+1 vaut 45, le contenu de l'adresse x+2 vaut 156 et le contenu de l'adresse x+3 vaut 126.
    LPEEK(x) vaut 8*256^3+45*256^2+156*256+126 = 137206910.

    Dans l'exemple, LPEEK permet d'extraire du descripteur l'adresse à laquelle est mémorisée le contenu de A$. DPEEK retourne la longueur de la chaîne de caractères. Enfin, toujours dans l'exemple, PEEK donne le code ASCII de la lettre 'A'.

    (voir à ce sujet, les variables et leur organisation).




    INSTRUCTION GRAPHIQUE PELLIPSE

    Non implantée.




    CONSTANTE STATIQUE PI



    Syntaxe: PI

    Exemple(s): CLS
    INPUT R
    U=2*PI*R
    F=PI*R*R
    PRINT U,F


    Fonction: Retourne la valeur de PI.

    Explications:

    PI est le rapport du périmètre d'un cercle sur son diamètre. Il vaut environ:

          PI=3.1415926536...

    L'exemple calcule le périmètre d'un cercle et la surface d'un disque correspondant, connaissant son rayon.

    A noter qu'il est possible d'utiliser le signe mathématique PI de la calculatrice.




    INSTRUCTION GRAPHIQUE PLOT



    Syntaxe: PLOT x,y

    Exemple(s): CLS
    PLOT LCD_WIDTH,LCD_HEIGHT
    PLOT 30,30


    Fonction: Place un point sur l'écran.

    Explications:

    x et y sont les coordonnées du point, l'origine des coordonnées se trouvant dans le coin supérieur gauche de l'écran. x représente la distance horizontale en pixel (0 jusqu'à 239 sur les TI92+/V200, 159 sur les TI89/TI89SE/TI89T) par rapport au bord gauche de l'écran, y la distance verticale (0 à 127 sur les TI92+/V200, 99 sur les TI89/TI89SE/TI89T) par rapport au bord supérieur. Le premier point de notre exemple est donc affiché dans le coin se situant en bas à droite de l'écran.

    Cette instruction utilise la ROM_CALL 0x194 (DrawClipPix).




    FONCTION POINT



    Syntaxe: POINT(x,y)

    Exemple(s): CLS
    PLOT 50,50
    PRINT POINT(49,50)
    PRINT POINT(50,50)


    Fonction: Teste si un point est affiché.

    Explications:

    (x,y) sont les coordonnées d'un point sur l'écran. L'origine des coordonnées se trouve dans le coin supérieur gauche de l'écran. Le coin inférieur droit a pour coordonnées (239-127) sur les TI92+/V200, (159,99) sur les TI89/TI89SE/TI89T.

    La fonction POINT retourne la valeur -1 (TRUE) ou 0 (FALSE), selon que le pixel (point graphique) pointé est 'allumé' ou 'éteint'.




    INSTRUCTION POKE
    DPOKE
    LPOKE



    Syntaxe: POKE x,n
    DPOKE x,n
    LPOKE x,n

    Exemple(s): CLS
    A$="A"
    L=ARRPTR(A$)
    DPOKE L+4,4
    Z=VARPTR(A$)
    LPOKE Z,1111638594
    PRINT A$
    POKE Z,67
    PRINT A$


    Fonction: Ecrit 1,2 ou 4 octets à l'adresse x de la mémoire.

    Explications:

    'x' est une expression numérique qui indique une adresse de la mémoire. Pour les instructions DPOKE et LPOKE, x doit être un nombre pair (pas obligatoire pour l'instant).
    'n' est une expression numérique dont la valeur est comprise entre 0 et 255 pour POKE, entre 0 et 65535 pour LPOKE et entre -2147483648 et +2147483647 pour LPOKE.

    POKE x,n écrit un octet (avec la valeur n) dans la cellule mémoire dont l'adresse est x.
    DPOKE x,n charge la valeur n dans les deux cellules mémoires consécutives d'adresses x et x+1.

    Exemple:
    Si n vaut 257, la valeur 1 est 'pokée' à la fois à l'adresse x et à l'adresse x+1, car on a:
       257 = 1*256+1

    LPOKE x,n écrit la valeur n dans les quatre cellules mémoires consécutives dont l'adresse de départ est n.

    Exemple:
    S'il faut poker la valeur 1 dans les quatre cellules mémoires, n devra être égal à 1*256^3+1*256^2+1*256+1, à savoir 16843009.

    Comme n ne peut pas dépasser la valeur 2147483647, il faut, pour pouvoir poker un nombre supérieur à 127 dans la première cellule mémoire, travailler avec la complémentation à 2.

    Exemple:
    LPOKE x,-1 affecte à toutes les quatre cellules mémoires la valeur 255.

    Les instructions décrites ici sont utilisées dans le mode utilisateur du microprocesseur 68000. Cela signifie qu'il est impossible d'écrire dans certaines zones mémoires protégées (en générale au début de la mémoire).

    Les instructions inverses de POKE sont les instructions PEEK.

    Dans l'exemple, on affecte une nouvelle valeur à la variable A$, à l'aide des instructions POKE.

    (voir le sujet, les variables et leur organisation).




    INSTRUCTION GRAPHIQUE POLYLINE
    POLYFILL
    POLYMARK

    Non implantée.




    FONCTION POS

    Non implantée.




    INSTRUCTION GRAPHIQUE PRBOX

    Non implantée.




    INSTRUCTION I/O PRINT
    PRINT #



    Syntaxe: PRINT [AT(x,y)][;][,][expression[,][;][']]
    PRINT #n[,expression[,][;][']]

    Exemple(s): CLS
    A$="GfA"
    B=2005
    PRINT A$'
    PRINT B,
    PRINT A$,B;"GfA"
    PRINT
    PRINT A$'''''B
    PRINT AT(5,10);A$;


    Fonction: Permet d'afficher des données à l'écran ou de les envoyer sur le canal n.

    Explications:

    'expression' est un nombre quelconque d'expressions qui doivent être séparées par des virgules, des points-virgules ou des apostrophes.
    Si deux expressions sont séparées par un point-virgule, elle sont affichées dans la même ligne, directement l'une à la suite de l'autre (cela est également valable pour les nombres, car le BASIC GfA ne met aucun caractère blanc ni devant ni derrière les nombres).
    Si le séparateur de deux expressions est une virgule, un saut à la ligne sera effectuée. Les expressions seront donc affichées sur des lignes différentes.
    Si les expressions sont séparées par des apostrophes, des caractères blancs sont affichés en nombre égal (une apostrophe produit le même effet que ;' ';).
    Si la dernière expression n'est suivie par aucun des trois caractères point-virgule, virgule ou apostrophe, un CRLF (retour chariot avec passage à la ligne suivante) est envoyé (c'est-à-dire que le curseur saute à la ligne suivante).

    Si l'instruction se termine par un point-virgule ou par une apostrophe, le curseur restera en place.

    La partie facultative AT(x,y) permet d'afficher des données à un endroit précis de l'écran. Le nombre de colonnes et de lignes dépend de la résolution de l'écran et de la fonte employée.
    L'écran scrollera si vous affichez quelque chose à la dernière ligne ou à une ligne supérieure.

    A noter que la gestion des fichiers n'a pas était implantée ainsi la gestion de flux par canal ne fonctionne pas.




    INSTRUCTION I/O PRINT USING

    Non implantée.




    INSTRUCTION DE STRUCTURE PROCEDURE



    Syntaxe: PROCEDURE nom[(listevar)]

    Exemple(s): CLS
    PRINT "Programme principal"
    GOSUB Ssprg(7)
    PRINT "retour A=";A
    PROCEDURE SSprg(A)
      PRINT "procédure A=";A
    RETURN
    PRINT "reste inchangé"


    Fonction: Indique le début d'une procédure (sous-programme).

    Explications:

    'nom' est le nom de la procédure. 'listevar' sont les noms de variables séparées par des virgules. On transmet à ces variables les paramètres fixés dans l'instruction GOSUB. Les variables de 'listevar' sont toujours des variables locales dans la procédure.

    Comme le BASIC GfA n'utilise pas de numéros de lignes, il faut repérer le début d'une procédure (sous-programme). C'est le rôle de cette instruction.

    Un autre avantage de cette instruction, en plus des variables locales, est que l'interpreteur peut reconnaître une procédure et éviter ainsi un traitement du sous-programme non souhaité, car une procédure n'est executée que si elle est appelée avec l'instruction GOSUB.

    Si l'interpréteur rencontre l'instruction 'PROCEDURE' dans le déroulement normal du programme, il considére cela comme la fin du programme.

    Dans l'exemple, on appelle la procédure dont le nom est 'Ssprg' et on transmet la valeur 7 à la variable locale A. Dans la procédure, on affiche la valeur de A. Pour bien montrer qu'il s'agit d'une variable locale, on procéde, après le retour au programme principal, à un nouvel affichage du contenu de A (valeur: 0).

    (voir GOSUB, RETURN, LOCAL).




    INSTRUCTION PUT

    Non implantée.




    INSTRUCTION I/O PUT

    Non implantée.




    INSTRUCTION QUIT

    Non implantée.




    FONCTION RANDOM



    Syntaxe: RANDOM(x)

    Exemple(s): CLS
    REPEAT
      L=RANDOM(6)+1
      PRINT L
    UNTIL L=3


    Fonction: Retourne un nombre entier aléatoire compris entre 0 (inclus) et x.

    Explications:

    'x' est un nombre quelconque. RANDOM(x) donne un nombre entier aléatoire compris entre 0 (inclus) et x (exclus). Pour garantir une répartition de Laplce (équiprobabilité de tous les événements), il faut donner à x une valeur entière.

        RANDOM(x)=TRUNC(x*RND)

    L'exemple simule les lancés successifs d'un dé jusqu'à ce qu'on obtienne un 3.




    INSTRUCTION GRAPHIQUE RBOX

    Non implantée.




    INSTRUCTION READ



    Syntaxe: READ var[,var]...

    Exemple(s): CLS
    READ P,N$,Z%
    PRINT P'N$'Z%
    DATA 75006,"PARIS",6


    Fonction: lit les valeurs contenues dans une instruction DATA et les affectent aux variables 'var'.

    Explications:

    'var' sont des variables numériques, booléennes ou alphanumériques quelconques. Cette instruction ne peut être utilisée qu'en relation avec l'instruction DATA.

    Lorsque l'interpréteur rencontre dans un programme l'instruction READ pour la première fois, il lit la première valeur de la première ligne-DATA et l'affecte à la (ou à la première) variable de l'instruction READ. Pour les instructions READ suivantes, on traite les données de la (des) ligne(s)-DATA dans l'ordre où elles ont été introduites.

    Deux points sont à noter:

  • Les données contenues dans les lignes-DATA doivent être du même type que les variables qui vont contenir ces valeurs.

  • Le nombre des données dans les lignes-DATA doit être égal (ou supérieur) au nombre des variables 'var' qui suivent les instrctions READ (si ce nombre est supérieur, les données supplémentaires ne sont naturellement pas prises en compte).

    (voir absolument DATA et RESTORE).




    INSTRUCTION I/O RELSEEK

    Non implantée.




    INSTRUCTION REM



    Syntaxe: REM texte

    Exemple(s): REM Calcul de l'énergie cinétique
    CLS
    LET E=(M*V*V)/2


    Fonction: Permet d'insérer des commentaires à l'intérieur du programme.

    Explications:

    Les commentaires illustrent un programme et rendent sa compréhension plus facile.

    L'instruction REM n'est pas exécutée, mais le texte 'texte' appraît dans le listing.

    Un commentaire peut être placé après une instruction, en utilisant le caractère séparateur "!":
      
      DO      !Boucle sans fin
      LOOP    !Avec rien dedans




    INSTRUCTION DE STRUCTURE REPEAT...UNTIL



    Syntaxe: REPEAT
    UNTIL condition

    Exemple(s): CLS
    REPEAT
      A=A+1
      PRINT A
    UNTIL A=20


    Fonction: Réalise une boucle conditionnelle.

    Explications:

    La partie du programme qui se trouve entre REPEAT et UNTIL est exécutée plusieurs fois jusqu'à ce que la condition soit remplie. A l'inverse de l'instruction WHILE...WEND, la condition n'est testée qu'en fin de boucle. C'est pourquoi une boucle REPEAT...UNTIL est toujours parcourue au moins une fois.




    INSTRUCTION RESERVE

    Non implantée.




    INSTRUCTION RESTORE



    Syntaxe: RESTORE [étiquette]

    Exemple(s): CLS
    READ A,B,C,D,E
    RESTORE
    READ F,G,H,I
    RESTORE Etiq
    READ J,K,L,M
    PRINT A'B'C'D'E''F'G'H'I''J'K'L'M
    DATA 1,2,3
    Etiq:
    DATA 4,5,6,7


    Fonction: Positionne le pointeur-DATA au début du programme ou après 'étiquette'.

    Explications:

    'étiquette' est une suite de caractères composée de chiffres, de lettres alphabétiques, de soulignés et de points.

    L'instruction RESTORE permet de relire une ou plusieurs lignes-DATA. Le pointeur-DATA, qui pointe sur la prochaine donnée devant être lue, est repositionné au tout début (avec RESTORE) ou au début de la ligne-DATA située après 'étiquette' (avec RESTORE 'étiquette'). (Il est important de noter que l'identificateur servant de marque entre les lignes-DATA est constitué du nom de l'étiquette suivi d'un double point). L'étiquette 'étiquette' est identique à un label est peut être utilisée par GOTO.

    (voir aussi READ et DATA).




    INSTRUCTION RESUME

    Non implantée.




    INSTRUCTION DE STRUCTURE RETURN



    Syntaxe: RETURN

    Exemple(s): CLS
    PRINT "Programme principal"
    GOSUB Ssprg
    PRINT "De retour"
    PROCEDURE Ssprg
      PRINT "Procédure"
    RETURN


    Fonction: Indique la fin d'un sous-programme (procédure).

    Explications:

    Lorsque l'interpréteur rencontre l'instruction RETURN à l'intérieur d'une procédure (sous-programme), le traitement de la procédure est terminé et le programme se branche après l'instruction GOSUB ayant appelé la procédure.

    Les variables locales sont alors effacées.

    (voir GOSUB, PROCEDURE, LOCAL).




    FONCTION RIGHT$



    Syntaxe: RIGHT$(string[,n])

    Exemple(s): CLS
    N$="BASIC GfA"
    PRINT RIGHT$(N$)
    PRINT RIGHT$(N$,5)
    PRINT RIGHT$(N$,12)


    Fonction: Extrait le dernier ou les n derniers caractères (de droite) de la chaîne 'string'.

    Explications:

    'string' est une chaîne de caractères ou une variable de ce type.

    'n' est normalement un nombre entier ou une variable entière (cependant, il est possible de donner à n une valeur décimale. Seule la partie entière sera prise en compte par l'éditeur).

    Si le paramètre facultatif n est absent, la fonction retourne le denrier caractère de la chaîne 'string'.

    Sinon, la fonction extrait la sous-chaîne composée des n derniers caractères (de droite) de 'string' (les caractères blancs sont pris en compte). Si n est supérieur au nombre total formant la chaîne 'string', on obtient la chaîne 'string' elle-même. Si n=0, on obtient une chaîne vide.




    INSTRUCTION I/O RMDIR

    Non implantée.




    FONCTION RND



    Syntaxe: RND[(x)]

    Exemple(s): CLS
    FOR I=1 TO 20
      PRINT RND
    NEXT


    Fonction: Retourne un nombre aléatoire entre 0 et 1.

    Explications:

    Le paramètre facultatif (x) n'est pas pris en compte. RND retourne un nombre aléatoire entre 0 (inclus) et 1 (exclus).

    En utilisant la formule:

        Z=INT(RND*n)+1

    On obtient un nombre entier aléatoire compris entre 1 et n (tous les deux inclus).

    (voir RANDOM).




    INSTRUCTION RSET

    Non implantée.




    INSTRUCTION RUN



    Syntaxe: RUN

    Exemple(s): CLS
    PRINT "Appuyez sur une touche !"
    IF RR_ESC THEN
      END
    ELSE
      RUN
    ENDIF


    Fonction: Lance l'exécution du programme.

    Explications:

    L'instruction RUN exécute le programme à partir de la première ligne de programme.




    INSTRUCTION I/O SAVE
    PSAVE

    Non implantée.




    INSTRUCTION I/O SEEK

    Non implantée.




    INSTRUCTION GRAPHIQUE SETCOLOR

    Non implantée.




    INSTRUCTION SETTIME

    Non implantée.




    INSTRUCTION GRAPHIQUE SGET

    Non implantée.




    FONCTION SGN



    Syntaxe: SGN(x)

    Exemple(s): CLS
    INPUT A
    B=SGN(A)*A
    PRINT B


    Fonction: Teste si x est positif, négatif ou nul.

    Explications:

    'x' est une expression numérique quelconque.

    SGN(x) est la fonction mathématique Signe.

    Elle retourne, selon le cas, la valeur -1, 0 ou 1, à savoir:

        0   ,si x=0
        +1  ,si x>0
        -1  ,si x<0

    L'exemple simule la fonction mathématique valeur absolue (voir ABS).




    INSTRUCTION GRAPHIQUE SHOWN

    Non implantée.




    FONCTION SIN



    Syntaxe: SIN(x)

    Exemple(s): 1)  CLS
        INPUT RAD
        PRINT SIN(RAD)
        INPUT DEGRE
        PRINT SIN(DEGRE*PI/180)

    2)  CLS
        X_Middle=(LCD_WIDTH+1) DIV 2
        Y_Middle=(LCD_HEIGHT+1) DIV 2
        PLOT X_Middle, Y_Middle
        FOR I=1 TO 5400
          X=I/36*COS(I*PI/180)
          Y=I/36*SIN(I*PI/180)
          PLOT X_Middle+X,Y_Middle+Y
        NEXT I


    Fonction: Retourne la valeur du sinus de x.

    Explications:

    'x' est une expression numérique qui indique l'angle (en radians) dont on veut calculer le sinus.

    Si l'on veut introduire un angle en degrès, on remplace 'x' par 'deg*PI/180', où PI est une fonction du BASIC GfA qui donne la valeur de la constante universelle pi.

    Le premier exemple calcul le sinus d'un angle donné en radians, puis le sinus d'un angle donné en degré.

    Le deuxième exemple dessine une spirale degré par degré.




    INSTRUCTION SOUND

    Non implantée.




    FONCTION SPACE$



    Syntaxe: SPACE$(x)

    Exemple(s): CLS
    FOR I=0 TO 20
      PRINT SPACE$(I),I
    NEXT I


    Fonction: Définit une chaîne de caractères composée de x caractères blancs.

    Explications:

    'x' est une expression numérique dont la valeur doit être comprise entre 0 et 32767. Seul est pris en compte la partie entière de x.

    Cette instruction donne le même résultat que STRING$(x,32).




    FONCTION SPC

    Non implantée.




    INSTRUCTION SPOKE
    SDPOKE
    SLPOKE

    Non implantée.




    INSTRUCTION GRAPHIQUE SPRITE



    Syntaxe: SPRITE A$,x,y[,mode][,mem]

    Exemple(s): CLS
    A$=MKI$(0)+MKI$(0)+MKI$(&H0010)
    FOR I=1 TO 16
      A$=A$+MKI$(65535)
    NEXT I
    SPRITE A$,20,20


    Fonction: Affiche un sprite de 16x? pixels défini dans A$ à la position (x,y).

    Explications:

    'A$' est une chaîne de définition, dans notre exemple cette chaîne est composée de 2+2+2+(2*16)=38 caractères et forme un sprite de 16*Hauteur pixels. Elle s'organise de la manière suivante:

         A$ = MKI$(coord. x du point d'action) (non utilisée pour l'instant)
              + MKI$(coord. y du point d'action) (non utilisée pour l'instant)
              + MKI$(Type et hauteur du sprite)
                  Type:
                  - 0 = Normal, on trouve les données du sprite.
                  - 1 = Masqué non entrelacé, on trouve les données du sprite suivies des données du masque. En résumé, on a toutes les lignes du sprite suivies de toutes les lignes du masque, les motifs binaires du sprite et du masque sont mémorisés dans A$ consécutivement.
                  - 2 = Masqué entrelacé, on trouve une donnée du sprite puis une donnée du masque et ainsi de suite. En résumé, on a première ligne du sprite, première ligne du masque, deuxième ligne du sprite, deuxième ligne du masque.... Les motifs binaires du sprite et du masque sont mémorisés dans A$ alternativement.
                  
                  En ce qui concerne le masque, un 0 logique correspond à une zone du sprite et un 1 logique à une zone de l'écran.

                  Hauteur:
                  En général on spécifit un sprite de 16x16 pixels comme dans l'exemple mais on peut en réalité réaliser n'importe quel sprite de x*hauteur pixels. Au maximum 255 pixels de hauteur.

    Pour être plus rigoureux on pourrait écrire les informations hauteur et type du sprite dans A$ de cette façon:
           A$=...+CHR$(16)+CHR$(0) 'Sprite de 16 pixels de hauteur en mode normal

    'mode' est un paramètre facultatif qui ne fonctionne que pour un sprite de type 0 (normal non masqué, un sprite masqué est affiché en mode OR) et vaut par défaut 0. Ce paramètre vous permet d'afficher un sprite dans un mode précis:
        -0 = Mode OR (Un OU logique est effectué avec l'écran et le sprite).
        -1 = Mode XOR (Un OU exclusif est effectué avec l'écran et le sprite).
        -2 = Mode AND (un ET logique est effectué avec l'écran et le sprite).

    'mem' est un paramètre facultatif et vaut par défaut LCD_MEM, il contient l'adresse de l'écran virtuel où sera écrit le sprite. Cet argument est pratique lorsque le programme utilise des écrans virtuels.

    A noter que le fonctionnement de la fonction Sprite sur Atari ST est très différent.




    INSTRUCTION GRAPHIQUE SPUT

    Non implantée.




    FONCTION SQR



    Syntaxe: SQR(x)

    Exemple(s): CLS
    INPUT X
    INPUT Y
    DISTANCE=SQR(X*X+Y*Y)
    PRINT DISTANCE


    Fonction: Calcule la racine carrée de x.

    Explications:

    'x' est une expression numérique dont la valeur doit être supérieure ou égale à 0.

    SQR(x) calcule la racine carrée de x.

    Dans l'exemple ci-dessus, on calcule la distance d'un point de coordonnées (X,Y) par rapport au point origine.

    Si on veut calculer la racine n-ième d'un nombre avec n<>2 (par exemple la racine troisième), il faut se servir de la formule mathématique suivante:

             Racine n-ième de x = x^(1/n)

    Ainsi, la racine troisième de 8 est égale à 8^(1/3) = 2.

    A noter qu'il est possible d'utiliser le signe mathématique racine carrée disponible sur la TI.




    INSTRUCTION STOP

    Non implantée.




    FONCTION STR$



    Syntaxe: STR$(x)

    Exemple(s): CLS
    A=3.5E56
    B=&O22
    PRINT STR$(A)
    PRINT STR$(234)
    PRINT STR$(B)


    Fonction: Convertit la valmeur numérique x en une chaîne de caractères.

    Explications:

    'x' est un nombre dans une représentation quelconque (c'est-à-dire l'écriture décimale normale (sans préfixe), l'écriture hexadécimale (préfixe &H), la représentation octale (préfixe &O), la représentation binaire (préfixe &X)) ou une variable numérique.

    STR$(x) convertit la valeur x en une chaîne de caractères correspondant à l'écriture décimale de x (c'est-à-dire que la variable B de l'exemple devient la chaîne "18").

    (voir aussi HEX$(x), OCT$(x) et BIN$(x)).




    FONCTION STRING$



    Syntaxe: STRING$(n,string)
    STRING$(n,c)

    Exemple(s): CLS
    Z$="A"
    PRINT STRING$(50,Z$)
    PRINT STRING$(50,"A")
    PRINT STRING$(50,65)
    PRINT STRING$(25,"AA")


    Fonction: Fournit une chaîne de caractères qui est constituée de n fois la chaîne 'string' ou n fois CHR$(c).

    Explications:

    'n' est un nombre entre 0 et 32767.

    'string' est une expression alphanumérique quelconque.

    'c' est une expression numérique qui représente le code ASCII d'un caractère.

    Une table de correspondance entre les caractères et leurs codes est données en annexe C.

    'c' est transformé par l'interpréteur en un nombre entier compris entre 0 et 255.

    La fonction retourne une chaîne de caractères qui est constituée de n fois de la chaîne 'string' ou du caractère CHR$(c).

    La longueur de la chaîne obtenue ne doit pas dépasser la valeur 32767. L'exemple donne dans tous les quatre cas une chaîne de caractères composée de 50 fois la lettre 'A'.




    INSTRUCTION ARITHMéTIQUE SUB



    Syntaxe: SUB var,b

    Exemple(s): CLS
    T=TIMER
    FOR I%=1 TO 10000
      SUB A%,5
    NEXT I%
    PRINT (TIMER-T)/200
    A%=0
    T=TIMER
    FOR I%=1 TO 10000
      A%=A%-5
    NEXT I%
    PRINT (TIMER-T)/200


    Fonction: Soustrait n à la valeur de 'var'.

    Explications:

    'var' doit être une variable numérique ou un élément d'un tableau numérique.

    'n' est une expression numérique.

    SUB var,n est identique à var=var-n. L'avantage de l'instruction SUB réside dans la vitesse d'exécution (testez l'exemple!). Ainsi, l'utilisation de l'instruction SUB augmente de façon sensible la vitesse d'exécution déjà très élevée par ailleurs.




    INSTRUCTION SWAP



    Syntaxe: SWAP var1,var2

    Exemple(s): CLS
    DIM A(3),B(8)
    ARRAYFILL B(),8
    A$="premier"
    B$="deuxième"
    SWAP A$,B$
    SWAP A(),B()
    PRINT A$,B$
    PRINT A(8),B(2)


    Fonction: Echange les contenus de 'var1' et de 'var2'.

    Explications:

    Cet échange peut s'effectuer avec des variables de n'importe quel type : var1 et var2 peuvent aussi bien être des variables et tableaux numériques que des variables et tableaux alphanumériques ou encore des variables et tableaux booléens.

    'var1' et 'var2' doivent appartenir au même type.

    S'il s'agit de tableaux, il y a aussi échange des dimensions (voir exemple).




    INSTRUCTION SYSTEM

    Non implantée.




    FONCTION TAB

    Non implantée.




    FONCTION TAN



    Syntaxe: TAN(x)

    Exemple(s): CLS
    INPUT RAD
    PRINT TAN(RAD)
    INPUT DEGRE
    PRINT TAN(DEGRE*PI/180)


    Fonction: Calcule la tangente de x.

    Explications:

    'x' est une expression numérique qui représente l'angle (en radians) dont on veut calculer la tangente.

    Si l'on veut entrer l'angle en degrès, il faut remplacer x par 'deg*PI/180', où PI est une fonction du BASIC Gfa qui retourne une valeur approchée de la constante universelle pi (il est aussi possible d'utiliser le symbole mathématique pi de la TI).

    Dans l'exemple, on calcule la tangente d'un angle donné en radians, puis celle d'un angle donné en degrès.




    INSTRUCTION TEXT



    Syntaxe: TEXT x,y,[l,]string

    Exemple(s): CLS
    A$="ABC D"
    TEXT 10,20,A$
    TEXT 10,30,LCD_WIDTH-10,A$
    TEXT 10,40,-(LCD_WIDTH-10),A$


    Fonction: Affiche un texte, en mode graphique, à la position (x,y) de l'écran.

    Explications:

    Le texte est affiché à partir de la position (x,y). L'origine des coordonnées se trouve dans le coin supérieur gauche de l'écran. Le point (x,y) lui-même correspond au coin inférieur gauche de la portion de texte.

    Le paramètre facultatif 'l' peut être négatif ou positif, et détermine la longueur de la zone-écran qui va contenir le texte. Si 'l' est positif, on donne au texte une longueur 'l', en faisant varier les espaces entre les caractères ; si 'l' est négatif, on fait varier les espaces entre les mots (voir exemple). Si l=0, le texte est affiché normalement.

    'string' représente une chaîne de caractères ou une variable alphanumérique (voir exemple).




    FONCTION TIME$

    Non implantée.




    FONCTION TIMER



    Syntaxe: TIMER

    Exemple(s): CLS
    T=TIMER
    REPEAT
      Z=INT((TIMER-T)/2)/100
      PRINT AT(10,3);Z''
    UNTIL RR_ESC


    Fonction: Calcule et transmet le temps écoulé depuis la mise en route du système, en 1/200 de secondes.

    Explications:

    L'appel de cette fonction permet d'obtenir le temps écoulé depuis le lancement du programme. Cette durée varie par pas de 1/200 secondes.

    L'exemple simule un chronomètre affichant les centièmes de secondes.




    INSTRUCTION TITLEW

    Non implantée.




    INSTRUCTION TROFF

    Non implantée.




    INSTRUCTION TRON

    Non implantée.




    CONSTANTE STATIQUE TRUE



    Syntaxe: TRUE

    Exemple(s): Flag!=TRUE


    Fonction: Constante -1

    Explications:

    Il s'agit uniquement d'une autre manière d'écrire (plus lisiblement) la valeur booléenne 'vrai'.




    FONCTION TRUNC



    Syntaxe: TRUNC(x)

    Exemple(s): CLS
    A=3.1415
    PRINT TRUNC(A)
    PRINT TRUNC(-12)
    PRINT TRUNC(-1.99)


    Fonction: Retourne la partie entière de x obtenue en tronquant la partie après la virgule.

    Explications:

    'x' est une expression numérique quelconque.

    La fonction TRUNC est identique à la fonction FIX.

    A noter que sur ATARI ST la fonction TRUNC est différente de la fonction INT contrairement aux TI68K




    FONCTION TYPE

    Non implantée.




    FONCTION UPPER$



    Syntaxe: UPPER$(string)

    Exemple(s): CLS
    A$="basic"
    PRINT UPPER$(A$)
    PRINT UPPER$("1a")
    PRINT UPPER$("GfA")


    Fonction: Transforme toutes les lettres minuscules (voyelles infléchies incluses) d'une chaîne de caractères en lettres majuscules.

    Explications:

    'string' est une expression alphanumérique quelconque.

    Les caractères qui ne sont pas des lettres alphabétiques restent inchangées.

    (Voir aussi LOWER$).




    FONCTION VAL



    Syntaxe: VAL(x$)

    Exemple(s): CLS
    A$="75007 PARIS"
    PRINT VAL(A$)
    PRINT VAL("1.5E05")
    PRINT VAL("GfA")
    Print VAL("&HFF")


    Fonction: Convertit, dans la mesure du possible, la chaîne de caractères x$ en une valeur numérique.

    Explications:

    'x$' peut être une chaîne de caractères ou une variable du même type (alphanumérique) quelconque.

    La fonction VAL extrait la plus grande sous-chaîne de x$ (en partant de la gauche) qui représente une expression numérique (aussi bien dans la représentation décimale normale (sans préfixe), que dans l'écriture hexadécimale (préfixe &H), ou la représentation octale (préfixe &O) ou encore la représentation binaire (préfixe &X)), et retourne la valeur numérique de cette sous-chaîne.

    Pour une chaîne de caractères qui ne représente aucun nombre ou une chaîne vide, on obtient la valeur 0.




    FONCTION VAL?

    Non implantée.




    FONCTION VARPTR



    Syntaxe: VARPTR(var)

    Exemple(s): CLS
    A%=17
    N$="GfA"
    PRINT VARPTR(A%)
    PRINT LPEEK(VARPTR(A%))
    PRINT VARPTR(N$)
    PRINT PEEK(VARPTR(N$))
    PRINT PEEK(VARPTR(N$)+1)
    PRINT PEEK(VARPTR(N$)+2)


    Fonction: Détermine l'adresse (de début) d'une variable.

    Explications:

    'var' est une variable numérique, alphanumérique ou booléenne quelconque. Les variables et leurs contenus sont placés en mémoire selon un schéma bien précis (voir chapitre sur l'organisation des variables dans la FAQ).

    VARPTR(var) détermine l'adresse du premier octet où est mémorisé 'var'.

    Ainsi, avec l'instruction VARPTR(A%) tirée de l'exemple, on obtient l'adresse du premier des quatres octets qui contiennent A%.

    PEEK(VARPTR(N$)) (également tirée de l'exemple ci-dessus) renvoie le code ASCII du premier caractère de la chaîne N$, à savoir 71.




    FONCTION VDIBASE

    Non implantée.




    INSTRUCTION VOID

    Non implantée.




    INSTRUCTION VSYNC

    Non implantée.




    INSTRUCTION WAVE

    Non implantée.




    INSTRUCTION DE STRUCTURE WHILE...WEND



    Syntaxe: WHILE condition
    WEND

    Exemple(s): CLS
    WHILE A<10
      A=A+1
      PRINT A
    WEND


    Fonction: Met en place une boucle conditionnelle.

    Explications:

    Le bloc d'instructions entre WHILE et WEND est exécuté (éventuellement plusieurs fois) tant que la condition est vérifiée. Comme on teste la condition au début de l'instruction, il est fort possible que la boucle ne soit parcourue aucune fois, à l'inverse de l'instruction REPEAT...UNTIL.




    INSTRUCTION I/O WRITE
    WRITE #

    Non implantée.



        
    Rubriques
    Introduction
    Liste des fonctions
    Tutorial de base
    Optimisations

    Ordre alphabétique
    '
    !

    *
    ==
    @
    ABS
    ADD
    ALERT
    ARRAYFILL
    ARRPTR
    ASC
    ATN
    BASEPAGE
    BGET
    BIN$
    BITBLT
    BLOAD
    BSAVE

    BMOVE
    BOX
    BPUT
    C:
    CALL
    CHAIN
    CHDIR
    CHDRIVE
    CHR$
    CIRCLE
    CLEAR
    CLEARW
    CLOSE
    CLOSEW
    CLR
    CLS
    COLOR
    CONT
    COS
    CRSCOL
    CRSLIN

    CVI
    CVL
    CVF

    DATA
    DATE$
    DEC
    DEFFILL
    DEFFN
    DEFLINE
    DEFLIST
    DEFMARK
    DEFMOUSE
    DEFNUM
    DEFTEXT
    DFREE
    DIM
    DIM?
    DIR
    DIR$
    DIV
    DO...LOOP
    DRAW
    EDIT
    ELLIPSE
    END
    EOF
    ERASE
    ERR
    ERROR
    EVEN
    EXEC
    EXIST
    EXIT
    EXIT IF

    EXP
    FALSE
    FATAL
    FIELD
    FILES
    FILESELECT
    FILL
    FIX
    FOR...NEXT
    FORM INPUT
    FORM INPUT AS
    FRAC
    FRE
    FULLW
    GET
    GET
    GOSUB
    GOTO
    GRAPHMODE
    HARDCOPY
    HEX$
    HIDEM
    HIMEM
    IF
    ELSEIF
    ELSE IF
    ELSE
    ENDIF

    INC
    INFOW
    INKEY$
    INP
    INP?
    INPUT
    INPUT #

    INPUT$
    INSTR
    INT
    KILL
    LEFT$
    LEN
    LET
    LINE
    LINE INPUT
    LINE INPUT #

    LIST
    LLIST
    LOAD
    LOC
    LOCAL
    LOF
    LOG
    LOG10

    LPOS
    LPRINT
    LSET
    MAX
    MENU
    MENU
    MID$
    MID$
    MIN
    MKDIR
    MKI$
    MKL$
    MKF$

    MONITOR
    MOUSE
    MOUSEX
    MOUSEY
    MOUSEK

    MUL
    NAME
    NEW
    OCT$
    ODD
    ON BREAK
    ON BREAK CONT
    ON BREAK GOSUB

    ON ERROR
    ON ERROR GOSUB

    ON MENU BUTTON
    ON MENU GOSUB
    ON...GOSUB
    OPEN
    OPENW
    OPTION
    OPTION BASE 0
    OPTION BASE 1

    OUT
    OUT?
    PAUSE
    PBOX
    PCIRCLE
    PEEK
    DPEEK
    LPEEK

    PELLIPSE
    PI
    PLOT
    POINT
    POKE
    DPOKE
    LPOKE

    POLYLINE
    POLYFILL
    POLYMARK

    POS
    PRBOX
    PRINT
    PRINT #

    PRINT USING
    PROCEDURE
    PUT
    PUT
    QUIT
    RANDOM
    RBOX
    READ
    RELSEEK
    REM
    REPEAT...UNTIL
    RESERVE
    RESTORE
    RESUME
    RETURN
    RIGHT$
    RMDIR
    RND
    RSET
    RUN
    SAVE
    PSAVE

    SEEK
    SETCOLOR
    SETTIME
    SGET
    SGN
    SHOWN
    SIN
    SOUND
    SPACE$
    SPC
    SPOKE
    SDPOKE
    SLPOKE

    SPRITE
    SPUT
    SQR
    STOP
    STR$
    STRING$
    SUB
    SWAP
    SYSTEM
    TAB
    TAN
    TEXT
    TIME$
    TIMER
    TITLEW
    TROFF
    TRON
    TRUE
    TRUNC
    TYPE
    UPPER$
    VAL
    VAL?
    VARPTR
    VDIBASE
    VOID
    VSYNC
    WAVE
    WHILE...WEND
    WRITE
    WRITE #


     


    Copyright © 2004-2005 for Ti-Gen - Geoffrey Anneheim - Tous droits réservés.[Design by : Speedy-Diz]