Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » GFA-Basic TI68K » News » Bêta du projet (38 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
geogeo Ecrit le: Mercredi 25 août 2004 à 18:05 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Après avoir codé beaucoup de fonctions et avoir revue entièrement le projet, voici une version qui permet de faire des petits programmes (pas encore des jeux avec sprites...).
Il faut avoir sur sa TI un programme qui permet d'executer un projet de plus de 24 Ko. Preos suffit.

Téléchargez la dernière version

Cette version comporte plus de 50 fonctions avec les structures suivantes:
label:
Goto label

If ... [Then]
Elseif ... [Then]
Else If ... [Then]
Else
Endif

L'opérateur Not est entièrement géré sans problème.
Il y a quelques erreurs d'espaces avec le détokeniseur.

Dans le pack il y a un programme d'exemple, un petit jeu ou il faut remettre les lettres ou les chiffres dans l'ordre.

Pour lancer l'exemple il faut faire:
gfabasic("invers")
Cette ligne transforme le fichier texte en fichier tokenisé portant le nom de tokens
Ensuite il faut taper la ligne suivante pour executer le programme:
gfabasic("tokens")
Cette ligne restaure le fichier texte en untoken avec indentation automatique... et execute le programme. Il créer un fichier dit d'executions tokenbuf contenant que des tokens d'executions.

Voici la source du programme Inversion:

Rem ---------
Rem INVERSION
Rem ---------
Dim A$(2)
Cls
Setfont 1
T=Int(Rnd*2)+1
A$(1)="ABCDEFGHI"
A$(2)="123456789"
T$=A$(T)
Rem -------
Rem MELANGE
Rem -------
I=1
Boucle1:
If I<=20 Then
  V=Int(Rnd*9)+1
  W=Int(Rnd*9)+1
  X$=Mid$(T$,V,1)
  T$=Left$(T$,V-1)+Mid$(T$,W,1)+Right$(T$,9-V)
  T$=Left$(T$,W-1)+X$+Right$(T$,9-W)
  Inc I
  Goto Boucle1
Endif
Rem -------------
Rem DESSIN DU JEU
Rem -------------
Setfont 2
Print Space$(3);"INVERSION"
Setfont 1
Recom:
I=1
Boucle2:
If I<=9 Then
  Print At(I*2,5);I
  Print At(I*2,3);Mid$(T$,I,1)
  Inc I
  Goto Boucle2
Endif
If T$=A$(T) Then
  Goto Fin
Endif
Rem ------
Rem SAISIE
Rem ------
Print At(2,8);"NB INVERSIONS ? ";
Boucle3:
N=Ngetchx()
If N=264 Then
  End
Else If Not(N-48>=2 And N-48<=9)
  Goto Boucle3
Endif
Sub N,48
Print N
I=1
Boucle4:
If I<=N/2 Then
  X$=Mid$(T$,I,1)
  T$=Left$(T$,I-1)+Mid$(T$,N-I+1,1)+Right$(T$,9-I)
  T$=Left$(T$,N-I)+X$+Right$(T$,8-N+I)
  Inc I
  Goto Boucle4
Endif
Inc E
Goto Recom
Rem ---
Rem FIN
Rem ---
Fin:
Print At(1,10);"VOUS AVEZ TROUVE "
Print At(1,11);"EN ";E;" ESSAIS"
End


Les sources du projet sont incluses dans le pack. Il y a encore beaucoup à faire avant d'avoir une version facile à utiliser et finie.
-Edité le Mercredi 25 août 2004 à 18:11 par geogeo-
-Edité le Mercredi 25 août 2004 à 18:23 par geogeo-
EDIT: Correction balise
-Edité le Mercredi 25 août 2004 à 20:14 par limmt-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°1   Marquer comme non lu.
geogeo Ecrit le: Jeudi 26 août 2004 à 00:47 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Ca interesse personne. #ouin#
(Franchement je perd motivation.)
-Edité le Jeudi 26 août 2004 à 00:47 par geogeo-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°2   Marquer comme non lu.
Onur Ecrit le: Jeudi 26 août 2004 à 01:03 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


Si moi.
Mais ca va pas faire succes du jour au lendemain. Lance des jeux que tu as fait avec sur Ti-calc (avec les sources et gfa-basic eventuellement (ou un lien))
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°3   Marquer comme non lu.
limmt Ecrit le: Jeudi 26 août 2004 à 08:03 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


c'est cool mais tant que les graphismes sont pas inplémentés y'a pas grzand chose a faire avec :)
ofaite y'aura des niveaux de gris?
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°4   Marquer comme non lu.
LionelA Ecrit le: Jeudi 26 août 2004 à 09:32 Déconnecté(e)    Voir le profil de LionelA Envoyer un email à LionelA Visiter le site WEB de LionelA Envoyer un message privé à LionelA  


Ca m'interresse aussi mais je suis désolé car tout mon temps libre je le consacre à mon projet...
Ne perds pas ta motivation car aparament tu es dans une bonne voie et si tu finalise ce projet il y a de grandes chances pour que ton basic soit adopté par la majorité des programmeurs basic sur TI.
Bonne chance pour la suite ! #top#
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/
    
./Post n°5   Marquer comme non lu.
Dari Ecrit le: Jeudi 26 août 2004 à 12:11 Déconnecté(e)    Voir le profil de Dari Envoyer un email à Dari Visiter le site WEB de Dari Envoyer un message privé à Dari  

Désolé, oui, c'est intéressant, mais j'attends une public release (genre 1.0) puis la rentrée approche, donc voilà, pas trop le temps.
"iPod, therefore, I am."

http://media.laquadrature.net/Quadrature_black-out_HADOPI_468x60px.gif

    
./Post n°6   Marquer comme non lu.
geogeo Ecrit le: Jeudi 26 août 2004 à 13:12 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


OK, l'exemple diffusé montre surtout comment ce présente une source et les possibilités du langage. Malgré ça c'est assez difficile à interpréter.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°7   Marquer comme non lu.
Onur Ecrit le: Jeudi 9 septembre 2004 à 14:59 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


dis moi..
jai limpression que ton ngetchx nest pas le meme que celui du C.
y a pas une fonction qui attend qu'on appuie sur une touche?? (un ngetchx koi)
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°8   Marquer comme non lu.
geogeo Ecrit le: Jeudi 9 septembre 2004 à 21:04 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Bah si Ngetchx. #confus#
Il n'y a pas de gestion de front montant, je vais implanter ça.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°9   Marquer comme non lu.
geogeo Ecrit le: Vendredi 22 octobre 2004 à 12:37 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


La dernière version est téléchargeable, elle date du 02/10/04.
Je vous conseil d'essayer les exemples de la documentation, documentation qui va grossir dans peu de temps. L'interpéteur va devenir aussi plus agréable à utiliser! Et le moteur d'execution des tokens sera écrit 100% en ASM. Mais auparavant je dois clarifier son architecture.

http://tisofts.free.fr/GFABasic/gfa021004.zip
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°10   Marquer comme non lu.
Invité Ecrit le: Jeudi 28 octobre 2004 à 09:15 Déconnecté(e)    
 
Vive la synthaxe :`\
Pkoi ne pas avoir fait du Scheme pendant qu'on y est !
    
./Post n°11   Marquer comme non lu.
geogeo Ecrit le: Jeudi 28 octobre 2004 à 12:19 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Euh je ne vois pas ce qu'il y a de génant dans la syntaxe! Si tu pouvais être plus explicite ça pourrait peut être m'aider!
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°12   Marquer comme non lu.
Invité Ecrit le: Jeudi 28 octobre 2004 à 12:57 Déconnecté(e)    
 
La syntaxe Basic est vraiment démodée :| il ya mieux, plus naturel etc.
    
./Post n°13   Marquer comme non lu.
Invité Ecrit le: Jeudi 28 octobre 2004 à 12:59 Déconnecté(e)    
 
En gros, je trouve ça con de faire un nouveau Basic pour calculatrice.
Autant porter une restriction d'un language ayant une syntaxe plus actuelle
    
./Post n°14   Marquer comme non lu.
geogeo Ecrit le: Jeudi 28 octobre 2004 à 13:23 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Comme? Soit plus explicite.
Mais la syntaxe du GFA Basic est très puissante, suffit de regarder les démos sur Atari ST!
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°15   Marquer comme non lu.
Invité Ecrit le: Jeudi 28 octobre 2004 à 13:53 Déconnecté(e)    
 
lol
la syntaxe n'est pas du tout puissante, tu n'as aucun moyen d'acceder au pseudo bas-niveau
    
./Post n°16   Marquer comme non lu.
geogeo Ecrit le: Jeudi 28 octobre 2004 à 14:06 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Euh si y a des pointeurs, Peek et Poke... Accès aux Rom_Calls... GFA Basic est un langage de moyen niveau qui offre énormément de possibilités. On peut pousser l'expérience plus loin en permettant d'exécuter de l'ASM, ce qui existe déjà sur Atari ST.

Mais ne penses-tu pas qu'un langage alternatif au TI-Basic OnCalc bien plus rapide (environ 30x pour l'instant) qui permet aux débutants comme aux pros de coder des programmes ne soit pas interessant?
-Edité le Jeudi 28 octobre 2004 à 14:07 par geogeo-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°17   Marquer comme non lu.
Invité Ecrit le: Jeudi 28 octobre 2004 à 16:15 Déconnecté(e)    
 
la syntaxe me fait penser au QBasic =)> instinctivement, je ne regarde même pas...
    
./Post n°18   Marquer comme non lu.
Onur Ecrit le: Samedi 30 octobre 2004 à 22:22 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


tu programme en koi dhabitude???
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°19   Marquer comme non lu.
geogeo Ecrit le: Samedi 18 décembre 2004 à 21:15 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Dernière version du projet (je le diffuse car je compte reprendre le développement du portail de Ti-Gen et comme je ne peux pas tout faire en même temps, GFA Basic sera un peu en pause).

Cette version supporte tous les modèles de calculatrice, TI92+/TI89/TI89T & V200.



Donc comme d'habitude, envoyez tous les fichiers se trouvant dans le dossier GFA-Basic/bin et dans le dossier GFA-TEM/bin sur votre TI, ensuite envoyer une démo par exemple ce situant dans le dossier démo puis exécuter un programme en tapant gfaexec("nom_du_prog")
GFA-Basic va créer un fichier tokens.bas contenant votre programme au format GFA-Basic, tokenbuf.gtk au format langage bas niveau pour GFA-TEM et untoken.text contenant le code source de votre programme mais auto-indenté... obtenu à partir du fichier tokens.bas.

Les nouveaux sont assez importantes dans cette bêta comme le support des chaînes de caractères sans trop de restrictions (reste la pile qui a une taille limitée de 1 Ko donc faut pas abuser des grosses chaînes de caractères!!!), elle supporte les tableaux de tous les types même chaînes de caractères, elle supporte la concanétation de chaînes, les constantes (HW_VERSION, CALCULATOR, AMS_2XX, RR_LEFT, LCD_WIDTH... (voir la table des constantes dans les sources ou dans le topic sur le format d'un fichier BAS ou même dans TIGCC). Cette bêa supporte aussi le signe racine carré et exponentielle de la TI. Bref beaucoups de nouveautés très interessante.

A noter qu'un programme quitte tout seul dans demander d'appuyer sur une touche donc le mieux et d'écrire ces 2 lignes à la fin de chaque programme.

repeat
until getkey


Voici la liste des fonctions développées et des possibilités du langage:

Evolution du projet. Et TODO:
-----------------------------

- Gestion des nombres (flottants, entiers).
- Gestion des variables numériques (flottants, entiers, booléens).
- Gestion du transtypage dynamique.
- Gestion de l'affectation.
- Gestion des opérateurs méthématiques:
Additon = +
Soustraction = -
Multiplication = *
Division = /
Division entière = \ ou Div
Puissance = ^
Modulo = Mod
- Gestion des opérateurs de comparaisons:
Egal = =
Supérieur = >
Inférieur = <
Supérieur ou égal = >= ou signe TI
Inférieur ou égal = <= ou signe TI
Différent = <> ou signe TI
- Gestion des opérateurs logiques:
NON logique = Not
ET logique = And
OU Inclusif = Or
OU Exclusif = Xor
Implication = Imp
Equivalence = Eqv
- Gestion de la négation numérique soit (-).
- Gestion des structures:
Goto Label
Do ... Loop
While ... Wend
Repeat ... Until
If ... [Then] ... ElseIf ... [Then] ... Else ... Endif
For ... [To][DownTo] ... Next
For ... To ... Step ... Next
- Gestion de Exit [If] pour quitter une structure précédente sauf structure If et Goto Label.
- Gestion des opérateurs arithmétiques optimisés:
Add, Sub, Mul, Div, Inc et Dec.
- Gestion des constantes:
TRUE
FALSE
PI
- Gestion du signe puissance de dix et Pi de la TI.
- Gestion des commentaires en début de ligne avec ' et en milieu de ligne avec !
- Gestion des nombres en binaire, hexadécimal ou en octal avec &X, &H et &O réciproquement.
- Possibilité de forcer un entier à être un flottant en ajoutant un point à la fin de ce nombre comme par exemple 52. ou 52.0
- Gestion complète de Print et Print At avec la possibilité d'utiliser , ou ; ou ' pour séparer des données. (les chaînes de caractères ne sont pas gérées).
- Autoindentation pour le détokeniseur.
- Possibilité d'utiliser - comme négation (-) ainsi A=A*-3 est possible!
- Possibilité de taper Else If à la place de Elseif.
- Apostrophes côte à côte autorisées Genre Print 25''52.
- Supporte les tableaux de flottants, d'entiers et de booléeans.
- Lecture d'une chaîne de caractères et affichage avec Print.
- Gestion des variables de type chaînes de caractères.
- Gestion des tableaux de chaînes de caractères.
- Concanétation de chaînes de caractères. Opérateur +, fonctionne avec les variables et les tableaux.
- Opérateurs de comparaisons avec les chaînes de caractères. (<, >, <=, >=, <>, =).
- Supporte les signes mathématiques de la TI soit PI, exponentielle de 1 (e), fonction exponentielle 'e^(' et la racine carrée.
- Supporte les constantes du type (CALCULATOR, HW_VERSION, LCD_xxx, AMSx_xx, RR_xxx, KEY_xxx...).


Une instruction de commandes est la première instruction d'une ligne.
Une instruction de fonctions est une instruction qui se trouve n'importe où sur une ligne et qui retourne une valeur.


Liste des instructions de commandes:
====================================

Print [,|;|'][data]= Affichage de données.
Print At(x,y)[,|;|'][data] = Affichage de données à des coordonnées précises.
Cls = Efface l'écran et positionne à 0,0 le curseur de texte pour Print.
Add var,x = Ajoute x à var soit var=var+x.
Sub var,x = Soustrait x à var soit var=var-x.
Mul var,x = Multiplie x à var soit var=var*x
Div var,x = Divise var par x soit var=var/x.
Inc x = Incrémente x de 1 soit x=x+1.
Dec x = Décremente x de 1 soit x=x-1.
Plot x,y = Affiche un point clippé au coordonnées x et y.
Line x0,y0,x1,y1 = Dessine une ligne clippée de coordonnées x0,y0 et x1,y1.
Dim tab(x[,x...])[,tab(x[,x...])...] = Dimensionne et déclare un tableau.
Box x0,y0,x1,y1 = Dessine un rectangle vide clippé de coordonnées x0,y0 à x1,y1.


Liste des instructions de fonctions:
====================================

Abs(x) = Valeur absolue de x.
Cos(x) = Cosinus de x.
Sin(x) = Sinus de x.
Rnd[()] = Retourne un nombre aléatoire compris entre 0 et 1.
Random(x) = Retourne un nombre aléatoire compris entre 0 et x-1.
Timer[()] = Retourne le temps écoulé depuis l'exécution du programme. Ce temps est donné en 1/200 de secondes.
Getkey[()] = Retourne la combinaison de touche pressées.
Atn(x) = Retourne l'arctangente de x.
Even(x) = Détermine la parité de x (paire).
Odd(x) = Détermine la parité de x (impaire).
Sgn(x) = Détermine le signe de x (0, si x=0; +1, si x>0; -1, si x<0).
Tan(x) = Calcule la tangente de x.
Log(x) = Calcule le logarithme népérien de x.
Log10(x) = Calcule le logarithme décimal (base 10) de x. Log10(x)=Log(x)/Log(10).
Sqr(x) = Calcule la racine carrée de x. Sqr(x)=x^(1/2).
Exp(x) = Calcule l'exponentielle de x (e^x e=2.7182818285).
Fix(x) = Récupère la partie entière de x.
Frac(x) = Récupère la partie décimale de x. Frac(52.36)=0.36.
Round(x) = Arrondie le nombre x. (Risque d'erreur avec des nombres supérieurs à 2 milliars en valeur absolue).
Asc(x$) = Retourne le code ASCII du premier caractère de la chaîne x$.
Bin$(x) = Convertit la valeur x en une chaîne de caractères représentant l'écriture binaire de x.
Hex$(x) = Convertit la valeur x en une chaîne de caractères représentant l'écriture hexadécimal de x.
Oct$(x) = Convertit la valeur x en une chaîne de caractères représentant l'écriture octale de x.
Chr$(x) = Retourne le caractère dont le code ASCII est x.
Len(x$) = Calcule la longueur de la chaîne de caractères x$.


Voilà j'espère que vous testerez rapidement cette version et que vous aurez le courage de développer de petits softs (avec les fonctions de tracées de base...). :)
-Edité le Samedi 18 décembre 2004 à 21:21 par geogeo-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
  :: Index » GFA-Basic TI68K » News » Bêta du projet (38 réponse(s))
Pages : 1/2     « [1] 2 » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 187.39ms avec 23 requetes