π
<-
Chat plein-écran
[^]

[CE Projet ASM]Lecteur de texte avec caractères spéciaux

Assembleur, Axe, C/C++, ICE...

[CE Projet ASM]Lecteur de texte avec caractères spéciaux

Message non lude y0ann » 12 Mai 2016, 21:39

Bonjour, je me suis penché sur la programmation sur TI depuis une petite semaine et je vous présente mon premier projet : Un lecteur de Texte supportant 255 caractères. Je peux modifier la police à tout moment donc certains caractères pourront être remplacés par d'autres plus utiles pour la saisie de cours.

Image

Les caractères sont tracés pixel par pixel ce qui cause une certaine latence, 0.6 secondes pour une page remplie comme celle-ci :

Image

Soit 910 caractères. Je commence à peine à travailler dessus, seulement l'affichage des caractères est géré.

A faire :

- Défilement
- De la couleur :D
La plus grosse partie :
- Me renseigner sur les appVars pour pouvoir charger des fichiers dans le lecteur.
- Un convertisseur Txt -> appVar avec un espèce de code (du style "_135_") pour indiquer le code d'un caractère non saisissable au clavier.

Voilà, je posterais un message dès que j'avancerais sur ce projet :)
Dernière édition par y0ann le 21 Mai 2016, 00:43, édité 1 fois.
Avatar de l’utilisateur
y0ann
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Prochain niv.: 64%
 
Messages: 19
Inscription: 04 Mai 2016, 21:56
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: GEII

Re: [CE Projet ASM]Lecteur de texte avec caractères spéciaux

Message non lude Adriweb » 12 Mai 2016, 22:48

Intéressant :) Mateo a fait un editeur et lecteur de texte, mais avec la police par défaut (je crois) !

C'est fait entièrement en Assembleur ou bien avec du C aussi ?
Au passage, si tu es en 16bpp, tu peux très probablement plutôt passer en 8bpp voire moins, ça sera beaucoup plus rapide :P

Par ailleurs, je t'encourage à mettre ceci en open-source (par exemple sur GitHub) - il y a des gens interessés qui pourront sûrement t'aider à optimiser fortement le programme (même pixel par pixel, un tel écran ne devrait pas prendre 0.6s - c'est "lent" pour de l'assembleur :P Si ma mémoire est bonne, jacobly avait réussi à faire faire défiler à l'écran d'accueil un certain nombre de milliers (peut-être même plusieurs dizaines de milliers) de caractères par seconde (une centaine de FPS je crois))
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.2%
 
Messages: 14616
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: [CE Projet ASM]Lecteur de texte avec caractères spéciaux

Message non lude y0ann » 13 Mai 2016, 01:38

Avec du C ! Assembleur pur, le maximum que j'ai réussi à faire c'est un point qu'on déplace sur l'écran avec les flèches, j'ai abandonné sur les sprites. :D

Voici pour le défilement sur une tableau contenant 1500 caractères :
Image
Et pour se rendre compte de la lenteur monumentale du bouzin, on vire le buffer :
Image

L'optimisation c'est pas pour moi ! :D

La police de 8x8 est stockée dans un tableau d'octet de cette manière (256 caractères) :

Code: Tout sélectionner
unsigned char font[2048] =
{
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,   
   0x7E, 0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, 0x7E,   
   0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E,   
   0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00,   
   0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00,   

       .......
}


La seule manière que j'ai trouvé d'afficher ça c'est comme ça (désolé je viens de débarquer :troll:) :

Code: Tout sélectionner
void DrawCar(uint8_t car, uint8_t X, uint8_t Y)
{
   uint8_t i = 0;
   uint8_t j = 0;
   
   for (j=0 ; j<8 ; j++) //lignes
   {
      for (i=0 ; i<8 ; i++) //colonnes
      {
         if ((font[car*8+j]<<i) & 0x80)     //Si le bit i de la ligne j du caractère car vaut 1
         {   
            gc_ClipSetPixel((9*X)+3+i, (9*(Y))+3+j); //On colore le pixel
         }
      }
   }
}
Dernière édition par y0ann le 19 Mai 2016, 13:56, édité 1 fois.
Avatar de l’utilisateur
y0ann
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Prochain niv.: 64%
 
Messages: 19
Inscription: 04 Mai 2016, 21:56
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: GEII

Re: [CE Projet ASM]Lecteur de texte avec caractères spéciaux

Message non lude MateoConLechuga » 13 Mai 2016, 06:01

Nice work! :D In case you weren't already aware though, the C libraries already allow you to specify any custom font you wish to use; with a high speed assembly routine used for displaying. :) You can easily create the font arrays with PixelFontEdit 8x8 or some similar variant.

These are the routines that are worth taking a look at:

Code: Tout sélectionner
void gc_SetFontData(uint8_t *fontdata);
void gc_SetFontSpacing(uint8_t *fontspacing);


The format should still be exactly like yours.
Avatar de l’utilisateur
MateoConLechugaVIP++
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 60.5%
 
Messages: 50
Inscription: 12 Oct 2015, 21:56
Genre: Homme
Calculatrice(s):
MyCalcs profile
GitHub: mateoconlechuga

Re: [CE Projet ASM]Lecteur de texte avec caractères spéciaux

Message non lude y0ann » 13 Mai 2016, 10:57

Thank you Mateo, I've seen this function in graphc.h but never used it. It's much faster than my bit per bit drawing ! :D

Image
Avatar de l’utilisateur
y0ann
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Prochain niv.: 64%
 
Messages: 19
Inscription: 04 Mai 2016, 21:56
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: GEII

Re: [CE Projet ASM]Lecteur de texte avec caractères spéciaux

Message non lude Adriweb » 13 Mai 2016, 10:59

\o/
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.2%
 
Messages: 14616
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: [CE Projet ASM]Lecteur de texte avec caractères spéciaux

Message non lude Ti64CLi++ » 13 Mai 2016, 16:36

Super :bj:
Bravo pour ta première semaine de programmation ^^
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: [CE Projet ASM]Lecteur de texte avec caractères spéciaux

Message non lude Clément.7 » 13 Mai 2016, 22:10

Je veux une TI-83 PCE :'(
Très bon projet, continue ! :bj:
Toujours plus loin, toujours plus haut, toujours plus geek !
Créateur du projet Haskier : Jouer ! Sujet sur OpenClassrooms
Programmez en UnderBasic ! https://tiplanet.org/forum/viewtopic.php?t=19009&p=207260
Avatar de l’utilisateur
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 29.5%
 
Messages: 348
Inscription: 12 Juin 2013, 15:02
Localisation: Près de Nantes
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: IUT Informatique en 2017-2019
GitHub: ClementNerma

Re: [CE Projet ASM]Lecteur de texte avec caractères spéciaux

Message non lude y0ann » 14 Mai 2016, 02:52

J'ai bricolé un convertisseur, il a encore quelques problèmes avec les accents, je règlerais ça demain (enfin, tout à l'heure :D).
Il exporte pour l'instant le texte en header contenant un tableau de char, je vais essayer de me renseigner sur les appVars.
J'ai aussi intégré le support des retours à la ligne sur le lecteur et par la même occasion, recodé le système de défilement (le nombre de caractères par ligne n'étant plus fixe).
Image

Image
Avatar de l’utilisateur
y0ann
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Prochain niv.: 64%
 
Messages: 19
Inscription: 04 Mai 2016, 21:56
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: GEII

Re: [CE Projet ASM]Lecteur de texte avec caractères spéciaux

Message non lude Ti64CLi++ » 14 Mai 2016, 11:14

Super. Après, je suis aussi en train de faire un éditeur hexadécimale d'Appvar. Seulement, je ne sais pas comment ouvrir une appvar en C.
Est-ce que quelqu'un peut m'aider?
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Suivante

Retourner vers Langages alternatifs

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 40 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.
1818 utilisateurs:
>1782 invités
>31 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)