1

je travaille en niveau de gris et quand je fais un printf ca m'affiche en grisrage et je voudrais l'avoir en noir donc il faudrais que au lieu que sprintf ecrive a l'adresse 0x4C00 il faudrais qu'elle ecrive dans un buffer que je recopirais dans les 2 plans de gris !

a moins qu'il y ait pus simple qu'un c comment on fais ?
merci
Plus tu pedale moins vite moins t'avance plus vite
Ma team CS

2

On peut pas tongue
Utilise sprintf et DrawStr a la main.

3

au moins c clair mais comment on fiat avec DrawStr ?
Plus tu pedale moins vite moins t'avance plus vite
Ma team CS

4

SetPlane(DARK_PLANE)
darstr...
SetPlane(LIGHT_PLANE);
darwstr...

ou quelque chose ds le genre (regarde SetPlane)
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

5

grin g trouve j'utilise un PortSet et PortRestore wink
merci
Plus tu pedale moins vite moins t'avance plus vite
Ma team CS

6

Je crois que c'est pareil, ce sont des macros.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

7

printf est une fonction de TIGCCLIB, mais elle utilise les ROM_CALLs pour dessiner les caractères, donc PortSet et PortRestore marchent très bien avec. Et en effet, SetPlane est une macro qui appelle GetPlane et PortSet.
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é

8

Mais printf étant déjà très lent, s'il faut l'exécuter deux fois pour écrire en noir... Enfin peut-être que ça suffit pour ce qu'il veut faire what
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

9

un petit coup de buffer...
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

10

Thibaut>comment tu sais que printf est lent? c'est pas ce qu'il y a de plus simple pour afficher un str? y'a plus rapide?

ps: j'ai pas encore beaucoup d'expérience en prog C

11

printf est très très lent !!! Pour le savoir je n'ai eu qu'à regarder les sources de TIGCClib.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

12

ou à demander un affichage de 6 printf à la suite.

printf("blablan")
printf("blablan")
printf("blablan")
printf("blablan")
printf("blablan")
printf("blablan")

on les voit s'afficher 1 par 1. sicksick (sous VTI)
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

13

une petite question : DrawStrXY (machin) aussi connu sous DrawStr (machin)
c'est aussi lent que printf? moi je préfère : y'a pas besoin de faire Moveto (x,y)
François BALLAND

Site Ti : http://www.balland.org

14

"Thibaut>comment tu sais que printf est lent? c'est pas ce qu'il y a de plus simple pour afficher un str? y'a plus rapide?"
"DrawStrXY (machin) aussi connu sous DrawStr (machin) c'est aussi lent que printf ?"

Pour afficher une chaîne de caractères, il y a plus rapide: voir les sources de tthdex, tthedit, ebook... Par contre, dans tthdex/tthedit (peut-être plus les versions les plus récentes, je ne sais plus), on utilise la macro printf_xy, définie normalement comme suit:
#define printf_xy(x,y,f...)
({char __s[200];_rom_call(short,(char*,const char*,...),53)(__s ,##f);_rom_call(void,(short,short,const char*,short),1A9)(x,y,__s,4);})
(En clair c'est une combinaison de sprintf et de DrawStr.)

et qui a été redéfinie comme combinaison de sprintf et de notre fonction de dessin de chaîne de caractères, optimisée, à laquelle tu passes le buffer que tu veux dans plane:
/*===========================================================================*/
/* replaces string using own sprites (F_6x8) (much faster than DrawStr) */
/*===========================================================================*/
void NormalString(short x,short y,const unsigned char* s,void *plane) {
unsigned char* sprite;
long addr;
long addr_const = ((long)plane)+(y<<5)-(y<<1);
unsigned short cnt;
long mask;

while (*s) {
sprite = &charset[((short)(*s))<<3];
addr = addr_const+((x>>3)&0x1e);
cnt = 24-(x&15);
mask = ~((long)(0xff)<<cnt);
// unrolled loop for more speed ...
*(long*)addr&=mask; *(long*)addr|=(long)(*sprite++)<<cnt; addr+=30;
*(long*)addr&=mask; *(long*)addr|=(long)(*sprite++)<<cnt; addr+=30;
*(long*)addr&=mask; *(long*)addr|=(long)(*sprite++)<<cnt; addr+=30;
*(long*)addr&=mask; *(long*)addr|=(long)(*sprite++)<<cnt; addr+=30;
*(long*)addr&=mask; *(long*)addr|=(long)(*sprite++)<<cnt; addr+=30;
*(long*)addr&=mask; *(long*)addr|=(long)(*sprite++)<<cnt; addr+=30;
*(long*)addr&=mask; *(long*)addr|=(long)(*sprite++)<<cnt; addr+=30;
*(long*)addr&=mask; *(long*)addr|=(long)(*sprite)<<cnt;

x+=6;
s++;
}
}

printf_xy a été enlevée et redéfinie comme:
#undef printf_xy
#define printf_xy(x,y,f...)
({char __s[100]; _rom_call(short,(char*,const char*,...),53)(__s ,##f);
NormalString(x,y,__s,LCD_MEM);})


printf dessine avec un wrap à la fin de ligne... les différences sont dans le help de TIGCC.

printf est encore bien plus lent que printf_xy, qui elle-même est encore plus lente que DrawStr, qui est plus lente que les routines de tthdex/tthedit/ebook, qui sont peut-être plus lentes que d'autres routines super optimisées en ASM...

Contactez-moi par mail pour toute information complémentaire...
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

15

Peut être plus rapide, mais au niveau simplicité et taille, DrawStrXY me convient PARFAITEMENT devil devil
François BALLAND

Site Ti : http://www.balland.org