π
<-
Chat plein-écran
[^]

Routines 'système' de Ndless

C, C++, ASM...

Routines 'système' de Ndless

Message non lude grosged » 16 Avr 2019, 15:48

Salut!
En assembleur, nous savons comment appeler les routines utilisées par Ndless (en l'occurrence via l'instruction SWI suivie du numéro de fonction, avec les paramètres stockés dans les registres R0,R1,...). Mais là où je bloque , c'est au niveau de la signification de ces paramètres.
En consultant cette intéressante page : https://github.com/ndless-nspire/Ndless ... all-list.h
je n'ai, malgré tout, pas assez d'infos pour éviter le plantage de ma nspire.

Par exemple, j'essaye d'utiliser e_disp_str pour afficher un texte:
e_disp_str 341 // void disp_str(const char *p1, int *p2, int p3)

Hormis le premier paramètre qui pointe sur l'adresse contenant le texte à afficher, les deux paramètres suivants correspondraient à quoi, selon vous ?

Quelqu'un saurait-il où trouver une éventuelle documentation?
Merci d'avance ;)
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Routines 'système' de Ndless

Message non lude Noury » 16 Avr 2019, 16:07

Salut @grosged
Je n'ai pas de réponse pour toi.
Mais ta question m'intéresse. J'y réponds juste pour avoir des notifications quand tu auras de vraies réponses.
Bon courage !

Aux admins: ce serait chouette si on pouvait s'abonner à un topic, ou à un forum. Ça existe peut-être déjà sans que je le sache.
Avatar de l’utilisateur
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 52.5%
 
Messages: 287
Inscription: 07 Sep 2018, 09:19
Localisation: Sceaux, France 92
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Routines 'système' de Ndless

Message non lude grosged » 16 Avr 2019, 16:29

Merci @nbenm ;)
Rien qu'avec ces écrans 240x320 que l'on trouve sur les nspire depuis la version W, j'ai bien l'impression qu'il va falloir utiliser quelques-unes de ces fonctions, ne serait-ce que pour déterminer le modèle ou l'écran rencontré...
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Routines 'système' de Ndless

Message non lude Adriweb » 16 Avr 2019, 17:02

nbenm a écrit:Aux admins: ce serait chouette si on pouvait s'abonner à un topic, ou à un forum. Ça existe peut-être déjà sans que je le sache.

Hé oui c'est possible :) En bas à gauche de la page des topics, le lien "Surveiller ce sujet" :

Image
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%
 
Messages: 14599
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Routines 'système' de Ndless

Message non lude Noury » 16 Avr 2019, 17:59

@Adriweb merci. Je viens d'activer le suivi :)
@grosged désolé pour cette pollution :?
Avatar de l’utilisateur
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 52.5%
 
Messages: 287
Inscription: 07 Sep 2018, 09:19
Localisation: Sceaux, France 92
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Routines 'système' de Ndless

Message non lude Limonadd » 16 Avr 2019, 18:11

J'y connais rien en assembleur sur ti-nspire.
Mais j'ai trouvé ça:
https://github.com/ndless-nspire/Ndless ... stage1.cpp

il utilise la fonction comme ça:
syscall_local<e_disp_str, void>("ndless_resources not found.", &x, 0);

je sais pas comment ça marche l'écran sur ti nspire, mais les parametes c'est peut l'adresse ou est stockée la chaine, et la position sur l'écran?
sur ti 83 premium ce y'a une vRam, donc c'est peut l'adresse dans la vRam, apres je sais pas si c'est pareil sur nspire aucune idée,
et le troisieme parametre il utilise souvent un 0 donc je sais pas ce que c'est exactement

sauf là y'a un 10:

syscall_local<e_disp_str, void>("Oops, you've forgotten to transfer 'ndless_resources.tns'! Ndless won't be installed.", &x, 10);

ça pourra peut etre t'aider a comprendre les parametres xD
Avatar de l’utilisateur
Limonadd
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 97.1%
 
Messages: 82
Inscription: 14 Fév 2018, 17:10
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: oui

Re: Routines 'système' de Ndless

Message non lude Vogtinator » 16 Avr 2019, 18:57

That syscall isn't really documented (there's not even a wrapper for it) as it's meant to be mostly internal only.

The first argument is a pointer to a null-terminated string of ASCII characters (non-ASCII chars are printed as spaces).
The second argument is a pointer to the X coordinate of the first char, counting in fixed-width letters from the left. The number of letters printed is added to the value.
The third argument is the Y position, counting in fixed-height letters from the top.
Avatar de l’utilisateur
VogtinatorPremium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 1.6%
 
Messages: 217
Inscription: 29 Mar 2014, 15:55
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Routines 'système' de Ndless

Message non lude grosged » 16 Avr 2019, 21:33

:~o ça marche !! Success !! :D
Merci à tous les deux ! Thank you both ! :D

Grâce à vous, c'est beaucoup plus clair, à présent ;)
Voilà pourquoi il y avait une différence entre les deux derniers paramètres : le premier registre (R1) ne contient pas la valeur mais pointe sur l'adresse contenant le paramètre... D'où le &x dans l'exemple de Limonadd... ou l'astérisque dans e_disp_str 341 // void disp_str(const char *p1, int *p2, int p3)

Voici mon petit programme de test:
Effaçage de l'écran, puis affichage d' HELLO WORLD! en position-texte(8,16), puis une pause avant de quitter.

Code: Tout sélectionner
//      as -aln -mcpu=arm926ej-s -o .temp.o HelloWorld.s && objcopy -O binary .temp.o HelloWorld.prg.tns
       
        .asciz  "PRG"           // en-tête "PRG"
       
        push    {r0-r12,lr}
        bl      CLEAR
       
        adr     r0,text
        adr     r1,Xpos
        ldr     r2,[r1,#4]
        swi     #341
       
        bl      PAUSE
        pop     {r0-r12,pc}

/***************************************************************/
text:   .asciz  "HELLO WORLD!"
        .align
Xpos:   .word   8
Ypos:   .word   16

/***************************************************************/
CLEAR:  push    {r0-r2,lr}
        mov     r0,#0xC0000010
        ldr     r0,[r0]
        mov     r1,#0
        mov     r2,#38400
clr_lp: str     r1,[r0],#4
        subs    r2,#1
        bne     clr_lp
        pop     {r0-r2,pc}
       
PAUSE:  push    {r0,lr}
        mov     r0,#0x80000000
waitlp: subs    r0,#1
        bne     waitlp
        pop     {r0,pc}

Il n'y a plus qu'à explorer les autres syscall ... ;)
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Routines 'système' de Ndless

Message non lude Noury » 18 Avr 2019, 12:14

Salut

J'ai essayé ce code sur une Nspire CX CAS (4.5.0.1180), mais j'ai un écran noir durant 95 secondes environs.
Pas de "HELLO WORLD!" affiché.
Puis j'ai l'écran suivant:

Image
J'ai déjà eu ce genre d'écran à un moment en quittant MicroPython. Ça y ressemble.
Voilà, il y a donc 2 choses qui ne vont pas.
Si quelqu'un a une idée...
Avatar de l’utilisateur
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 52.5%
 
Messages: 287
Inscription: 07 Sep 2018, 09:19
Localisation: Sceaux, France 92
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Routines 'système' de Ndless

Message non lude critor » 18 Avr 2019, 12:16

Ecran caractéristique à la fin d'un programme Ndless tournant en mode de compatibilité sur une TI-Nspire CX CR4+.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.4%
 
Messages: 41455
Images: 14353
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Suivante

Retourner vers Native: Ndless, Linux, ...

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 8 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.
737 utilisateurs:
>703 invités
>29 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)