π
<-

[ASM83] CP83P : compilateur Ti-Basic -> assembleur

Assembleur, Axe, C/C++, ICE...

[ASM83] CP83P : compilateur Ti-Basic -> assembleur

Unread postby Epharius » 01 Apr 2015, 14:47

Bonjour à tous !

Aujourd'hui, je poste le programme le moins utile de l'année : le compilateur Ti-Basic ! Mais pourquoi inutile me diriez-vous ? La raison est simple : après des dizaines voir cinquantaines d'heures passé sur ce programme, je me rend compte que ça ne va qu'un petit chouilla plus vite que le ti-basic. Ce n'est vraiment pas transcendant.
Mais bon, vu le mal que je me suis donné, je me suis dit que ce serait quand même sympa de partager mon programme.

Utilisation
Donc, c'est un compilateur ti-basic, créez un programme en l'appelant BASIC. Puis, exécutez la commande send(9prgmZCOMPIL : sortira un programme appelé FINAL qui s'exécute aussi avec la commande send(9prgmFINAL (NOTE : send, sur une ti-82 stats.fr s'appelle Envoi)
Tout est très facile donc. Mais bien entendu, tous les tokens ne sont pas supportés. Voici la liste de ceux que le compilateur prend en compte (les autres seront ignorés) :

  • ClrHome
  • Input
  • Prompt
  • Pause
  • Lbl et Goto
  • If
  • Repeat et While
  • la flèche sto
  • Disp
  • Return
Ne sont pas supportés les tokens pour la graphisme (Line, Pxl-[...], etc), le token getKey, et tous les autres que je n'ai pas cité bien sûr.


Précisions
Quelques précisions sont nécessaires :

  • La syntaxe de If est dans tous les cas If [...] End Si vous ne mettez pas le End vous aurez un bug. De plus, le Then n'est pas nécessaire (ignoré dans tous les cas)
  • Les erreurs n'ont pas été mises en place ! Si vous ne mettez pas de End à la fin d'un If par exemple, vous n'aurez pas de Ram Cleared, mais la calculatrice va tourner pendant quelques secondes voir dans les cas plus graves quelques minutes.
  • Le Disp doit impérativement ne pas être à la toute fin du programme : en effet, il attend un retour à la ligne pour savoir quand s'arrêter. Si vous voulez qu'il soit à la fin, rajoutez :f105:
  • Le programme ne supporte pas les chaines de caractères ni tout autre variable n'étant pas une variable A-Z+THETA. Je n'ai pas essayé mais vous aurez surement le droit à un gros bug en exécutant prgmFINAL (ça ne posera pas de problème dans prgmZCOMPIL)
  • Comme dit précédemment, vous ne pouvez pas faire getKey->K, ça provoquera une erreur dans la calculatrice (ERR : ARGUMENT ou quelque chose comme ça, rien de grave)
  • La syntaxe de l'Input et du prompt est Input X, pas de texte avant ! Risque de création de création d'une variable bizarre (j'ai eu un moment la variable + qui est apparue :p)
  • Le Disp ne prend en compte que les Nombres, les Lettres et l'espace ! Le risque est petit : vous aurez juste le droit à des signes bizarres au lieu du caractère demandé


Programme & ScreenShot
Voici un petit aperçu du programme "PLUS OU MOINS" qu'on pourrait faire en basic :
ZCOMPIL.gif


Et voici le lien pour le télécharger (SOURCE + PROGRAMME + SCREENSHOT) : archives_voir.php?id=181469


Voilà, n'hésitez pas à m'avertir si vous rencontrez un bug ! ;)
You do not have the required permissions to view the files attached to this post.
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.7%
 
Posts: 1172
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: [ASM83] CP83P : compilateur Ti-Basic -> assembleur

Unread postby Wistaro » 05 Jul 2015, 11:19

Sympa :)

Beau travail ^^
Nouveau sur le site, ClaudeBot [spider] ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
User avatar
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 88.5%
 
Posts: 3188
Images: 37
Joined: 25 Feb 2013, 16:21
Location: Toulouse
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingénieur en électronique
YouTube: Wistaro
Twitter: Wistaro
GitHub: Wistaro

Re: [ASM83] CP83P : compilateur Ti-Basic -> assembleur

Unread postby Epharius » 05 Jul 2015, 12:59

Beau travail qui est malheureusement pas très utile :p

Mais j'ai une grande nouvelle, je compte enlever le support des variables (A-Z) pour les remplacer par des registres (AF, HL, etc) ! Du coup je pense pourvoir multiplier par 1.5 la vitesse d'exécution du programme ;)

M'enfin ce n'est pas pour tout de suite vu que j'ai changé de calculatrice...
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.7%
 
Posts: 1172
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: [ASM83] CP83P : compilateur Ti-Basic -> as-tsembleur

Unread postby Ti64CLi++ » 07 Oct 2015, 13:45

Pourrais-tu me donner le fichier include ('ti83.inc') stp?
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: [ASM83] CP83P : compilateur Ti-Basic -> assembleur

Unread postby Ti64CLi++ » 13 Feb 2016, 15:37

Juste une précision, tu n'as pas dis qu'il supportait le token randInt(. L'as-tu oublié?
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: [ASM83] CP83P : compilateur Ti-Basic -> assembleur

Unread postby Epharius » 13 Feb 2016, 15:42

Alors oui mais non :p
Le fonctionnement de ASM83P a un point faible (concernant la vitesse) qui devient un point fort si on veut supporter le plus de fonctions possibles. En fait, c'est tout simplement que pour calculer une expression, le programme utilise les fonctions (Y1 etc). Donc oui, il pourra supporter pas mal de fonction mais ce sera ralenti par rapport à si j'avais fait ma routine de calcul moi même. D'ailleurs, les fonctions Abs() etc sont "supportées" si tu essaies ;)

Je compte refaire ce programme pour Ti-83PCE, et j'essaierai de résoudre ces problèmes de vitesse.
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.7%
 
Posts: 1172
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: [ASM83] CP83P : compilateur Ti-Basic -> assembleur

Unread postby Ti64CLi++ » 13 Feb 2016, 15:57

Donc la fonction randInt est supportée?
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: [ASM83] CP83P : compilateur Ti-Basic -> assembleur

Unread postby Epharius » 13 Feb 2016, 15:58

Ben, oui, comme je l'ai dit plus haut :p
Ainsi que abs, fpart, round et toutes les fonctions que tu peux utiliser dans Y1
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.7%
 
Posts: 1172
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: [ASM83] CP83P : compilateur Ti-Basic -> assembleur

Unread postby Ti64CLi++ » 13 Feb 2016, 15:59

Ok, merci beaucoup de ton aide
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi


Return to Langages alternatifs

Who is online

Users browsing this forum: ClaudeBot [spider] and 1 guest

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
960 utilisateurs:
>924 invités
>27 membres
>9 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)