π
<-
Chat plein-écran
[^]

Routines 'système' de Ndless

C, C++, ASM...

Routines 'système' de Ndless

Unread postby grosged » 16 Apr 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 ;)
User avatar
grosgedVIP++
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 51.8%
 
Posts: 603
Images: 18
Joined: 14 Sep 2011, 12:29
Gender: Male
Calculator(s):

Re: Routines 'système' de Ndless

Unread postby nbenm » 16 Apr 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.
User avatar
nbenmVIP++
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 13%
 
Posts: 157
Joined: 07 Sep 2018, 09:19
Location: 92
Gender: Male
Calculator(s):

Re: Routines 'système' de Ndless

Unread postby grosged » 16 Apr 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é...
User avatar
grosgedVIP++
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 51.8%
 
Posts: 603
Images: 18
Joined: 14 Sep 2011, 12:29
Gender: Male
Calculator(s):

Re: Routines 'système' de Ndless

Unread postby Adriweb » 16 Apr 2019, 17:02

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" :

Image
User avatar
AdriwebAdmin.
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 50.1%
 
Posts: 12376
Images: 1079
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

Re: Routines 'système' de Ndless

Unread postby nbenm » 16 Apr 2019, 17:59

@Adriweb merci. Je viens d'activer le suivi :)
@grosged désolé pour cette pollution :?
User avatar
nbenmVIP++
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 13%
 
Posts: 157
Joined: 07 Sep 2018, 09:19
Location: 92
Gender: Male
Calculator(s):

Re: Routines 'système' de Ndless

Unread postby Limonadd » 16 Apr 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
User avatar
Limonadd
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 86.1%
 
Posts: 68
Joined: 14 Feb 2018, 17:10
Gender: Male
Calculator(s):
Class: oui

Re: Routines 'système' de Ndless

Unread postby Vogtinator » 16 Apr 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.
User avatar
VogtinatorPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 38.3%
 
Posts: 135
Joined: 29 Mar 2014, 15:55
Gender: Male
Calculator(s):

Re: Routines 'système' de Ndless

Unread postby grosged » 16 Apr 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: 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 ... ;)
User avatar
grosgedVIP++
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 51.8%
 
Posts: 603
Images: 18
Joined: 14 Sep 2011, 12:29
Gender: Male
Calculator(s):

Re: Routines 'système' de Ndless

Unread postby nbenm » 18 Apr 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...
User avatar
nbenmVIP++
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 13%
 
Posts: 157
Joined: 07 Sep 2018, 09:19
Location: 92
Gender: Male
Calculator(s):

Online

Re: Routines 'système' de Ndless

Unread postby critor » 18 Apr 2019, 12:16

Ecran caractéristique à la fin d'un programme Ndless tournant en mode de compatibilité sur une TI-Nspire CX CR4+.
Image
User avatar
critorAdmin.
Niveau 18: DC (Deus ex Calculatorum)
Niveau 18: DC (Deus ex Calculatorum)
Level up: 91%
 
Posts: 32234
Images: 8379
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Next

Return to Native: Ndless, Linux, ...

Who is online

Users browsing this forum: No registered users and 1 guest

-
Search
Campagne de dons
Pour nous aider à financer nos déplacements sur les salons/congrès qui vous donnent du contenu exclusif

Vous aurez droit aux avantages VIP et des goodies !
49%
-
Featured topics
Avantages VIP et goodies pour les donateurs !
Offre TI-Planet/Jarrety pour avoir la TI-83 Premium CE avec son chargeur pour 79,79€ port inclus !
Offre TI-Planet/Jarrety pour avoir la TI-Nspire CX CAS à seulement 130€ TTC port inclus!
Jailbreake ta TI-Nspire avec Ndless et profite des meilleurs jeux et applications !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

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 
-
Stats.
583 utilisateurs:
>539 invités
>39 membres
>5 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)