π
<-
Chat plein-écran
[^]

Routines 'système' de Ndless

C, C++, ASM...

Re: Routines 'système' de Ndless

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

Effectivement, j'ai eu au lancement la fenêtre qu'on voit parfois, me disant que le programme allait s'exécuter en mode compatibilité.
Ce serait ça la raison de l'écran noir également ?
Je suis un peu perdu.
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 Noury » 18 Avr 2019, 20:57

Je ne vois pas ce qui dans ce code provoque le mode de compatibilité.
Est-ce une option d'assemblage ?

L'effacement d'écran semble bien se passer (écran noir)
La boucle d'attente se passe bien aussi
C'est ce qui est au milieu qui semble poser problème. En fait le disp_str n'a pas l'air de se faire. Ou alors il a lieu ailleurs.
C'est très curieux.
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 Vogtinator » 18 Avr 2019, 21:03

lcd_blit draws into the OS's framebuffer, so won't work in compatibility mode.

The compatibility mode is automatically enabled for all .tns files which do not explicitly support HW-W+.
Instead of adding the PRG header yourself, you should build an ELF as usual and conver it to a .tns with
Code: Tout sélectionner
genzehn --input input.elf --output output.tns --240x320-support true
.
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 Noury » 18 Avr 2019, 21:40

@Vogtinator thanks, it's better, but not yet correctly running.
I've added "--240x320-support true" to ZEHNFLAGS

At make time, I have the following output:

Code: Tout sélectionner
nspire-as -c HelloWorld.S -o HelloWorld.o
mkdir -p .
nspire-ld HelloWorld.o -o HelloWorld.elf
genzehn --input HelloWorld.elf --output HelloWorld.tns.zehn --name "HelloWorld" --240x320-support true
Warning: Using neither old (SCREEN_BASE_ADDRESS) nor new (lcd_blit) API!
Assuming '--uses-lcd-blit false'!
make-prg HelloWorld.tns.zehn HelloWorld.tns
rm HelloWorld.tns.zehn


And at run time the screen is "reversed".

Image

I've naively added "--uses-lcd-blit true", but it's the same.

I'm pretty sure we're not far from success.
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 Noury » 18 Avr 2019, 22:04

In fact I have:
one execution with black screen, one with vertical garbage, one with black screen, one with vertical garbage...
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, 22:39

Without the compatibility mode on CX hardware revisions W+, you have to write to the screen buffer in 240x320, not 320x240.
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

Re: Routines 'système' de Ndless

Message non lude Noury » 18 Avr 2019, 23:19

Yes, you are right.
I'm writing at coordinates x=8 and y=16. As they are within the authorized values there should be no problem.
x seems ok, but the writing is up down and not left to right.
Maybe some declarations are missing.

One thing is good now, when exiting the program, screen is correctly displayed.

Do you know if some assembly source code is available somewhere, that uses recent Nspire ?
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 Vogtinator » 19 Avr 2019, 09:42

Hm, that would mean lcd_blit does not support the rotated LCD, at least not if invoked this way.

I suggest to implement text drawing in assembly yourself, that sounds like a nice exercise.
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 Noury » 19 Avr 2019, 10:35

Vogtinator a écrit:I suggest to implement text drawing in assembly yourself, that sounds like a nice exercise.

You mean drawing characters in a matrix of let's say horizontal 10 and vertical 16, and then put these matrix in a buffer, and finally copying this one in the frame buffer?
If this is what you mean, yes it could be a nice exercice.
After all, my goal wasn't to use necessarily disp_str.
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 » 19 Avr 2019, 10:52

Je n'ai pas de TI-nspire modèle W en ma possession, et je me suis toujours demandé : dans ce mode 240x320, d'où démarre le buffer-écran, je veux dire, de quel coin de l'écran ?
J'ai aussi pensé à écrire une routine d'affichage en mode texte, et compatible sur tous les modèles.
Et je pense à un moyen basique de deviner le type d'écran : au moment de lancer un programme, il suffirait de consulter 1 ou 2 octets bien précis de la mémoire-écran (par exemple parmi les tous premiers octets de la jauge d'état de la batterie ;) )

(je vais faire 1 capture-écran de ma TI-nspire CX CAS, puis de ma TI-nspire CAS)
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

PrécédenteSuivante

Retourner vers Native: Ndless, Linux, ...

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 7 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.
825 utilisateurs:
>796 invités
>25 membres
>4 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)