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 » Forum Ti68K » Betas et WIPs » Le TI-BASIC comme langage de scripts (107 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 4 décembre 2004 à 15:38 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


J'ai complété cette nuit une démo montrant comment utiliser le TI-BASIC comme un langage de scripts embarqué (un peu comme le VBA pour Word) pour vos programmes ASM. Ce projet a été inspiré par Lua89, dont l'auteur parle d'utiliser Lua comme un langage de scripts, mais le langage et l'API Lua prennent autour de 90 KO! En réutilisant le langage de scripts déjà existant qu'est le TI-BASIC, vous pouvez économiser des tonnes de mémoire. Ma démo prend autour de 1 KO, donc presque 100 fois moins!

La manière dont ça fonctionne est que ma démo parasite l'application TIHOME pour installer quelques extensions TI-BASIC, qui correspondent à l'API offerte par votre programme. Elles fonctionnent comme les extensions TI-BASIC des FlashApps, mais elles font partie de votre programme en RAM, et elles sont installées seulement temporairement pendant l'exécution de votre programme et désinstallées avant de quitter. (N'essayez pas de les garder installées en quittant, ça ne marchera pas, parce que votre programme peut être déplacé en mémoire à tout moment!) J'ai aussi rajouté une fonction progrun (lancement de programmes TI-BASIC), qui est une version améliorée de celle de la FAQ de TIGCC (Je sens que je devrais mettre à jour la FAQ aussi...).

Si vous êtes intéressés par l'utilisation de ce code dans votre propre programme, dites-le moi s'il vous plaît. Je vais peut-être fignoler encore quelques trucs pour la release "officielle".

http://members.chello.at/gerhard.kofler/kevin/ti89prog/tibasext.zip
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°1   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 4 décembre 2004 à 15:47 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Voici un exemple de script:
test()
:Prgm
:Local i
:dummy()
:For i,1,3
:If hellow.hellow() Then
:Text "true"
:Else
:Text "false"
:EndIf
:EndFor
:EndPrgm

Comme vous pouvez le voir, le préfixe qualifiant hellow. est optionnel. Ce script affichera "Hello world" et puis "false", et répète le tout 3 fois.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°2   Marquer comme non lu.
limmt Ecrit le: Samedi 4 décembre 2004 à 15:53 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


je comprend pas ce que ca fait
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°3   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 4 décembre 2004 à 16:03 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Bah, ça permet aux utilisateurs de scripter ton programme. Mot-clé: embedded scripting.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°4   Marquer comme non lu.
Jfg Ecrit le: Samedi 4 décembre 2004 à 17:08 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


C'est trop marrant.
Si on boure "tibasext" de fonctions graphiques, on obtiendrait un équivalent de Vertel/Flib non ?
Kill Mario
    
./Post n°5   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 4 décembre 2004 à 17:53 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Un peu, sauf que c'est le programme en assembleur qui appelle le programme BASIC (et met à sa disposition des fonctions callback) et pas l'inverse.

Mais l'idée, c'est plutôt d'avoir par exemple un jeu, ou alors un utilitaire, scriptable par l'utilisateur.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°6   Marquer comme non lu.
Invité Ecrit le: Samedi 4 décembre 2004 à 18:47 Déconnecté(e)    
 
Mais c'est super pratique !
    
./Post n°7   Marquer comme non lu.
LionelA Ecrit le: Samedi 4 décembre 2004 à 19:08 Déconnecté(e)    Voir le profil de LionelA Envoyer un email à LionelA Visiter le site WEB de LionelA Envoyer un message privé à LionelA  


Je suis pas sûr de tout comprendre non plus, mais je trouve ça très interessant :)
En gros on fait un programme C qui lance un script en TI basic (qui est stocké avec les autres fichiers normalement) et dans ce script on peut utiliser des fonctions predefinies en C dans le programme C ? c'est bien ca ?
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°8   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 4 décembre 2004 à 20:28 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Exactement.
D'ailleurs, tu peux aussi stocker le script ailleurs, mais avoir un fichier externe par script est sans doûte le plus simple pour permettre l'édition par l'utilisateur.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°9   Marquer comme non lu.
Kevin Kofler Ecrit le: Dimanche 5 décembre 2004 à 01:32 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Encore une mise à jour:
  • progrun optimisé afin d'économiser 4 octets,
  • maintenant placé sous la licence Open Source de MIT X11, ce qui veut dire que le header et le code exemple peuvent maintenant être utilisés pratiquement sans restrictions,
  • définitions inutilisées (définitions d'ACBs de bas niveau qui ne servent pas parce qu'on hooke l'ACB existant de TIHOME plutôt que de créer un nouveau) supprimées du header,
  • des binaires du programme de démonstration sont maintenant inclus.

-Edité le Dimanche 5 décembre 2004 à 01:37 par Kevin Kofler-
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°10   Marquer comme non lu.
ExtendeD Ecrit le: Dimanche 5 décembre 2004 à 10:39 Déconnecté(e)    Voir le profil de ExtendeD Envoyer un email à ExtendeD Envoyer un message privé à ExtendeD  

Intéressant, ça pourrait permettre de faire des projets sympa :)
    
./Post n°11   Marquer comme non lu.
LionelA Ecrit le: Dimanche 5 décembre 2004 à 13:58 Déconnecté(e)    Voir le profil de LionelA Envoyer un email à LionelA Visiter le site WEB de LionelA Envoyer un message privé à LionelA  


J'ai fait quelques tests vite fait avec VTI, c'est vraiment sympa comme truc :)
Par contre j'ai pas trouvé de doc ou de readme... Mais bon, rajouter des fonctions ou des programmes n'a pas été trop difficile.

Kevin Kofler :
D'ailleurs, tu peux aussi stocker le script ailleurs, ...


Là je capte pas, on peut stocker les scripts ailleurs que dans des variables PRGM du tios ?

Edit : autre question :

Quand tu mets hellow.hellow(), le premier hellow fait référence à quoi ? et pourquoi est-il optionnel ?


-Edité le Dimanche 5 décembre 2004 à 14:17 par LionelA-
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°12   Marquer comme non lu.
Kevin Kofler Ecrit le: Dimanche 5 décembre 2004 à 16:33 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


LionelA :
Par contre j'ai pas trouvé de doc ou de readme...

Il n'y en a pas besoin, il suffit de lire le code exemple. :D

Kevin Kofler :
D'ailleurs, tu peux aussi stocker le script ailleurs, ...


Là je capte pas, on peut stocker les scripts ailleurs que dans des variables PRGM du tios ?

Bah oui, les fonctions NG_* sont flexibles sur ce point.

Edit : autre question :

Quand tu mets hellow.hellow(), le premier hellow fait référence à quoi ?

Le nom de l'"application", c'est-à-dire le premier paramètre de DEFINE_BASEXT_FRAME.

et pourquoi est-il optionnel ?

Parce que s'il n'est pas donné, AMS cherche dans toutes les applications.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°13   Marquer comme non lu.
Dari Ecrit le: Mardi 7 décembre 2004 à 11:43 Déconnecté(e)    Voir le profil de Dari Envoyer un email à Dari Visiter le site WEB de Dari Envoyer un message privé à Dari  

J'entrave que dalle à ton truc (je dois être trop neuneu?)

En fait, un programme en ASM appelle un programme en BASIC ? C'est donc l'inverse d'une bibliothèque assembleur, alors? (et je vois pas trop l'utilité, puisque BASIC == rame)?
"iPod, therefore, I am."

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

    
./Post n°14   Marquer comme non lu.
Sasume Ecrit le: Mardi 7 décembre 2004 à 13:24 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

L'utilité, c'est de faire des scripts détachés du programme ASM.
Mais c'est vrai que comme les performances du TI-BASIC sont assez mauvaises, j'ai un peu peur... Kevin, est-ce que tu as fait des tests pour mesurer la rapidité de Lua89 par rapport au TI-BASIC ?
    
./Post n°15   Marquer comme non lu.
Kevin Kofler Ecrit le: Mercredi 8 décembre 2004 à 12:20 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Non, un langage de scripts de 90 KO (!) ne m'intéresse pas, c'est trop gros!
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°16   Marquer comme non lu.
Dari Ecrit le: Mercredi 8 décembre 2004 à 13:03 Déconnecté(e)    Voir le profil de Dari Envoyer un email à Dari Visiter le site WEB de Dari Envoyer un message privé à Dari  

Donc en fait, c'est un programme ASM qui lance un programme BASIC. Et ce programme BASIC peut utiliser des fonction ASM, c'est ça ? (désolé si c'est pas ça, mais comme je connais rien à l'ASM ou au C, j'essaie de comprendre).
"iPod, therefore, I am."

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

    
./Post n°17   Marquer comme non lu.
Kevin Kofler Ecrit le: Mercredi 8 décembre 2004 à 13:14 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Plus précisément, le programme BASIC peut utiliser des fonctions ASM/C du programme ASM/C qui le lance.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°18   Marquer comme non lu.
Dari Ecrit le: Mercredi 8 décembre 2004 à 18:57 Déconnecté(e)    Voir le profil de Dari Envoyer un email à Dari Visiter le site WEB de Dari Envoyer un message privé à Dari  

Ah, merci, j'ai compris maintenant :)
"iPod, therefore, I am."

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

    
./Post n°19   Marquer comme non lu.
Kevin Kofler Ecrit le: Mercredi 8 décembre 2004 à 23:10 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Un truc qu'il faudrait préciser, mentionné à la page 50 de la documentation de TIFS:
The extensions table has an entry for each extension function or program. [...] The entries in this table must be alphabetized by the function name.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
  :: Index » Forum Ti68K » Betas et WIPs » Le TI-BASIC comme langage de scripts (107 réponse(s))
Pages : 1/6     « [1] 2 3 4 5 6 » »|

.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 53.87ms avec 19 requetes