| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

GFA-Basic 68k

Page history last edited by PBworks 16 years, 3 months ago

 

Programmation GFA-Basic sur 68k

Version 1.0 / débuté le 30/06/07 par Tama

 

l         68k ?

 

Les 68k désignent les TI89, 89 titanium, 92, 92+, 92 II et la voyage 200. Cette appellation est due à leur processeur, un MOTOROLA 68000 mais je ne vais pas m’étendre davantage sur le processeur (d’autant que je n’ai pas d’informations sur celui-ci). Ce tutorial est donc destiné à tous ceux qui possèdent une TI mentionnée précédemment et qui souhaitent, comme le titre l’indique, programmer en GFA-Basic.

 

l         GFA-Basic ?

 

Déjà une petite introduction sur le GFA-Basic. Il semblerait qu’il s’agisse d’un langage de programmation, au même titre que l’ASM, le C ou le Basic qu’on trouvait sur les machines il y a quelques années (10 à 20 ans ?). Je dirais que ce langage est à mi-chemin entre le Basic initial de la TI (TI-Basic) et les langages plus bas niveau (plus proches de la machine) comme le C ou l’ASM.

Il est relativement facile d’usage et permet des choses impossibles en TI-Basic et surtout d’apporter de la rapidité aux programmes…

 

l         Commençons à appendre !

 

D’abord le sommaire :

                                   Introduction

I.                     (p.2-3) GFA-Basic vs. TI-Basic (statut: 100%)

II.                   (p.4) GFA-Basic: comment s’en servir? (statut : 100%)

III.                 (p.5-7) Les bases (statut : 70%)

IV.                ?

V.                  ?

VI.                ?

VII.              ?

VIII.            ?

IX.                 ?

X.                   ?

XI.                 ?

XII.               ?

XIII.             ?

XIV.            ?

XV.              ?

Conclusion

 

Voilà nous pouvons commencer maintenant à apprendre le GFA-Basic. Commençons tout de suite par le chapitre 1…


 

Chapitre 1

Utiliser GFA-Basic

 

Nous y voilà donc…le 1er chapitre.

Ce premier chapitre très court prouvera seulement ce que j’ai dit dans l’introduction, c'est-à-dire : « …et permet des choses impossibles en TI-Basic et surtout d’apporter de la rapidité aux programmes… »

 

Tous les tests que je réaliserais durant tout ce tutorial seront faits sur ma TI, qui est une TI89 titanium avec HW3 que je suppose à environ 12 MHz (12.2 en réalité à la dernière mesure mais ça dépend de l’état des piles)

 

Voici donc un programme très simple en GFA-Basic puis son équivalent en TI-Basic :

 

Code GFA-Basic

A=0

For A=0 to 5000

  Print At(1,1) ; "A="+Str$(A)

Next

 

 

Code TI-Basic

0->A

For A, 0, 5000

 Output 1,1, "A="&string(A)

EndFor

 

Je recommande quand même de connaître le TI-Basic avant de se lancer dans le GFA-Basic

 

 

Voici donc nos 2 codes qui font exactement la même chose

 

Une seule différence toutefois : Elle se situe dans les lignes

 

Print At(1,1) ; "A="+Str$(A)

Output 1,1, "A="&string(A)

 

Quelle est la différence ? Ces deux lignes semblent identiques (affichent quelque chose à (1,1) qui est ici la valeur de A)

 

Ces 2 lignes illustrent la 1ère partie de la phrase : « …et permet des choses impossibles en TI-Basic »

En effet dans le programme TI-Basic, cette ligne affichera la valeur de A à partir de la 2ème colonne (1+1) de la 2ème ligne (1+1) de l’écran utilisable par l’utilisateur, l’écran I/O (ou E/S en français), c'est-à-dire un écran de 160*76. Il affichera donc le texte à partir du point de coordonnées (1,83).

 

En revanche, le GFA-Basic va utiliser tout l’écran, c’est-à-dire 160*100, il va donc afficher le texte à partir du pixel de coordonnées (0,0), absolument dans le coin supérieur gauche de l’écran de la TI, ceci étant impossible en basic PUR, sans sous-programme ASM ou chaines EXEC.

 

 

Maintenant exécutons les 2 programmes et testons le temps d’exécution.

Après test, je trouve :

 

TI-Basic

96.85 s

(+ ou – 0.05s)

GFA-Basic

29.725 s

(+ ou – 0.005 s)

 

Pas très convaincant ? C’est vrai qu’ici le code en GFA est seulement 3.26 fois plus rapide…

 

Maintenant on va changer la variable A en A% et recommencer…on trouve 23.52 s (+ ou – 0.005s)

 

C’est toujours 6.25s de gagnées rien qu’avec 2/3 changements…

 

Ici l’exemple donné n’était pas complètement convaincant, reste que le code GFA reste 4.12 fois plus rapide que son équivalent en Basic.

 

Dans certains cas, l’écart est beaucoup plus important, comme dans le cas d’une boucle vide de 10000 itérations (= For A, 1, 10000) qui prend 58.40s (+ ou – 0.05s) en TI-Basic contre 0.45s (+ ou – 0.005s) en GFA, ce qui correspond à 129.8 fois plus rapide.

 

 

 

Voilà c’est la fin de ce premier court chapitre qui était plus un prolongement de l’introduction qu’un chapitre en soi.

 

Dès le prochain chapitre on pourra commencer à véritablement apprendre à programmer en GFA…

 

 

Chapitre 2

GFA-Basic : comment s’en servir ?

 

C’est bien beau toute cette vitesse mais comment on fait pour programmer ? Et comment on fait pour exécuter le programme ? on peut pas tester l’exemple du chapitre 1 ?

 

Du calme =D

Tout d’abord, pour programmer en GFA-Basic...il faut un ordinateur (enfin je suppose que vous l’avez sinon il y a peu de chances que vous soyez en train de lire les lignes que j’écris), l’accès à Internet pour télécharger les bons fichiers (le lien est ici => www.tigen.org/gfabasic) et ensuite il faut :

l         Télécharger la dernière release de GFA-Basic et de GFA-TEM

l         Télécharger si besoin des patchs

l         Ouvrir le dossier bin

l         Trouver sa calculatrice

l         Envoyer le contenu du dossier bin/ma calculatrice à sa TI via TI-Connect ou autres logiciels de transfert

 

Si vous ne pouvez pas envoyer les fichiers, arrêtez vous là car le GFA-Basic est un langage qui se programme oncalc (pour ceux qui n’auraient pas compris => sur calculatrice) directement à partir de l’éditeur de texte inclus

 

Une fois les fichiers envoyés, pas besoin d’installation, vous pouvez directement commencer à coder sur la calculatrice via l’éditeur de texte. Pour ceux qui ne savent pas comment accéder à cet éditeur => [Apps] et chercher « Text editor/éditeur de texte ».

(Puis nouveau, ouvrir ou courant…enfin à vous de vous débrouiller pour savoir utiliser cet éditeur)

 

Ok…maintenant qu’on est dans l’éditeur de texte, que faire ?

Et bien, programmer…par exemple recopiez l’exemple précédent du chapitre 1 pour tester vous-même l’efficacité du GFA-Basic par rapport au TI-Basic…

 

Une fois fini de recopier le programme (plus tard de créer les vôtres… ;)) vous pouvez quitter l’éditeur de texte, revenir dans l’écran HOME (celui de calcul) puis vous tapez :

 

Gfaexec (« nomduprogramme »)

(Sans espaces et sans parenthèses après le nom du programme)

 

Puis vous attendez qu’un petit message s’affiche en bas de l’écran qui vous dit de poursuivre le lancement en appuyant sur [Enter].

Nous allons commencer à programmer dans le chapitre 3…

Chapitre 3

Les bases

 

Maintenant qu’on sait comment écrire un programme GFA et le lancer, on peut s’intéresser à programmer…

 

Quels sont donc les équivalents des fonctions les plus utilisées en TI-Basic, les Disp, les For, les Loop ou les While ?

 

l         Assigner une valeur à une variable

 

En TI-Basic, pour donner une valeur à une variable, par exemple pour mettre la variable 25 dans T, on écrit :

 

25->T

 

En GFA-Basic, comme dans la plupart des autres langages (entre autres le C) on remplace le signe à par le signe =

Mais ATTENTION, contrairement au TI-Basic, ou la syntaxe est [valeuràvariable], la syntaxe du GFA est [variable = valeur] (sans espaces bien sûr)

 

Donc pour mettre 25 dans la variable T en GFA, on utilisera :

T=25

 

Simple non ?

 

 

En GFA, il existe plusieurs types de variables, pour les différencier on met un suffixe après chacune d’elles :

Voici les principales :

A

Variable normale qui peut accueillir des nombres à virgules ou entiers

Exemple : A=0.669842

A%

Variable « entière » ne pouvant accueillir que des nombres entiers (les nombres décimaux seront tronqués)

Exemple A%=55

A$

Chaine de caractères

Exemple A$= « bonjour »

 

l         Effacer l’écran (ClrIO en TI-Basic)

 

Pour effacer l’écran il y a une instruction toute simple qui tient en 3 lettres : CLS pour Clear Screen (effacer l’écran)

Cette fonction ne prend pas d’argument et effacera tout simplement tout l’écran.

 

En GFA, il n’y a pas d’écran Home, écran I/O et écran GRAPH, il n’existe qu’un seul écran c’est beaucoup plus simple. Il est ainsi possible d’écrire du texte et de dessiner sur le même écran

 

l         Afficher quelque chose à l’écran ? (Disp en TI-Basic)

 

Encore une fois très simple il s’agit de Print

Print est plus l’équivalent de PtText/PxlText mais peut aussi remplacer Disp. En effet, il est possible d’indiquer où afficher le texte/les nombres et afficher plusieurs choses à la suite

 

Pour cela, il existe des signes :

;

Ecrire à la suite sans espace

Exemple : Print « bonjour  » ; « tout le monde »

Affichera => bonjour tout le monde

Mettre un espace

Exemple : Print « bonjour » ‘ « tout le monde »

Affichera => bonjour tout le monde

,

Retour à la ligne suivante

Exemple : Print « bonjour », « tout le monde »

Affichera => bonjour

           tout le monde

 

Comme Disp, l’écran s’adaptera si le texte dépasse de l’écran

 

Il est également possible de spécifier où placer le texte/le nombre etc…

Pour cela, ajouter avant ce qu’il y a à afficher « At(position y, position x) » (sans les guillemets) pour le placer là où il faut

 

Attention aux valeurs de position y et position x

 

Si vous voulez le placer vraiment à un endroit précis, préférez l’instruction « Text » mais attention ce qui devra être affiché devra absolument être une chaine de caractères

 

Comment convertir un nombre en chaine de caractères ?

è utiliser l’instruction Str$() qui prend en argument le nom de la variable

 

Exemple :

A%=255

A$=Str$(A%)

 

A$ sera une chaine qui correspondra à A%, on aura donc :

A$= « 255 »

 

Comments (0)

You don't have permission to comment on this page.