Page 1 of 14

[TOPO]Langage Script TI OS 3.0 - enfin un langage API ?

PostPosted: 12 Apr 2011, 23:53
by Levak


EDIT : Pour accéder à la documentation présente dans ce topic rapidement, veuillez suivre ce lien :
http://wiki.inspired-lua.org/Main_Page




Bonsoir tout le monde,
Je crée ce topic pour mettre un peu tout et n'importe quoi que j'ai compris du nouveau (ou caché) langage script que l'OS 3.0 fait émerger avec le Tableau Périodique.
http://tibank.forumactif.com/t6858p15-u ... ec-l-os-30

Une fois donc le fichier Problem1.xml extrait, on remarque que la syntaxe est exactement la même que décrite ici :
http://tibank.forumactif.com/t4905-tuto ... ichier-tns

A un détail près : L'application s'appelle TI.ScriptApp.
La ligne servant à l’appeler est donc :
Code: Select all
wdgt xmlns:sc="urn:TI.ScriptApp" type="TI.ScriptApp" ver="1.0" /wdgt


Entre les balises on retrouve un langage script orienté objet tout en corrélation avec l'OS, une sorte d'API très évoluée.

Un aperçu :

a = 1
b = 2 -- ceci est un commentaire

-- L'intervention de l'API
beta = string.uchar(0x3b2) -- Symbole Beta

-- Structure d'une fonction
function toto(maman)
return maman+1
end

-- Fonctions anonymes
function tataSuper(papa)
return function(papa) return papa + 2 end
end

Table = {
{i = 1, j = 2, papa = "Adam", maman = "Eve"},
{i = 2, j = 1, papa = "Ivan", maman = "Eude"}
}

function fact(x)
if x == 1
return 1
else
return fact(x-1) * x
end
end

function StockerUnNombreDansLeClasseur(varname, value)
math.eval("Unlock " .. varname) -- Concaténation de chaines avec ..
var.store(varname, value)
math.eval("Lock " .. varname) -- Remarquez que math.eval() expr()
end

---------------- L'intervention de l'objet+API

-- On va faire une classe abstraite et une classe héritée de celle-ci
Humain = class()

function Humain:faireLaCuisine(ingredients)
-- Définie plus tard
end

function Humain:manger(gc) -- gc = Graphic Component
-- Définie plus tard
end

Homme = class(Humain) -- Classe héritée de Humain

function Homme:faireLaCuisine(ingredient)
return ingredient[1]; -- Base 1
end

function Homme:mange(gc)
x = 1
y = 2
w = 5
h = 5
gc:setFont("sansserif", "r", self.titleFontSize)
gc:setColorRGB( .... ) -- unknown color format
gc:setPen("medium", "smooth")
gc:drawRect(selft.x, selft.y, selft.w, selft.h)
end

--- etc ...



Remarque de dernier minute ... le langage est en fait ....

accrochez vous bien ...


du LUA !!

En fait, c'est en voulant montrer un exemple de boucle for que j'ai essayé de comprendre les commandes pairs() et ipairs() que je n'avais jamais vue.
Un coup de google m'a redirigé vers des docs de LUA ...
En fouinant un peu, j'ai constaté que c'est exactement la même syntaxe.
Donc à vos bouquins de Lua...

Voilà la page qui expliquait pairs() et ipairs() pour les impatients :
http://www.wellho.net/resources/ex.php4?item=u105/tat

:#top#:

Re: [TOPO]Langage Script TI OS 3.0 - enfin un langage API ?

PostPosted: 13 Apr 2011, 00:13
by Adriweb
Excellent post !

Super cette nouvelle que ce soit en fait du lua, c'est super facile à apprendre et ca peut se rendre utile ...

Serai-t il possible de réécrire la mémoire directement sur la TI afin de pouvoir éxécuter son propre TIscript en lua ?

Re: [TOPO]Langage Script TI OS 3.0 - enfin un langage API ?

PostPosted: 13 Apr 2011, 02:56
by critor
La première news au monde sur le nouveau langage de développement pour TI-Nspire, c'est encore une fois sur TI-Bank! :#top#:
http://tiplanet.org/index.php?mod=ne ... resid=1042

PS: vous inquiétez pas, je dormirai dans le train pendant 4 heures demain... l'important était que TI-Bank soit premier sur cette info! - si il y a des erreurs ou de nouvelles infos, n'hésitez pas à éditer en mon absence!

Re: [TOPO]Langage Script TI OS 3.0 - enfin un langage API ?

PostPosted: 13 Apr 2011, 06:02
by Lionel Debroux
Super !

Re: [TOPO]Langage Script TI OS 3.0 - enfin un langage API ?

PostPosted: 13 Apr 2011, 07:47
by Lionel Debroux
Apparemment, Goplat utilise avec succès du Lua sur Nspire :):
http://www.omnimaga.org/index.php?topic ... #msg143225

Re: [TOPO]Langage Script TI OS 3.0 - enfin un langage API ?

PostPosted: 13 Apr 2011, 12:37
by Levak
Il a fait le hack dans un sens, et il l'a refait dans l'autre.
Goplat a utilisé son émulateur pour faire des opérations en mémoire avec l'OS lancé. Il a pu récupérer le fichier dans un sens. Du coup, il peut le faire dans l'autre sens =).

Laissons-lui le temps de documenter tout ça.

Re: [TOPO]Langage Script TI OS 3.0 - enfin un langage API ?

PostPosted: 13 Apr 2011, 12:42
by Lionel Debroux
Il a encore dû aller fouiller assez profondément dans l'OS :):
Le TNS du jeu est composé d'une partie qui m'est inconnue au début, mais plus bas, il y a clairement un fichier ZIP: PKx03x04 à  l'offset 0x170 (contenant le code Lua), une liste de fichiers (PKx01x02) à  l'offset 0x575, et un footer de ZIP (PKx05x06) à  l'offset 0x5D3.

EDIT: dans la news, Mic, plus que "plus besoin de Ndless" qui peut être ambigu, j'indiquerais qu'il y a maintenant un autre langage de programmation plus facile d'accès qu'ASM/C/C++, et plus puissant que le BASIC. Mais Ndless ou similaire, pour ASM/C/C++, restera clairement un besoin pour des opérations bas niveau :):
Et peut-être est-il encore trop tà´t pour affirmer que le Lua Nspire est véritablement maîtrisé ? A mon sens, il ne le deviendrait réellement qu'avec un éditeur on-PC et une forme d'éditeur on-calc :):

Re: [TOPO]Langage Script TI OS 3.0 - enfin un langage API ?

PostPosted: 13 Apr 2011, 12:58
by Adriweb
J'avais pensé de ma part a simplement créer un Problem1.xml avec le nouveau tag TiScriptApp ainsi que le code lua, et le zipper puis renommer en .tns comme si tout était comme avant, en version 1.1 par exemple.

Ca marcherait, non ? Normalement, la nspire peut lire les anciens fichiers .tns, donc ca devrait passer puisquon fait tout à la main?

Re: [TOPO]Langage Script TI OS 3.0 - enfin un langage API ?

PostPosted: 13 Apr 2011, 12:59
by Levak
A ... pas con. Tu as essayé ?

Faut pas oublier le Document.xml dans le zip

Re: [TOPO]Langage Script TI OS 3.0 - enfin un langage API ?

PostPosted: 13 Apr 2011, 13:03
by Adriweb
Levak wrote:A ... pas con. Tu as essayé ?

Faut pas oublier le Document.xml dans le zip


Il était 1h30 hier (enfin, ce matin du coup...) donc non je n'ai pas essayé, et je suis en cours d'info maintenant, et je ne peux rien faire .... :/

Mais bon, testez de votre part si vous avez le temps, mais je ne manquerais pas de faire quelques tests des que je rentre chez moi :)