π
<-
Chat plein-écran
[^]

Langage de programmation TI-Z80 alternatif: KwyxTI...

Nouveautés, projets, mises à jour.

Langage de programmation TI-Z80 alternatif: KwyxTI...

Message non lude Lionel Debroux » 17 Oct 2015, 17:25

Au détour d'un topic sur Silicium, j'ai vu passer la mention d'un nouveau langage "KwyxTI". Or, je n'ai vu passer ça sur aucun des sites de la communauté active... il y a donc quelque chose à creuser :)

Une petite recherche me renvoie deux références (!): le site officiel http://kwyxti.free.fr/ et la Gazette des pocketicaires n°6... bref, ce projet, et sa description dans la gazette, ont bien été faits en isolation complète de la communauté TI active, ce qui est plus que dommage.

Le site officiel est en français, et ne décrit malheureusement pas les buts et capacités du projet. Il faut les déduire du screenshot de l'IDE en bas de la page, et de l'article de la gazette n°6, qui est globalement bien fait.

un langage de programmation pour calculatrice de la famille TI-83+, avec les caractéristiques suivantes :
- écriture du texte du programme sur un « gros » ordinateur genre PC ;
- compilateur qui génère directement un code exécutable Z80 au format compréhensible par la TI ;
- structures de programmes habituelles ;
- bibliothèque de fonctions graphiques orientées « jeu » : sprites, dessin, copie de blocs... ;
- gestion du texte sur écrans texte et graphique ;
- capture des touches clavier ;
- types supportés int et short, avec addition, soustraction et décalage de bits.
Le tout est librement téléchargeable à l'adresse suivante : http://kwyxti.free.fr.
Sont inclus :
- Un éditeur avec coloration syntaxique et liste des fonctions système disponibles avec aide intégrée ;
- La documentation ;
- 9 exemples de programmes fonctionnels démontrant les diverses capacités du langage.

Screenshot du logicielCode d'exempleScreenshot
Image
Code: Tout sélectionner
string @str1 = "Hello";
string @str2 = "World";
int val;

$start()
{
   $clearGraphBuffer();
   $drawStringGraphBufferMode();
   $enableTextInverse();
   $drawString(@str1, 46, 25);
   $disableTextInverse();
   $drawString(@str2, 65, 25);
   $drawRectangleBorder(26, 24, 44, 32);

   val = 0;
   while (val <= 150)
   {
      // on centre au milieu du rectangle
      if (val >= 100)
         $drawNumber(val, 30, 25);
      else if (val >= 10)
         $drawNumber(val, 32, 25);
      else
         $drawNumber(val, 34, 25);

      val++;
      $drawGraphBufferOnLCD();
   }
   
   $waitKey();
   $home();
}
Image

Parmi les choix faits lors de la création de son langage, Seb a privilégié la simplicité de la relation entre le code source et l'assembleur produit, et l'orientation vers les jeux et le graphisme. Ceci explique que les seules opérations mathématiques supportées sont addition et soustraction, sur short ou int (1 ou 2 octets) ! En réalité ceci, qui semble rédhibitoire, ne bride aucunement pour une utilisation non scientifique.


La syntaxe s'inspire de langages comme C et Perl (@ pour les tableaux me fait penser à Perl, en particulier). Les noms des fonctions sont préfixés par "$". Il y a quelques types de donnés étendus, comme "sprite".

Il est clair que ce genre de projets est enrichissant et formateur pour celui qui le réalise; l'intérêt pour les développeurs de la communauté me paraît moins évident face à Axe Parser, bien implanté, avec le même genre de buts et de design, qui peut être programmé sur la calculatrice aussi bien que sur l'ordinateur (où les IDEs gèrent l'indentation et les commentaires).
Mais l'effort mérite quand même d'être signalé :)

Site du projet: http://kwyxti.free.fr/
Source: Silicium.org.

Show/Hide spoilerAfficher/Masquer le spoiler
Un bémol sur l'article de la gazette: plusieurs extraits montrent une certaine méconnaissance de l'actualité "récente" de la communauté active (par qui, je l'ignore):
Parfois des années « après », on réalise quelque chose d'exceptionnel resté en gestation tout ce temps. C'est ce qui est arrivé à Seb, un ancien passionné de TI-83+ qui avait tâté de l'assembleur et toutes ces joyeusetés à l'époque où la programmation de ces calculatrices était en pleine effervescence.

(la communauté est certes moins active qu'il y a quelques années, mais elle l'était redevenue nettement, grâce à Axe Parser, justement. Et puis maintenant, la famille TI-eZ80 offre de nouvelles perspectives)

Il est bien sûr compatible avec les vrais émulateurs de la TI83+, notamment VirtualTI, ce qui fournit une solution globale de mise au point incolore de tous projets.

(ça fait bien longtemps que VTI n'est plus un émulateur de référence, il était loin d'être bon dans l'émulation de 83+, ou d'ailleurs des autres modèles; mais au moins, il y a une mention implicite du fait qu'il y a d'autres émulateurs)

KwyxTI comble le gouffre béant entre les langages faciles à utiliser et lisibles, comme le TI BASIC, mais qui sont trop lents ou n'offrent que peu d'accès au système, et l'assembleur pur et dur que seuls des spécialistes peuvent maîtriser.

(Axe n'est pas forcément très lisible, mais "gouffre béant" est juste faux à mon sens, grâce à Axe Parser)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Langage de programmation TI-Z80 alternatif: KwyxTI...

Message non lude Hayleia » 17 Oct 2015, 18:20

Lionel Debroux a écrit:(Axe n'est pas forcément très lisible, mais "gouffre béant" est juste faux à mon sens)

Un programme inoptimisé et bien écrit en Axe n'est pas plus illisible qu'un programme inoptimisé et bien écrit dans un autre langage...
Exemple :
Show/Hide spoilerAfficher/Masquer le spoiler
Excusez s'il manque de l'indentation, l'indenteur automatique ne semble pas reconnaître l'Axe...
Code: Tout sélectionner
.AA

.definitions
..keys
15→°ClearKey
01→°DownKey
02→°LeftKey
03→°RightKey
04→°UpKey
..screen
64→°ScreenHeight
96→°ScreenWidth
..others
8→°SquareSize

0→X
0→Y

While not(getKey(°ClearKey))

.check for movement
If getKey(°UpKey)
  Y--
End
If getKey(°DownKey)
  Y++
End
If getKey(°LeftKey)
  X--
End
If getKey(°RightKey)
  X++
End

.limit movement to screen
max(Y,0)^^r→Y
max(X,0)^^r→X
min(X,°ScreenWidth-°SquareSize)→X
min(Y,°ScreenHeight-°SquareSize)→Y

.draw frame
ClrDraw
Rect(X,Y,°SquareSize,°SquareSize)
DispGraph

End

Honnêtement, pour ne pas comprendre ce code, le seul moyen c'est de ne pas le lire :P

Celui qui suit en revanche fait la même chose en moins lisible, c'est vrai. Mais on peut faire la même chose avec les autres langages, ne pas aérer, utiliser des noms de variables qui ne veulent rien dire, écrire des nombres tels quels au lieu d'utiliser des define pour leur donner des noms, utiliser des algorithmes plus rapides/petits au lieu de détailler pour rester maintenable, indenter vers la gauche au lieu de la droite...
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Tout sélectionner
.AA
0→X→Y
While 1
Rect(min((X?-getKey(2))+getKey(3),88)→X,min((Y?-getKey(4))+getKey(1),56)→Y,8,)
DispGraphClrDraw
EndIf getKey(15)


Sinon, en rapport avec le sujet, c'est vrai que c'est dommage de faire quelque chose comme ça et de limite tout faire en sorte pour que personne ne le voie. Ça a quand même l'air d'un langage utilisable par tous ceux qui ont déjà fait des langages C-like, ce qui représente une bonne partie des programmeurs (pour ne pas dire "quasiment tous"). Je ne vois vraiment pas pourquoi l'auteur a fait un site aussi peu informatif et n'a diffusé son travail sur aucun des sites de programmation sur calculatrice...

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

Re: Langage de programmation TI-Z80 alternatif: KwyxTI...

Message non lude Lionel Debroux » 17 Oct 2015, 18:37

La modération de Silicium a fait une bêtise en ne choisissant pas le bon cheval en 2011+. Avec un choix différent, je ne peux pas savoir si Silicium ferait réellement partie de la communauté TI active aujourd'hui; mais le fait d'embêter des posteurs apportant de l'activité n'est jamais bon, voir la section TI-68k de yAronet en 2010, et Omnimaga en 2013-2014.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Langage de programmation TI-Z80 alternatif: KwyxTI...

Message non lude Adriweb » 17 Oct 2015, 19:13

Relativement intéressant, tout de même, mais le fait que personne ici n'en avait entendu parler.... :|

(J'ai rajouté le tableau avec code et images)
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.6%
 
Messages: 14645
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Langage de programmation TI-Z80 alternatif: KwyxTI...

Message non lude Ti64CLi++ » 18 Oct 2015, 11:16

Génial, super bien fait. ;)
Bravo
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.4%
 
Messages: 3443
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi


Retourner vers Actualités

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 5 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1050 utilisateurs:
>896 invités
>149 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)