π
<-
Chat plein-écran
[^]

Les questions de Ti64CLi++ en C

C, C++, ASM...

Les questions de Ti64CLi++ en C

Message non lude 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
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Les questions de Ti64CLi++ en C

Message non lude 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.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Les questions de Ti64CLi++ en C

Message non lude 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.
Image

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...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.2%
 
Messages: 14614
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Les questions de Ti64CLi++ en C

Message non lude 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
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Les questions de Ti64CLi++ en C

Message non lude 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
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Les questions de Ti64CLi++ en C

Message non lude 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.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Les questions de Ti64CLi++ en C

Message non lude Ti64CLi++ » 18 Sep 2017, 21:20

Non, car je n'ais pas de compilateur pour ARM :(
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Les questions de Ti64CLi++ en C

Message non lude 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: Tout sélectionner
#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
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Les questions de Ti64CLi++ en C

Message non lude 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.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: Les questions de Ti64CLi++ en C

Message non lude 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
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Suivante

Retourner vers Native: Ndless, Linux, ...

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 12 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1465 utilisateurs:
>1436 invités
>24 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)