Les questions de Ti64CLi++ en C
Les questions de Ti64CLi++ en C
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
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
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 3441
- Images: 75
- Inscription: 04 Juil 2014, 14:40
- Localisation: Clermont-Ferrand 63
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: ENS Rennes
- GitHub: Ti64CLi
Re: Les questions de Ti64CLi++ en C
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.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Messages: 6859
- Inscription: 23 Déc 2009, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: -
- GitHub: debrouxl
Re: Les questions de Ti64CLi++ en C
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.
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...)-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 14616
- Images: 1218
- Inscription: 01 Juin 2007, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Twitter/X: adriweb
- GitHub: adriweb
Re: Les questions de Ti64CLi++ en C
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
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 3441
- Images: 75
- Inscription: 04 Juil 2014, 14:40
- Localisation: Clermont-Ferrand 63
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: ENS Rennes
- GitHub: Ti64CLi
Re: Les questions de Ti64CLi++ en C
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?
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 3441
- Images: 75
- Inscription: 04 Juil 2014, 14:40
- Localisation: Clermont-Ferrand 63
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: ENS Rennes
- GitHub: Ti64CLi
Re: Les questions de Ti64CLi++ en C
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.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Messages: 6859
- Inscription: 23 Déc 2009, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: -
- GitHub: debrouxl
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 3441
- Images: 75
- Inscription: 04 Juil 2014, 14:40
- Localisation: Clermont-Ferrand 63
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: ENS Rennes
- GitHub: Ti64CLi
Re: Les questions de Ti64CLi++ en C
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
Deuxieme question, comment
Troiseme question, avec un syscall graphique, il y a un parameter
Quatrieme question, comment est-ce que j'utilise les syscalls
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
Voila, ce sera tout pour cette fois.
J'attends vos reponses
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
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 3441
- Images: 75
- Inscription: 04 Juil 2014, 14:40
- Localisation: Clermont-Ferrand 63
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: ENS Rennes
- GitHub: Ti64CLi
Re: Les questions de Ti64CLi++ en C
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.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Messages: 6859
- Inscription: 23 Déc 2009, 00:00
- Localisation: France
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: -
- GitHub: debrouxl
Re: Les questions de Ti64CLi++ en C
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
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
-
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)- Messages: 3441
- Images: 75
- Inscription: 04 Juil 2014, 14:40
- Localisation: Clermont-Ferrand 63
- Genre:
- Calculatrice(s):→ MyCalcs profile
- Classe: ENS Rennes
- GitHub: Ti64CLi
16 messages
• Page 1 sur 2 • 1, 2
Retourner vers Native: Ndless, Linux, ...
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 39 invités