π
<-
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

Unread postby y0ann » 12 May 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 :)
Last edited by y0ann on 21 May 2016, 00:43, edited 1 time in total.
User avatar
y0ann
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 64%
 
Posts: 19
Joined: 04 May 2016, 21:56
Gender: Male
Calculator(s):
MyCalcs profile
Class: GEII

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

Unread postby Adriweb » 12 May 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))

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
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.4%
 
Posts: 14670
Images: 1118
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby y0ann » 13 May 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: Select all
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: Select all
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
         }
      }
   }
}
Last edited by y0ann on 19 May 2016, 13:56, edited 1 time in total.
User avatar
y0ann
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 64%
 
Posts: 19
Joined: 04 May 2016, 21:56
Gender: Male
Calculator(s):
MyCalcs profile
Class: GEII

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

Unread postby MateoConLechuga » 13 May 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: Select all
void gc_SetFontData(uint8_t *fontdata);
void gc_SetFontSpacing(uint8_t *fontspacing);


The format should still be exactly like yours.
User avatar
MateoConLechugaVIP++
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 60.5%
 
Posts: 50
Joined: 12 Oct 2015, 21:56
Gender: Male
Calculator(s):
MyCalcs profile
GitHub: mateoconlechuga

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

Unread postby y0ann » 13 May 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
User avatar
y0ann
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 64%
 
Posts: 19
Joined: 04 May 2016, 21:56
Gender: Male
Calculator(s):
MyCalcs profile
Class: GEII

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

Unread postby Adriweb » 13 May 2016, 10:59

\o/

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
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.4%
 
Posts: 14670
Images: 1118
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby Ti64CLi++ » 13 May 2016, 16:36

Super :bj:
Bravo pour ta première semaine de programmation ^^
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.4%
 
Posts: 3444
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

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

Unread postby Clément.7 » 13 May 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
User avatar
Clément.7
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 29.5%
 
Posts: 348
Joined: 12 Jun 2013, 15:02
Location: Près de Nantes
Gender: Male
Calculator(s):
MyCalcs profile
Class: IUT Informatique en 2017-2019
GitHub: ClementNerma

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

Unread postby y0ann » 14 May 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
User avatar
y0ann
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 64%
 
Posts: 19
Joined: 04 May 2016, 21:56
Gender: Male
Calculator(s):
MyCalcs profile
Class: GEII

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

Unread postby Ti64CLi++ » 14 May 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
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.4%
 
Posts: 3444
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Next

Return to Langages alternatifs

Who is online

Users browsing this forum: No registered users and 14 guests

-
Search
-
Social TI-Planet
-
Featured topics
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Offre de test des nouveautés de rentrée 2024 par Casio. Enseignant(e), reçois gratuitement 1 exemplaire, à ton choix, de la Graph Light ou bien de la Graph Math+
14€ remboursés par Casio sur l'achat de ta calculatrice Graph 35 d'ici le 31 Octobre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 90+E d'ici le 31 Décembre 2024
10€ remboursés par Casio sur l'achat de ta calculatrice Graph 25 d'ici le 31 Décembre 2024
8€ remboursés par Casio sur l'achat de ta calculatrice Graph Math+ d'ici le 31 Octobre 2024
Reprise de ton ancienne fx-92 Collège ou Graph 25/35/90 à 3€ peu importe son état. Même non fonctionnelle et donc invendable, même ancienne Graph 35 non conforme aux programmes (pas de Python), même ancienne Graph 25/35 inutilisable aux examens (pas de mode examen) et donc invendable. Etiquette de retour fournie, pas de frais de port à payer.
3€ remboursés par Casio sur l'achat de ta calculatrice fx-92 Collège d'ici le 30 Septembre 2024
5€ de remise immédiate sur l'achat de ta calculatrice TI-83 Premium CE Edition Python chez les revendeurs partenaires
4€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced Edition Python chez les revendeurs partenaires
3€ de remise immédiate sur l'achat de ta calculatrice TI-82 Advanced chez les revendeurs partenaires
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234567891011121314
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
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 Calculatrices à acheter chez Calcuso
-
Stats.
1288 utilisateurs:
>1277 invités
>5 membres
>6 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)