1

existe -il une fonction pour réinitialiser _rowread : par exemple si je fait deux fois la boucle:
do{
.... instructions
if (_rowread(0x3f)&0x1) quitter+=1;
}while(quitter!=1);

la seconde boucle quitte de suite (biensûr j'ai réinitialisé quitter à 0 avant la seconde boucle!)

Ensuite le second problème c'est que quand je fais une sauvegarde d'écran avec LCD_save(buffer_mem); seul les pixels allumés sur les deux plans (dark et light) sont sauvés. Comment faire pour que la sauvegarde tienne compte des deux plan pour les niveaux de gris?mur
Et enfin un petit truc: ou pourraige trouver des sources/doc pour faire un scrolling d'écran...

Merci d'avance! smile

2

il n'y a pas de façon de "réinitialiser" _rowread : il s'agit d'une lecture bas niveau du clavier :
qd une touche est pressée, le bit dans la valeur renvoyée par _rowread est à 1, si elle n'est pas pressée, il est à 0.

pour que la touche ne soit pas détectée comme "pressée" par _rowread, il faut qu'elle soit lachée.
si elle est appuyée, elle sera détectée comme "pressée".
c'est le fonctionnement de _rowread (et de ses dérivés, bien entendu) qui veut cela.
=> ça lit le clavier : les touches pressées ou non, c tout.
c rapide, puisque c du bas niveau... mais la bas niveau a des inconvénients smile


pour savuegarder un écran en grays, il faut sauvegarder d'un côté le LIGHT_PLANE, et d'un autre le DARk8PLANE, séparément
(question de fonctionnement des grays : chaque plan (il y en a 2 en 4 grays smile) est stocké en mémoire comme un écran noir et blanc)


pour le scrolling, il y a des routines dans extgraph (http://tict.ticalc.org)
mais le scrolling n'est généralement pas très adapté...
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

3

alndbx a écrit :
existe -il une fonction pour réinitialiser _rowread : par exemple si je fait deux fois la boucle:
do{
.... instructions
if (_rowread(0x3f)&0x1) quitter+=1; }while(quitter!=1);

Déjà, arrête d'utiliser _rowread(0x3f)&0x1! C'est totalement illisible, et ce n'est permis plus que pour la compatibilité avec les vieilles sources. Utilise _keytest(RR_ESC). Non seulement c'est plus lisible, mais aussi le portage vers les TI-92+/V200 est immédiat avec ça.
la seconde boucle quitte de suite (biensûr j'ai réinitialisé quitter à 0 avant la seconde boucle!)

Le problème est que ton code réagit plus vite que tu n'as le temps de relâcher [ESC]. Rajoute un while(_keytest(RR_ESC)); tout de suite après la première boucle pour attendre que [ESC] soit relâché. Ou alors tu attends carrément que toutes les touches soient relâchées avec while(_rowread(0));.
Ensuite le second problème c'est que quand je fais une sauvegarde d'écran avec LCD_save(buffer_mem); seul les pixels allumés sur les deux plans (dark et light) sont sauvés. Comment faire pour que la sauvegarde tienne compte des deux plan pour les niveaux de gris?mur

LCD_save(GetPlane(DARK_PLANE));LCD_save(GetPlane(LIGHT_PLANE));
Mais attention, ça prend 7680 octets sur la pile! Tu ferais mieux d'utiliser:
void *buffer=malloc(7680);
memcpy(buffer,GetPlane(DARK_PLANE),3840);
memcpy(buffer+3840,GetPlane(LIGHT_PLANE),3840);

Et enfin un petit truc: ou pourraige trouver des sources/doc pour faire un scrolling d'écran...

http://tict.ticalc.org (c'est dans ExtGraph).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

4

Ok merci pour les suvegardes d'écran j'en avais besoin wink mais une chose:
pour _keytest, le fichier .h associé, c'est lequel parce que je l'ai pas trouvé. Mais j'ai encore tigcc0.93 et c'est peut-être pas inclu. Pour l'instant tigcc me provoque des erreurs quand je l'utilise... smile

5

Dans la version que j'ai, c'est dans kbd.h
(version 0.94 finale)
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

6

alndbx
a écrit : pour _keytest, le fichier .h associé, c'est lequel parce que je l'ai pas trouvé.

kbd.h, et compat.h pour les constantes. Mais tu ferais mieux d'inclure tout simplement tigcclib.h au lieu de perdre ton temps à chercher les headers.
Mais j'ai encore tigcc0.93 et c'est peut-être pas inclu.

En effet. Mets à jour TIGCC. La version 0.93 est totalement dépassée. La version la plus récente est la 0.94 SP1.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

7

Ouais c bien ce que je pensais... je viens de la downloader la V0.94. Sinon je vous rassure je ne mets pas les headers un par un, j'utilise tigcclib.h ya juste quand j'ai un pb, je les consultes pour voir les syntaxes des fonction etc... grin