Espace TI: Forum
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-17%
Le deal à ne pas rater :
Casque de réalité virtuelle Meta Quest 2 128 Go Blanc (+29,99€ ...
249.99 € 299.99 €
Voir le deal

[AXE] axioms

2 participants

Aller en bas

[AXE] axioms Empty [AXE] axioms

Message par matrefeytontias Dim 1 Juil - 17:53

C'est très facile, mais ça se fait uniquement en ASM.

Créez un fichier axiom.z80 (le mieux étant d'utiliser Mimas), puis faites-le commencer (outre les includes) par :
Code:
.dw $C0DE
Ensuite il va falloir plusieurs champs :

  • La taille de la routine
  • La compatibilité avec les shells
  • Le token correspondant à ta commande
  • Le type de commande (normal, avec un ou deux r, prenant un pointeur ...)
  • Le nombre d'arguments
  • Code:
    rorg 0
  • Et enfin ta routine


Maintenant j'explique tout :

On a donc en premier le .dw $C0DE, puis viens la taille. Plutôt que de compter, on va mettre un label qu'on définira plus tard.
Code:
.dw $C0DE

.dw CmdEnd
Ensuite viens la compatibilité des shells : c'est un nombre d'un octet dont les bits vont définir les shells avec lesquels ta commande est compatible :

  • Bit 0 : noshell
  • Bit 1 : Ion
  • Bit 2 : MirageOS
  • Bit 3 : DoorsCS
  • Bit 4 : App
  • Bit 5 : Axe Fusion
Si tu veux que ta commande soit compatible partout, active tous les bits.
Code:
.dw $C0DE
.dw CmdEnd
.db %00100111 ; compatible Axe fusion, Mirage, Ion et Noshell

Viens ensuite le token à trouver pour lancer la commande. Ils sont tous définis dans ton fichier include.
Code:
.dw $C0DE
.dw CmdEnd
.db %00100111
.dw 5,0 ; token BoxPlot

Après, le type de la commande :

  • Bit 0 : sous-routine (impossible à appeler dans un programme par un token, uniquement depuis une commande ASM)
  • Bit 1 : requiert un petit r
  • Bit 2 : requiert deux petits r
  • Bit 3 : Nécessite un argument passé avant une ->
  • Bit 4 : prend un pointeur en argument
Laisse 0 ici si c'est une routine normale.
Code:
.dw $C0DE
.dw CmdEnd
.db %00100111
.dw 5,0
.dw %00000100 ; nécessite deux r
Ensuite, facile, le nombre d'arguments, entre 0 et 6, puis après le rorg 0, ta routine !
Code:
.dw $C0DE
.dw CmdEnd
.db %00100111
.dw 5,0
.db %00000100
.db 2 ; 2 arguments, le dernier est dans HL, et les précédents poussés sur la pile dans leur ordre d'apparition
rorg 0
; ici une routine qui met deux valeurs passées en arguments dans les variables Axe A et B
 ld (Axv_B),HL
 pop HL
 ld (Axv_A),HL
 ; ces valeurs sont dans Axe.inc, dans le dossier Developers de l'Axe
 ret ; toujours finir par ret
CmdEnd: ; le fameux label renseignant la taille de la routine

Maintenant, le token hook : on cherche un token par son numéro et on change son texte à l'affichage.

C'est pas compliqué, on a juste besoin du numéro du token multiplié par 2 (2 octets, tu peux trouver tous les codes des tokens dans tokenHook.inc, même dossier), la taille du texte de remplacement (1 octet) et le texte lui-même, à ne PAS terminer par 0.
Code:
.dw 10,0 ; le token BoxPlot *2
.db 6
.db "StoAB("

Tu peux définir jusqu'à 32 commandes dans un seul Axiom et utiliser jusqu'à 5 Axioms dans un seul programme, mais le token hook doit TOUJOURS venir à la fin !

Pour l'utiliser, compile-le comme un programme ASM normal, envoie-le sur calto et utilise #Axiom(AXIOM) dans ton programme Axe et compile-le une fois pour voir ton token hook [Vous devez être inscrit et connecté pour voir cette image]

Si quelqu'un a des questions -> faites un topic ^^


Dernière édition par matrefeytontias le Dim 1 Juil - 20:33, édité 1 fois
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] axioms Empty Re: [AXE] axioms

Message par nikitouzz Dim 1 Juil - 18:26

super je testerais mais plusieurs chose ne me semble pas clair ^^

merci bien 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] axioms Empty Re: [AXE] axioms

Message par matrefeytontias Dim 1 Juil - 20:34

Si c'est pas clair, 'faut demander Ok
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] axioms Empty Re: [AXE] axioms

Message par nikitouzz Lun 2 Juil - 11:20

"Laisse 0 ici si c'est une routine normale." qu'apelle tu par routine normal ?

et comment on change le nom du token ?
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] axioms Empty Re: [AXE] axioms

Message par matrefeytontias Lun 2 Juil - 11:24

Une routine "normale", c'est une routine sans r ni rien, une routine comme ClrDraw ou Pt-On().

"Changer le nom du token" → faire du token hook. Si t'avais lu jusqu'au bout t'aurai vu que c'est expliqué -_-'
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] axioms Empty Re: [AXE] axioms

Message par nikitouzz Lun 2 Juil - 11:40

:O a oui effectivement ^^ pardon je n'avais pas vu ^^

ps : runer112 a fait une routine plus rapide que clrdrawn ^^

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] axioms Empty Re: [AXE] axioms

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