[Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?

Voir le sujet précédent Voir le sujet suivant Aller en bas

[Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?

Message par matrefeytontias le Mar 9 Oct - 16:52

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].

FonctionPrototypeUsage
getCurPage
Token : R>Pr(
getCurPageRetourne 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 Content

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 Gni n'appelez donc les fonctions qu'à partir de 1.

Télécharger PageSwap

J'espère que ça vous sera utile Content

@nikitouzz tu vois, je suis tellement loin d'abandonner l'Axe que je joue les pionniers Gni

_________________
[Axe] [Vous devez être inscrit et connecté pour voir ce lien], aussi compatible 82 stats !

[Vous devez être inscrit et connecté pour voir ce lien]
[Vous devez être inscrit et connecté pour voir ce lien]

Spoiler:

matrefeytontias
Platinum 1
Platinum 1

Sexe : Masculin
Age : 19
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
Calculatrices :
  • - TI-83+.fr
  • - TI-Nspire CAS

TI-83+.fr


Revenir en haut Aller en bas

Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?

Message par nikitouzz le Mar 9 Oct - 17:22

Clin Oeil felicitations Content je suis jaloue que tu parle avec tout ce monde Langue

_________________
[Vous devez être inscrit et connecté pour voir cette image]
Invité née le 0 a aujord'huis 0 ans et a posté 11 messages... je suis derrière vous

2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

3x3x1 : 0.73secondes / 3x3x2 : 30.55secondes / 3x3x3 : 5.97secondes / 3x3x4 : 1.09minutes / 3x3x5 : 1.46minutes / 3x3x6 : 2.06minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07

nikitouzz
Platinum 1
Platinum 1

Sexe : Masculin
Age : 21
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
Calculatrices :
  • - TI-73
  • - TI-76.fr
  • - TI-82 Stats.fr
  • - TI-83+
  • - TI-84+
  • - TI-92
  • - TI-Nspire
  • - TI-Nspire CX

TI-84+ SE


Revenir en haut Aller en bas

Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?

Message par Hayleia le Mar 9 Oct - 17:41

matrefeytontias 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 !
Hein ? J'ai aucun programme de plus de 23K, le max que j'ai c'est 21757 Confus

Hayleia
Or 4
Or 4

Age : 22
Messages : 406
Date d'inscription : 03/08/2012
Points Forum : 45
Points Concours : 4
Langages :
  • - TI-Basic Z80
  • - Axe Parser
Calculatrices :
  • - TI-76.fr
  • - TI-83+
  • - TI-84+ SE
  • - TI-Nspire CX

TI-84+ SE


Revenir en haut Aller en bas

Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?

Message par nikitouzz le Mar 9 Oct - 17:43

hayleia fais sa Content

tu peut augmenter la taille de ton pokemon Content

_________________
[Vous devez être inscrit et connecté pour voir cette image]
Invité née le 0 a aujord'huis 0 ans et a posté 11 messages... je suis derrière vous

2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

3x3x1 : 0.73secondes / 3x3x2 : 30.55secondes / 3x3x3 : 5.97secondes / 3x3x4 : 1.09minutes / 3x3x5 : 1.46minutes / 3x3x6 : 2.06minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07

nikitouzz
Platinum 1
Platinum 1

Sexe : Masculin
Age : 21
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
Calculatrices :
  • - TI-73
  • - TI-76.fr
  • - TI-82 Stats.fr
  • - TI-83+
  • - TI-84+
  • - TI-92
  • - TI-Nspire
  • - TI-Nspire CX

TI-84+ SE


Revenir en haut Aller en bas

Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?

Message par Axenntio le Mar 9 Oct - 18:04

Et donc rajouter un pokédex Clin Oeil
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
Or 2

Sexe : Masculin
Age : 19
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
Calculatrices :
  • - TI-Collège
  • - TI-82 Stats.fr
  • - TI-83+.fr
  • - TI-84+ SE
  • - TI-Nspire CAS
  • - TI-Nspire CX
  • - Casio Collège

TI-84+


Revenir en haut Aller en bas

Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?

Message par matrefeytontias le Mar 9 Oct - 18:20

Voilà, c'était surtout pour ça Gni

_________________
[Axe] [Vous devez être inscrit et connecté pour voir ce lien], aussi compatible 82 stats !

[Vous devez être inscrit et connecté pour voir ce lien]
[Vous devez être inscrit et connecté pour voir ce lien]

Spoiler:

matrefeytontias
Platinum 1
Platinum 1

Sexe : Masculin
Age : 19
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
Calculatrices :
  • - TI-83+.fr
  • - TI-Nspire CAS

TI-83+.fr


Revenir en haut Aller en bas

Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?

Message par Axenntio le Mar 9 Oct - 18:25

Aller hop t'as plus d'excuse Hayleia Clin Oeil
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 Clin Oeil

Axenntio
Or 2
Or 2

Sexe : Masculin
Age : 19
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
Calculatrices :
  • - TI-Collège
  • - TI-82 Stats.fr
  • - TI-83+.fr
  • - TI-84+ SE
  • - TI-Nspire CAS
  • - TI-Nspire CX
  • - Casio Collège

TI-84+


Revenir en haut Aller en bas

Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?

Message par Hayleia le Mer 10 Oct - 5:20

sachiix69 a écrit:hayleia fais sa Content

tu peut augmenter la taille de ton pokemon Content
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.

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
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é Clin Oeil

Hayleia
Or 4
Or 4

Age : 22
Messages : 406
Date d'inscription : 03/08/2012
Points Forum : 45
Points Concours : 4
Langages :
  • - TI-Basic Z80
  • - Axe Parser
Calculatrices :
  • - TI-76.fr
  • - TI-83+
  • - TI-84+ SE
  • - TI-Nspire CX

TI-84+ SE


Revenir en haut Aller en bas

Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?

Message par noelthebest le Mer 10 Oct - 10:26

C'est super ça ! Ok

_________________
[Vous devez être inscrit et connecté pour voir cette image]

[Vous devez être inscrit et connecté pour voir cette image]
[Vous devez être inscrit et connecté pour voir cette image]

noelthebest
Platinum 1
Platinum 1

Sexe : Masculin
Age : 19
Messages : 1969
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
Calculatrices :
  • - TI-83+.fr
  • - TI-Nspire CX
  • - Casio Collège
  • - Casio Graph

TI-84+ SE


Revenir en haut Aller en bas

Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?

Message par nikitouzz le Mer 10 Oct - 11:06

hayleia, comme sa tu met ton [rogramme combat dans une applim il prend 2/3 de la place ^^

_________________
[Vous devez être inscrit et connecté pour voir cette image]
Invité née le 0 a aujord'huis 0 ans et a posté 11 messages... je suis derrière vous

2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

3x3x1 : 0.73secondes / 3x3x2 : 30.55secondes / 3x3x3 : 5.97secondes / 3x3x4 : 1.09minutes / 3x3x5 : 1.46minutes / 3x3x6 : 2.06minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07

nikitouzz
Platinum 1
Platinum 1

Sexe : Masculin
Age : 21
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
Calculatrices :
  • - TI-73
  • - TI-76.fr
  • - TI-82 Stats.fr
  • - TI-83+
  • - TI-84+
  • - TI-92
  • - TI-Nspire
  • - TI-Nspire CX

TI-84+ SE


Revenir en haut Aller en bas

Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?

Message par persalteas le Mer 10 Oct - 12:54

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...

_________________
[Vous devez être inscrit et connecté pour voir cette image]

persalteas
Platinum 2
Platinum 2

Sexe : Masculin
Age : 21
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
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-83
  • - TI-83+
  • - TI-84+ SE
  • - TI-86
  • - TI-Nspire
  • - TI-Nspire CX
  • - Casio Collège
  • - Casio Graph

TI-84 Pocket.fr


http://tiemulation.kegtux.org

Revenir en haut Aller en bas

Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?

Message par nikitouzz le Mer 10 Oct - 17:25

copieur copieur :P

mais oui il faut l'adapter Content

_________________
[Vous devez être inscrit et connecté pour voir cette image]
Invité née le 0 a aujord'huis 0 ans et a posté 11 messages... je suis derrière vous

2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

3x3x1 : 0.73secondes / 3x3x2 : 30.55secondes / 3x3x3 : 5.97secondes / 3x3x4 : 1.09minutes / 3x3x5 : 1.46minutes / 3x3x6 : 2.06minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07

nikitouzz
Platinum 1
Platinum 1

Sexe : Masculin
Age : 21
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
Calculatrices :
  • - TI-73
  • - TI-76.fr
  • - TI-82 Stats.fr
  • - TI-83+
  • - TI-84+
  • - TI-92
  • - TI-Nspire
  • - TI-Nspire CX

TI-84+ SE


Revenir en haut Aller en bas

Re: [Axe] Nouvelle manière de définir des subroutines : pourquoi pas en app ?

Message par Contenu sponsorisé Aujourd'hui à 15:39


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum