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 GRAPHIQUE ALERT

    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 GRAPHIQUE CIRCLE

    Non implantée.




    INSTRUCTION GRAPHIQUE COLOR

    Non implantée.




    INSTRUCTION GRAPHIQUE DEFFILL

    Non implantée.




    INSTRUCTION GRAPHIQUE DEFLINE

    Non implantée.




    INSTRUCTION GRAPHIQUE DEFMARK

    Non implantée.




    INSTRUCTION GRAPHIQUE DEFMOUSE

    Non implantée.




    INSTRUCTION GRAPHIQUE DEFTEXT

    Non implantée.




    INSTRUCTION GRAPHIQUE DRAW

    Non implantée.




    INSTRUCTION GRAPHIQUE ELLIPSE

    Non implantée.




    INSTRUCTION GRAPHIQUE FILL

    Non implantée.




    INSTRUCTION GRAPHIQUE GRAPHMODE

    Non implantée.




    INSTRUCTION GRAPHIQUE HIDEM

    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 GRAPHIQUE MOUSE

    Non implantée.




    INSTRUCTION GRAPHIQUE PBOX

    Non implantée.




    INSTRUCTION GRAPHIQUE PCIRCLE

    Non implantée.




    INSTRUCTION GRAPHIQUE PELLIPSE

    Non implantée.




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




    INSTRUCTION GRAPHIQUE POLYLINE
    POLYFILL
    POLYMARK

    Non implantée.




    INSTRUCTION GRAPHIQUE PRBOX

    Non implantée.




    INSTRUCTION GRAPHIQUE RBOX

    Non implantée.




    INSTRUCTION GRAPHIQUE SETCOLOR

    Non implantée.




    INSTRUCTION GRAPHIQUE SGET

    Non implantée.




    INSTRUCTION GRAPHIQUE SHOWN

    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.



        
    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]