[Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?
+2
nikitouzz
matrefeytontias
6 participants
Page 1 sur 1
[Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?
Salut les gens !
Pendant une discussion sur Omnimaga avec quelques membres (notamment DrDnar et thepenguin77), on s'est demandé s'il était possible de définir des fonctions Axe dans un programme compilé en app, puis d'accéder à ces fonctions ensuite depuis un programme Axe classique ...
Et bien la réponse est oui !
[Vous devez être inscrit et connecté pour voir cette image]
Grâce à un axiom de ma conception, j'ai nommé PageSwap, et une nouvelle organisation du code (également de moi-même) inspirée des Jump Tables des shells ASM, vous pouvez maintenant utiliser une app comme une librairie (y'a qu'à voir le screenshot) !
L'axiom est un axiom tout simple qui donne accès à quatre fonctions, toutes accessibles via le menu Angle [2nd] [app].
Le principe des apps, c'est qu'elles sont dans des pages de la mémoire. C'est à dire que l'OS va naviguer d'une page à l'autre, sachant que chaque page fait 16384 octets chacune. L'intérêt des pages est qu'on peut garder des adresses sur deux octets puisque l'adresse $408B dans une page ne contient pas la même chose que $408B dans une autre page.
Il faut donc sauvegarder la page du programme courant (la RAM en fait) dans une variable pour pouvoir la restaurer plus tard, accéder à la page de votre app-librairie (c'est en fait une API), appeler ses fonctions (que vous aurez défini dans votre app évidemment, regardez la source de prgmAPI), puis quand vous en avez fini avec l'app, restaurer la page RAM.
Voici donc les codes sources des programmes du screenshot
prgmAPI : c'est l'application à laquelle on va accéder et qui contient 4 fonctions.
prgmTESTAPP : le programme qui va utiliser l'API :
Cela peut être d'une énorme utilité ! Par exemple, vous avez un programme gigantesque qui dépasse 23K (coucou Hayleia), hé bien vous pouvez mettre 16K de subroutines dans une app pour les appeler ensuite, et gagner 16K gratuits !
Faut faire attention cependant, parce que si on appelle la fonction 0, ça va sauter au label Start et ça va faire comme si on lançait l'app depuis le menu n'appelez donc les fonctions qu'à partir de 1.
Télécharger PageSwap
J'espère que ça vous sera utile
@nikitouzz tu vois, je suis tellement loin d'abandonner l'Axe que je joue les pionniers
Pendant une discussion sur Omnimaga avec quelques membres (notamment DrDnar et thepenguin77), on s'est demandé s'il était possible de définir des fonctions Axe dans un programme compilé en app, puis d'accéder à ces fonctions ensuite depuis un programme Axe classique ...
Et bien la réponse est oui !
[Vous devez être inscrit et connecté pour voir cette image]
Grâce à un axiom de ma conception, j'ai nommé PageSwap, et une nouvelle organisation du code (également de moi-même) inspirée des Jump Tables des shells ASM, vous pouvez maintenant utiliser une app comme une librairie (y'a qu'à voir le screenshot) !
L'axiom est un axiom tout simple qui donne accès à quatre fonctions, toutes accessibles via le menu Angle [2nd] [app].
Fonction | Prototype | Usage |
getCurPage Token : R>Pr( | getCurPage | Retourne la page courante |
setCurPage( Token : R>Pθ( | setCurPage(PAGE) | Définit PAGE comme page courante |
getAppPage( Token : P>Rx( | getAppPage("APP") | Renvoie la page de l'app recherchée, ou la page courante si l'app n'a pas été trouvée |
appFunc( Token : P>Ry( | appFunc(NUM) | Renvoie l'adresse de la NUMième fonction de la page courante (attention, soyez sûrs que vous êtes dans une app avant d'utiliser cette fonction !). On pourra ensuite l'appeler avec (EXP)(ARGS), n'avez qu'à voir la doc de l'Axe, section fonctions |
Le principe des apps, c'est qu'elles sont dans des pages de la mémoire. C'est à dire que l'OS va naviguer d'une page à l'autre, sachant que chaque page fait 16384 octets chacune. L'intérêt des pages est qu'on peut garder des adresses sur deux octets puisque l'adresse $408B dans une page ne contient pas la même chose que $408B dans une autre page.
Il faut donc sauvegarder la page du programme courant (la RAM en fait) dans une variable pour pouvoir la restaurer plus tard, accéder à la page de votre app-librairie (c'est en fait une API), appeler ses fonctions (que vous aurez défini dans votre app évidemment, regardez la source de prgmAPI), puis quand vous en avez fini avec l'app, restaurer la page RAM.
Voici donc les codes sources des programmes du screenshot
prgmAPI : c'est l'application à laquelle on va accéder et qui contient 4 fonctions.
- Code:
:.AppTest
:Goto Start
:Goto Func1
:Goto Func2
:Goto Func3
:Goto Func4
:
:Lbl Start ← On saute ici si on essaye de lancer l'app
:ClrHome
:Text(0,,"This app is an Axe lib
:Text(0,8,"It's not meant to be ran.
:Text(0,16,"Press any key to quit
:getKeyr
:Return
:
:Lbl Func1
:Disp r1>Dec
:Return
:
:Lbl Func2
:Text(r1,r2,r3
:Return
:
:Lbl Func3
:Pt-On(r1,r2,r3
:Return
:
:Lbl Func4
:DispGraph
prgmTESTAPP : le programme qui va utiliser l'API :
- Code:
:.APPTEST
:#Axiom(PAGESWAP)
:
:ClrHome
:
:getCurPage→P
:setCurPage(getAppPage("AppTest"))
:[3C4281818181423C→Pic1
:
:(appFunc(3))(0,16,Pic1
:(appFunc(4))(
:(appFunc(1))(42
:(appFunc(2))(0,8,"Over 9000!
:
:setCurPage(P
:getKeyr
Cela peut être d'une énorme utilité ! Par exemple, vous avez un programme gigantesque qui dépasse 23K (coucou Hayleia), hé bien vous pouvez mettre 16K de subroutines dans une app pour les appeler ensuite, et gagner 16K gratuits !
Faut faire attention cependant, parce que si on appelle la fonction 0, ça va sauter au label Start et ça va faire comme si on lançait l'app depuis le menu n'appelez donc les fonctions qu'à partir de 1.
Télécharger PageSwap
J'espère que ça vous sera utile
@nikitouzz tu vois, je suis tellement loin d'abandonner l'Axe que je joue les pionniers
matrefeytontias- Platinum 1
- Sexe :
Age : 27
Messages : 1383
Date d'inscription : 28/09/2011
Etudes : 1ère S SI
Points Forum : 90
Points Concours : 7
Langages :- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - Lua Nspire
- - Ndless Nspire
- - TI-83+.fr
- - TI-Nspire CAS
Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?
felicitations je suis jaloue que tu parle avec tout ce monde
nikitouzz- Platinum 1
- Sexe :
Age : 29
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?
Hein ? J'ai aucun programme de plus de 23K, le max que j'ai c'est 21757matrefeytontias a écrit:
Par exemple, vous avez un programme gigantesque qui dépasse 23K (coucou Hayleia), hé bien vous pouvez mettre 16K de subroutines dans une app pour les appeler ensuite, et gagner 16K gratuits !
Hayleia- Or 4
- Age : 30
Messages : 406
Date d'inscription : 03/08/2012
Points Forum : 46
Points Concours : 4
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-76.fr
- - TI-83+
- - TI-84+ SE
- - TI-Nspire CX
Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?
hayleia fais sa
tu peut augmenter la taille de ton pokemon
tu peut augmenter la taille de ton pokemon
nikitouzz- Platinum 1
- Sexe :
Age : 29
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?
Et donc rajouter un pokédex
excellente trouvaille.
Hors Sujet:
excellente trouvaille.
Hors Sujet:
- Spoiler:
- Hayleia ya juste un petit bug dans ton pokémon, quand tu attaque et que tu met KO l'adversaire, il commence le tour :/ pas normale :P
Axenntio- Or 2
- Sexe :
Age : 27
Messages : 290
Date d'inscription : 15/09/2012
Etudes : TermS
Points Forum : 0
Points Concours : 0
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic Nspire
- - Lua Nspire
- - TI-Collège
- - TI-82 Stats.fr
- - TI-83+.fr
- - TI-84+ SE
- - TI-Nspire CAS
- - TI-Nspire CX
- - Casio Collège
Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?
Voilà, c'était surtout pour ça
matrefeytontias- Platinum 1
- Sexe :
Age : 27
Messages : 1383
Date d'inscription : 28/09/2011
Etudes : 1ère S SI
Points Forum : 90
Points Concours : 7
Langages :- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - Lua Nspire
- - Ndless Nspire
- - TI-83+.fr
- - TI-Nspire CAS
Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?
Aller hop t'as plus d'excuse Hayleia
c'est vrai que c'est vraiment génial comme truc ça !
tu fout toutes les sub dans une application et comme ça tu libère de la place
c'est vrai que c'est vraiment génial comme truc ça !
tu fout toutes les sub dans une application et comme ça tu libère de la place
Axenntio- Or 2
- Sexe :
Age : 27
Messages : 290
Date d'inscription : 15/09/2012
Etudes : TermS
Points Forum : 0
Points Concours : 0
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic Nspire
- - Lua Nspire
- - TI-Collège
- - TI-82 Stats.fr
- - TI-83+.fr
- - TI-84+ SE
- - TI-Nspire CAS
- - TI-Nspire CX
- - Casio Collège
Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?
Non mais lol quoi. Déjà qu'il y avait des gens qui comprenaient pas comment l'installer, imagine avec ça. Ils comprendront pas l'utilité de l'app si on la lance jamais, du coup ils la mettront pas et se demanderont pourquoi ça marche pas.sachiix69 a écrit:hayleia fais sa
tu peut augmenter la taille de ton pokemon
C'est pas un bug. Je l'ai fait exprès parce que je trouvais injuste la manière dont le jeu original était codéAxenntio a écrit:Hayleia ya juste un petit bug dans ton pokémon, quand tu attaque et que tu met KO l'adversaire, il commence le tour :/ pas normale :P
Hayleia- Or 4
- Age : 30
Messages : 406
Date d'inscription : 03/08/2012
Points Forum : 46
Points Concours : 4
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-76.fr
- - TI-83+
- - TI-84+ SE
- - TI-Nspire CX
noelthebest- Platinum 1
- Sexe :
Age : 27
Messages : 1971
Date d'inscription : 12/03/2011
Etudes : ENS Cachan
Points Forum : 20
Points Concours : 9
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-83+.fr
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?
hayleia, comme sa tu met ton [rogramme combat dans une applim il prend 2/3 de la place
nikitouzz- Platinum 1
- Sexe :
Age : 29
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?
Je me demande si le principe est réutilisable en Grammer.
J'ai du mal a traduire là de tête, mais je demanderai à Xeda, ça peut être une bonne idée, et elle saura surement faire...
J'ai du mal a traduire là de tête, mais je demanderai à Xeda, ça peut être une bonne idée, et elle saura surement faire...
persalteas- Platinum 2
- Sexe :
Age : 29
Messages : 2068
Date d'inscription : 30/06/2010
Etudes : PACES (médecine)
Points Forum : 114
Points Concours : 10
Langages :- - TI-Basic Z80
- - xLib
- - Grammer
- - TI-Basic Nspire
- - TI-82 Stats.fr
- - TI-83
- - TI-83+
- - TI-84+ SE
- - TI-86
- - TI-Nspire
- - TI-Nspire CX
- - Casio Collège
- - Casio Graph
Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?
copieur copieur :P
mais oui il faut l'adapter
mais oui il faut l'adapter
nikitouzz- Platinum 1
- Sexe :
Age : 29
Messages : 1834
Date d'inscription : 16/01/2011
Points Forum : 7
Points Concours : 6
Langages :- - TI-Basic Z80
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - TI-Basic 68K
- - TI-Basic Nspire
- - TI-73
- - TI-76.fr
- - TI-82 Stats.fr
- - TI-83+
- - TI-84+
- - TI-92
- - TI-Nspire
- - TI-Nspire CX
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum