π
<-

Les questions de Ti64CLi++ en C

C, C++, ASM...

Les questions de Ti64CLi++ en C

Unread postby Ti64CLi++ » 17 Sep 2017, 23:34

Bonjour,
J'aimerais savoir comment utiliser quelque function en C, telle que show_dialog_box2.
Quels sont les parametres a donner a cette function?

Ou encore comment utiliser void gui_gc_drawLine(Gc p1, int p2, int p3, int p4, int p5)?
A quoi corresponde Gc p1, p2, p3, p4, p5?

Merci de votre attention
J'attends votre reponse avec impatience :D
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: Les questions de Ti64CLi++ en C

Unread postby Lionel Debroux » 18 Sep 2017, 06:03

Quels sont les parametres a donner a cette function?

Regarde par exemple _show_msgbox :)

Ou encore comment utiliser void gui_gc_drawLine(Gc p1, int p2, int p3, int p4, int p5)?
A quoi corresponde Gc p1, p2, p3, p4, p5?

Le premier est le contexte de dessin... et pour les autres, comment une ligne est-elle définie ? ;)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.4%
 
Posts: 6873
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Les questions de Ti64CLi++ en C

Unread postby Adriweb » 18 Sep 2017, 07:59

Tout simplement, la doc sur hackspire, via Google...
https://hackspire.org/index.php/Syscall ... ontext_API

C'est en Deprecated par contre, donc utilise à tes risques et périls.

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14839
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Les questions de Ti64CLi++ en C

Unread postby Ti64CLi++ » 18 Sep 2017, 13:51

Bon desole je me suis mal exprime. En gros je suis en train d essaye les syscalls en asm et je ne sais ce qu il faut mettre dans r0 pour le parametre gc
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: Les questions de Ti64CLi++ en C

Unread postby Ti64CLi++ » 18 Sep 2017, 13:59

Et pour cela j utilise donc le fichier syscall-list de ndless pour utiliser les nombres correspondant. Et aussi la valeur de retour de ces fonctions est stocke dans quel registre?
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: Les questions de Ti64CLi++ en C

Unread postby Lionel Debroux » 18 Sep 2017, 21:15

As-tu essayé d'écrire le code en C/C++ et de désassembler le code généré ?
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.4%
 
Posts: 6873
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Les questions de Ti64CLi++ en C

Unread postby Ti64CLi++ » 18 Sep 2017, 21:20

Non, car je n'ais pas de compilateur pour ARM :(
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: Les questions de Ti64CLi++ en C

Unread postby Ti64CLi++ » 19 Sep 2017, 22:33

Bon, je reformule.

Mon but principal est de savoir ou sont renvoyees les valeurs retournees par un syscall.
Par exemple, si j'utilise le syscall #define e_gui_gc_global_GC_ptr 298, ou est stockee la valeur de retour? Dans quell register? Ou alors dans le stack?

Deuxieme question, comment push et pop des valeurs dans le stack? stmfd sp!, {...} et ldmfd sp!, {...}?

Troiseme question, avec un syscall graphique, il y a un parameter Gc p1, quelle valeur dois-je donner a ce parameter, je sais que c'est le context graphique, mais quelle est cette valeur? La valeur de retour de e_gui_gc_global_GC_ptr?

Quatrieme question, comment est-ce que j'utilise les syscalls
Code: Select all
#define e_show_dialog_box2_ 30 // void show_dialog_box2_(int p1, const char *p2, const char *p3, const char **p4)
#define e__show_msgbox_2b 93 // int _show_msgbox_2b(int p1, const char *p2, const char *p3, const char *p4, int p5, const char *p6, int p7, const char **p8)
#define e__show_msgbox_3b 94 // int _show_msgbox_3b(int p1, const char *p2, const char *p3, const char *p4, int p5, const char *p6, int p7, const char *p8, int p9, const char **p10)

Quels sont les arguments? Comment je fais un pointeur de pointeur en ASM, parce que je sais recuperer une adresse dans un register a l'aide de ADR reg, label mais pas faire de pointeur de pointeur comme const char **p10?

Voila, ce sera tout pour cette fois.
J'attends vos reponses
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: Les questions de Ti64CLi++ en C

Unread postby Lionel Debroux » 19 Sep 2017, 22:47

Par exemple, si j'utilise le syscall #define e_gui_gc_global_GC_ptr 298, ou est stockee la valeur de retour? Dans quell register? Ou alors dans le stack?

La convention d'appel traditionnelle sur ARM est de retourner les valeurs de type simples, pointeur ou scalaire, dans r0.

Deuxieme question, comment push et pop des valeurs dans le stack? stmfd sp!, {...} et ldmfd sp!, {...}?

Ca, ce sont les store et load multiples de registres. C'est utile notamment en début et fin de fonction pour sauvegarder et restaurer les registres que tu utilises temporairement dans tes fonctions mais que la convention d'appel habituelle sur ARM t'interdit de retourner à l'appelant en ayant détruit les valeurs contenues dans ces registres. Tu dois ainsi sauvegarder (presque ?) tous les registres de r4 à r12 si tu les modifies (sinon ça ne sert à rien, bien sûr).
Pour les valeurs simples qui tiennent dans un registre, strb/strh/str et ldrb/ldrh/ldr (qui diffèrent par la taille des données transférées, respectivement 1, 2 et 4) ont des modes d'adressage à déplacement, postincrémentées (opérande [sp, #-4]! par exemple) et prédécrémentées (opérande [sp], #4 par exemple).

Troiseme question, avec un syscall graphique, il y a un parameter Gc p1, quelle valeur dois-je donner a ce parameter, je sais que c'est le context graphique, mais quelle est cette valeur? La valeur de retour de e_gui_gc_global_GC_ptr?

Manifestement, oui.

Pour le reste, je t'ai donné un pointeur plus haut à propos de show_dialog_box2_ , et je ne sais pas par coeur pour les 2 autres.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 11.4%
 
Posts: 6873
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Class: -
GitHub: debrouxl

Re: Les questions de Ti64CLi++ en C

Unread postby Ti64CLi++ » 19 Sep 2017, 22:50

Alors deja merci pour cette reponse (tres) rapide et tres complete qui repond a (presque) toute mes questions.
Un seul detail, tu me dis de regarder show_msgbox pour show_dialog_box_2. Mais je ne vois pas de syscall ayant ce nom :(
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Next

Return to Native: Ndless, Linux, ...

Who is online

Users browsing this forum: ClaudeBot [spider] and 3 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2298 utilisateurs:
>2278 invités
>12 membres
>8 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)