π
<-
Chat plein-écran
[^]

Routines 'système' de Ndless

C, C++, ASM...

Re: Routines 'système' de Ndless

Message non lude Noury » 19 Avr 2019, 14:13

grosged a écrit: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 ?

Dans mon cas, TI-Nspire CX CAS récente, les adresses mémoire commencent en haut à gauche (adresse 0 du buffer)
Ensuite ça descend jusqu'à 479.
Puis on va sur la droite pour la seconde colonne qui commence à l'adresse 480
etc...
Enfin, la dernière colonne se termine à l'adresse 153599.
Ce qui nous fait 480x320. 480 en vertical, et 320 en horizontal.
C'est curieux, je pensais qu'on était en 240x320.

Chaque octet semble contenir la couleur (o=noir, 255=blanc). Je n'ai pas essayé toutes les valeurs intermédiaires, mais j'ai eu à un moment du bleu ciel (0x7F).

Je reste perplexe. Pourquoi 480 ?

Ceci dit, pour dessiner les caractères, ça ne facilite pas la tâche.
Avatar de l’utilisateur
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 52.6%
 
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 » 19 Avr 2019, 14:28

480=240*2

L'écran étant par défaut en 16-bits, ça colle. :)
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
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 » 19 Avr 2019, 14:36

Ah d'accord !
Deux octets par pixel...
Merci pour l'info.

Mais donc on peut l'utiliser également en 480x320. C'est d'ailleurs ce que j'ai fait, mais du coup on n'a que 256 couleurs. Et le risque c'est d'avoir les caractères "tassés" en vertical. Sauf à faire de toutes petites polices.
Avatar de l’utilisateur
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 52.6%
 
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, 15:46

Ah ok, merci pour la structure d'un écran 240x320 ;)
Personnellement, si l'on souhaite programmer de manière "universelle", je pense que le choix d'un mode 8bpp comme standard serait l'idéal, car même les modèles monochromes dits "classiques" seraient gagnants. En effet, j'ai remarqué qu'en basculant en mode 8bpp, on gagne 1 bit supplémentaire pour coder les couleurs : ainsi, 32 des 256 couleurs constituant la palette sont réellement exploitables , au lieu des 16 couleurs en mode 4bpp normal ;)
(voir archives_voir.php?id=1126139 )

Image
image en 32 niveaux de gris (sur nspire MONOCHROME)

EDIT: sinon, que pensez-vous d'une fonte en 8x12 (mode texte 40x20) ?
ça ferait ni trop grand ni trop petit... :p
Et avec 12 pixels de haut, ça favorise un bel équilibre de certaines minuscules (lettres g, j, p, q, y)
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 » 19 Avr 2019, 17:17

grosged a écrit:Personnellement, si l'on souhaite programmer de manière "universelle", je pense que le choix d'un mode 8bpp comme standard serait l'idéal, car même les modèles monochromes dits "classiques" seraient gagnants. En effet, j'ai remarqué qu'en basculant en mode 8bpp, on gagne 1 bit supplémentaire pour coder les couleurs : ainsi, 32 des 256 couleurs constituant la palette sont réellement exploitables , au lieu des 16 couleurs en mode 4bpp normal ;)


Si j'ai bien compris, tu n'utiliserais qu'un octet sur les deux disponibles sur la dernière CX CAX pour être compatible avec tous les modèles.

EDIT: sinon, que pensez-vous d'une fonte en 8x12 (mode texte 40x20) ?
ça ferait ni trop grand ni trop petit... :p
Et avec 12 pixels de haut, ça favorise un bel équilibre de certaines minuscules (lettres g, j, p, q, y)

J'avais pensé à du 16x6. 16 vertical et 6 horizontal. Pour avoir un écran de 30 lignes et 52 colonnes. C'est ce qui est utilisé dans MicroPython porté sur Nspire.
Mais j'avoue que le côté "artistique", ce n'est pas mon fort.
Je vais pour ma part continuer à faire un truc minimaliste, à titre d'exercice (en assembleur).
Au fait, tu va faire ça en C ou en ASM ?
Autre question, tu travailles sur la calculatrice seulement, ou tu utilises l'émulateur ?
Avatar de l’utilisateur
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 52.6%
 
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, 18:03

Oui, on peut, bien sûr, rester sur du 16bpp. Dans ce cas, on vise délibérement la compatibilité CX (CAS) / CX (CAS) II ;)
Après tout, les nspire monochrome commencent à dater, et il y a de moins en moins d'utilisateur si je ne me trompe...Mais bon!..ça se discute, hein!? :p

La fonte 6x8 utilisée par MicroPython me paraît un peu trop petite (à mon goût).
On pourrait la grossir légèrement en passant en 8x8 (texte=40x30), 8x10 (texte=40x24), ou même 8x12 (texte=40x20).

Concernant la TI-nspire, Je programme uniquement en Assembleur, uniquement sur calculatrice.
J'ai un peu réfléchi à une façon d'afficher du texte sur les modèles 240x320, mais comme d'habitude, je pense à plein de choses en même temps (comme une gestion de la couleur d'affichage/couleur de fond/ou même transparence)...Et pourquoi pas , inclure la possibilité de préciser les coordonnées d'affichage (et ce, en mode "texte" ?..ou "graphique".?..)
Par exemple, (en mode 16bpp):

pointeur1: .hword couleur-affichage,couleur-fond
pointeur2: .byte PositionX,PositionY (ou .hword PositionX,PositionY si graphique)
pointeur3: .asciz "Hello World!"

Ainsi, la routine d'affichage de "base" pourrait s'étofffer d'options , dépendemment du pointeur choisi et de l'appel émis ;)
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 critor » 19 Avr 2019, 18:12

Les Nspire monochromes peuvent très bien être réglées en 16bpp.
Il faut juste allouer un nouveau buffer écran le temps de l'exécution du programme Ndless, puisque le buffer 4bpp n'aura plus assez de place.
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.8%
 
Messages: 41470
Images: 14480
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 grosged » 19 Avr 2019, 18:15

Ah mais oui !!! Bien vu, critor !! J'oubliais qu'on pouvait modifier l'adresse de buffer-écran :D
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 » 02 Mai 2019, 09:12

Bonjour,

J'ai finalement fait l'exercice. J'ai pu écrire la chaine "Hello World!" sur l'écran depuis un programme assembleur.
Ça ne fera pas l'objet d'une bibliothèque, car il y a un OS, et ce serait dommage de se priver d'appeler des fonctions qui existent déjà, et qui sont certainement plus performantes et plus efficaces.

Voici les règles que je me suis fixées pour cet exercice:

Le principal choix qui a été fait est qu'on gère soi-même l'affichage.
C'est-à-dire qu'on décide de tout.
Ça veut également dire que cette procédure permet l'affichage d'une ligne, ou une partie de ligne, de texte à des coordonnées indiquées.

La chaine de caractères à afficher se trouve au label "texte"

Les coordonnées d'affichage (ligne, colonne) se trouvent au label "pos".

les couleurs des caractères se trouvent au label "colors" (arrière plan, caractère)
Le format des couleurs est un codage sur 16 bits en hexadécimal.

L'écran fait 24 lignes de 40 caractères.
Chaque caractère est dessiné dans une matrice de 10 lignes et 8 colonnes (pixels)
On accède au caractère à afficher dans la table des caractères par son code ascii.

Parmi les choix retenus:
- si une ligne dépasse la limite des 40 caractères, il y a troncature. Pas de retour à la ligne.
- si on dépasse les 24 lignes, il n'y a pas de scrolling
- seuls les caractères imprimables sont pris en compte. Les caractères de contrôle (CR, LF...) ne le sont pas.
- il n'y a pas de mise en forme (gras, italique, barré...)

Je mets le code source et le tns en PJ, pour le cas où ça intéresserait quelqu'un.

J'espère qu'il n'y a pas d'erreurs sur la police de caractères, je l'ai saisie manuellement pixel par pixel.

Voici ce que ça donne:

Image

Image

Image

Image

Image
Fichiers joints
helloworld.zip
(13.2 Kio) Téléchargé 71 fois
Avatar de l’utilisateur
NouryVIP++
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 52.6%
 
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 BackStage » 02 Mai 2019, 17:21

nbenm

merci pour le code source :)
Avatar de l’utilisateur
BackStage
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Prochain niv.: 80%
 
Messages: 24
Inscription: 03 Avr 2018, 01:54
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 6 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.
1301 utilisateurs:
>1288 invités
>8 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)