« Axe Parser » : différence entre les versions

Aller à la navigation Aller à la recherche
193 octets ajoutés ,  14 août 2015
m
Mise à jour dernière version (Infobox)
m (Mise à jour dernière version (Infobox))
(6 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 8 : Ligne 8 :
| latest preview version =  
| latest preview version =  
| latest preview date    =  
| latest preview date    =  
| latest release version = Omega 1.2.1a
| latest release version = Omega 1.2.2a
| latest release date    = {{Start date and age|17|12|2012}}
| latest release date    = {{Start date and age|25|10|2013}}
| langage              = [[Asm]]
| langage              = [[Asm]]
| os                  = OS 1.12 à 1.19, 2.41, 2.43, et 2.55 en mode CLASSIC uniquement
| os                  = OS 1.12 à 1.19, 2.41, 2.43, et 2.55 en mode CLASSIC uniquement
Ligne 15 : Ligne 15 :
| statut              = En développement
| statut              = En développement
| genre                = Compilateur
| genre                = Compilateur
| licence              = libre
| licence              = (c) Kevin Horowitz, puis libre
| site                = [http://www.omnimaga.org/index.php?board=71.0 Forum Axe (en)]
| site                = [http://www.omnimaga.org/index.php?board=71.0 Forum Axe (en)]
[http://axe.eeems.ca/Documentation.pdf Documentation (en)]
[http://axe.eeems.ca/Documentation.pdf Documentation (en)]
Ligne 41 : Ligne 41 :
* La puissance du langage Axe attirera les programmeurs, et en 2010, l'Axe Parser se verra récompensé par le titre de '''''Program of the Year'' 2010''' décerné par TI-Calc.org !
* La puissance du langage Axe attirera les programmeurs, et en 2010, l'Axe Parser se verra récompensé par le titre de '''''Program of the Year'' 2010''' décerné par TI-Calc.org !
* Dès lors, les versions du compilateur se succèdent et se perfectionnent (encore en développement aujourd'hui). Les possibilités de ce langage sont bien supérieures à celles du [[TI-Basic]] et son exécution bien plus rapide, certaines actions souvent utilisées pour des jeux ayant été automatisées par des routines programmées en assembleur.
* Dès lors, les versions du compilateur se succèdent et se perfectionnent (encore en développement aujourd'hui). Les possibilités de ce langage sont bien supérieures à celles du [[TI-Basic]] et son exécution bien plus rapide, certaines actions souvent utilisées pour des jeux ayant été automatisées par des routines programmées en assembleur.
== Syntaxe ==
Le langage Axe utilise l'éditeur de programmes intégré de la calculatrice, soit le même que n'importe quel programme TI-Basic, et donc aussi une partie des tokens. Ainsi, un "hello world" en Axe peut s'écrire de la même manière qu'en TI-Basic :
Disp "Hello world !"
Le langage en lui-même (l'Axe), celui défini dans l'app faisant compilateur (l'Axe Parser), propose à ce jour (avec la version 1.2.1a du compilateur) plus de 150 fonctions par défaut, allant de la simple addition à l'affichage de sprites 8*8 en passant par le réglage du contraste et l'émission de sons par le port jack.
=== Les surcharges de fonctions et les modificateurs ===
Étant donné le nombre limité de tokens, le langage devait trouver un moyen de proposer un maximum de fonctions utiles en utilisant un minimum de tokens, pour des soucis de praticité d'utilisation et surtout pour se ménager des tokens pour des fonctions futures. Première idée, les '''surcharges de fonctions''' permettent de faire varier l'effet de certaines fonctions simplement en passant un nombre différents de paramètres. Par exemple, alors que :
GetCalc("prgmABC")
... va chercher dans la mémoire de la calculatrice le programme nommé ''ABC'' et retourner 0 s'il n'est pas trouvé,
GetCalc("prgmABC",20)
... ne s'embête pas à le chercher et va tout simplement créer ou écraser un éventuel précédent programme ABC avec un homonyme de 20 octets.
Plus tard, les '''modificateurs''' vinrent optimiser encore un peu les surcharges de fonctions : c'est en général un token, parfois deux, toujours d'un seul caractère, qu'on rajoute à la fin ou au début d'une fonction pour la "nuancer", changer subtilement son effet. On peut par exemple afficher un sprite sur le back-buffer (appelé par le token L<sub>3</sub>) de la sorte :
Pt-On(X,Y,SPRITE,L<sub>3</sub>)
Les modificateurs viennent cependant réduire légèrement la source comme l'exécutable :
Pt-On(X,Y,SPRITE)<sup>r</sup>
De la même manière, la commande DispGraph change d'effet selon que l'on utilise aucun, un ou deux modificateurs :
DispGraph // copie le main buffer à l'écran
DispGraph<sup>r</sup> // copie le main buffer et le back buffer à l'écran afin de donner 3 niveaux de gris (0%,50%,100%)
DispGraph<sup>rr</sup> // comme précédemment, mais donne 4 niveaux de gris (0%,33%,66%,100%)
Dernier exemple, depuis la version 1.2.1a a été rajouté les modificateurs venant avant le nom des fonctions graphiques pour les dessiner soit en blanc, soit en logique XOR ou autre.
Line(0,0,10,20) // dessine en noir
ILine(0,0,10,20) // inverse tous les pixels de l'écran sur lesquels passe la ligne. C'est le token Line( précédé du modificateur I.
''Une liste de toutes les commandes de la version actuelle de l'Axe Parser (1.2.2a) [http://axe.eeems.ca/Commands.html est disponible ici] et sera mise à jour quand sortiront les différentes versions de l'Axe.''


== Historique des Versions ==
== Historique des Versions ==
Ligne 579 : Ligne 604 :
|
|
|
|
* Dernière version développée par Quibigo. Runer112 prendra la suite.
|-
|-
| 1.2.0
| 1.2.0
Ligne 589 : Ligne 615 :
| 1.2.1
| 1.2.1
| 17/12/2012
| 17/12/2012
|
|
|
|
|-
| 1.2.2
| 25/10/2013
|
|
|
|
Ligne 598 : Ligne 631 :
{{Langz80}}
{{Langz80}}


== Syntaxe ==
== Voir Aussi ==
Le langage Axe utilise l'éditeur de programmes intégré de la calculatrice, soit le même que n'importe quel programme TI-Basic, et donc aussi une partie des tokens. Ainsi, un "hello world" en Axe peut s'écrire de la même manière qu'en TI-Basic :
* [[Celtic III]]
Disp "Hello world !"
* [[BatLib]]
Le langage en lui-même (l'Axe), celui défini dans l'app faisant compilateur (l'Axe Parser), propose à ce jour (avec la version 1.2.1a du compilateur) plus de 150 fonctions par défaut, allant de la simple addition à l'affichage de sprites 8*8 en passant par le réglage du contraste et l'émission de sons par le port jack.
* [[Grammer]]


=== Les surcharges de fonctions et les modificateurs ===
Étant donné le nombre limité de tokens, le langage devait trouver un moyen de proposer un maximum de fonctions utiles en utilisant un minimum de tokens, pour des soucis de praticité d'utilisation et surtout pour se ménager des tokens pour des fonctions futures. Première idée, les '''surcharges de fonctions''' permettent de faire varier l'effet de certaines fonctions simplement en passant un nombre différents de paramètres. Par exemple, alors que :
GetCalc("prgmABC")
... va chercher dans la mémoire de la calculatrice le programme nommé ''ABC'' et retourner 0 s'il n'est pas trouvé,
GetCalc("prgmABC",20)
... ne s'embête pas à le chercher et va tout simplement créer ou écraser un éventuel précédent programme ABC avec un homonyme de 20 octets.


Plus tard, les '''modificateurs''' vinrent optimiser encore un peu les surcharges de fonctions : c'est en général un token, parfois deux, toujours d'un seul caractère, qu'on rajoute à la fin ou au début d'une fonction pour la "nuancer", changer subtilement son effet. On peut par exemple afficher un sprite sur le back-buffer (appelé par le token L<sub>3</sub>) de la sorte :
<references/>
Pt-On(X,Y,SPRITE,L<sub>3</sub>)
Les modificateurs viennent cependant réduire légèrement la source comme l'exécutable :
Pt-On(X,Y,SPRITE)<sup>r</sup>
De la même manière, la commande DispGraph change d'effet selon que l'on utilise aucun, un ou deux modificateurs :
DispGraph // copie le main buffer à l'écran
DispGraph<sup>r</sup> // copie le main buffer et le back buffer à l'écran afin de donner 3 niveaux de gris (0%,50%,100%)
DispGraph<sup>rr</sup> // comme précédemment, mais donne 4 niveaux de gris (0%,33%,66%,100%)
Dernier exemple, depuis la version 1.2.1a a été rajouté les modificateurs venant avant le nom des fonctions graphiques pour les dessiner soit en blanc, soit en logique XOR ou autre.
Line(0,0,10,20) // dessine en noir
ILine(0,0,10,20) // inverse tous les pixels de l'écran sur lesquels passe la ligne. C'est le token Line( précédé du modificateur I.


''Une liste de toutes les commandes de la version actuelle de l'Axe Parser (1.2.1a) [http://axe.eeems.ca/Commands.html est disponible ici] et sera mise à jour quand sortiront les différentes versions de l'Axe.''
<references/>
{{Logiciels}}
{{Logiciels}}
4

modifications

Menu de navigation