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
Routines 'système' de Ndless
39 posts
• Page 1 of 4 • 1, 2, 3, 4
-
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)- Posts: 770
- Images: 75
- Joined: 14 Sep 2011, 12:29
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Routines 'système' de Ndless
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.
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.
-
NouryVIP++
Niveau 11: LV (Légende Vivante)- Posts: 317
- Joined: 07 Sep 2018, 09:19
- Location: Sceaux, France 92
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Routines 'système' de Ndless
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é...
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é...
-
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)- Posts: 770
- Images: 75
- Joined: 14 Sep 2011, 12:29
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Routines 'système' de Ndless
nbenm wrote: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" :
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
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14727
- Images: 1119
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Re: Routines 'système' de Ndless
@Adriweb merci. Je viens d'activer le suivi
@grosged désolé pour cette pollution
@grosged désolé pour cette pollution
-
NouryVIP++
Niveau 11: LV (Légende Vivante)- Posts: 317
- Joined: 07 Sep 2018, 09:19
- Location: Sceaux, France 92
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Routines 'système' de Ndless
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
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
-
Limonadd
Niveau 9: IC (Compteur Infatigable)- Posts: 82
- Joined: 14 Feb 2018, 17:10
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: oui
Re: Routines 'système' de Ndless
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.
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.
-
VogtinatorPremium
Niveau 9: IC (Compteur Infatigable)- Posts: 217
- Joined: 29 Mar 2014, 15:55
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Routines 'système' de Ndless
ça marche !! Success !!
Merci à tous les deux ! Thank you both !
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.
Il n'y a plus qu'à explorer les autres syscall ...
Merci à tous les deux ! Thank you both !
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: Select all
// 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 ...
-
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)- Posts: 770
- Images: 75
- Joined: 14 Sep 2011, 12:29
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Routines 'système' de Ndless
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:
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...
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:
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...
-
NouryVIP++
Niveau 11: LV (Légende Vivante)- Posts: 317
- Joined: 07 Sep 2018, 09:19
- Location: Sceaux, France 92
- Gender:
- Calculator(s):→ MyCalcs profile
Re: Routines 'système' de Ndless
Ecran caractéristique à la fin d'un programme Ndless tournant en mode de compatibilité sur une TI-Nspire CX CR4+.
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41908
- Images: 15444
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
39 posts
• Page 1 of 4 • 1, 2, 3, 4
Return to Native: Ndless, Linux, ...
Who is online
Users browsing this forum: No registered users and 3 guests