Espace TI: Forum
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
Nike : Jusqu’à 50% sur les articles de ...
Voir le deal

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

+2
nikitouzz
matrefeytontias
6 participants

Aller en bas

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

Message par matrefeytontias 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
matrefeytontias
matrefeytontias
Platinum 1
Platinum 1

Sexe : Masculin
Age : 26
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

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

Message par nikitouzz Mar 9 Oct - 17:22

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

Sexe : Masculin
Age : 28
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

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

Message par Hayleia 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
Hayleia
Or 4
Or 4

Age : 30
Messages : 406
Date d'inscription : 03/08/2012
Points Forum : 46
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

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

Message par nikitouzz Mar 9 Oct - 17:43

hayleia fais sa Content

tu peut augmenter la taille de ton pokemon Content
nikitouzz
nikitouzz
Platinum 1
Platinum 1

Sexe : Masculin
Age : 28
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

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

Message par Axenntio Mar 9 Oct - 18:04

Et donc rajouter un pokédex Clin Oeil
excellente trouvaille.

Hors Sujet:
Spoiler:
Axenntio
Axenntio
Or 2
Or 2

Sexe : Masculin
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
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

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

Message par matrefeytontias Mar 9 Oct - 18:20

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

Sexe : Masculin
Age : 26
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

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

Message par Axenntio 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
Axenntio
Or 2
Or 2

Sexe : Masculin
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
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

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

Message par Hayleia 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
Hayleia
Or 4
Or 4

Age : 30
Messages : 406
Date d'inscription : 03/08/2012
Points Forum : 46
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

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

Message par noelthebest Mer 10 Oct - 10:26

C'est super ça ! Ok
noelthebest
noelthebest
Platinum 1
Platinum 1

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

TI-84+ SE


Revenir en haut Aller en bas

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

Message par nikitouzz Mer 10 Oct - 11:06

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

Sexe : Masculin
Age : 28
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

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

Message par persalteas 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...
persalteas
persalteas
Platinum 2
Platinum 2

Sexe : Masculin
Age : 28
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

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

Message par nikitouzz Mer 10 Oct - 17:25

copieur copieur :P

mais oui il faut l'adapter Content
nikitouzz
nikitouzz
Platinum 1
Platinum 1

Sexe : Masculin
Age : 28
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

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

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


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