1

Bon voila j'ai qqs petites question...
dans mes fonctions j'utilises cette syntax:
void XGSprite16x8(register int x asm("d0"),register int y asm("d1"), register void *GSprite asm("a0"));

puis asm("XG...: ...rts")

On m'a dit qu eje pouvais detruire d0,1,2 et a0,1...
ors ces fonctions marches tres bien sans le passage par registre.. et des que je l'utilise j'ai le droit a une belle adresse error!
Faut il preciser que je detruit a1,d2?

Merci
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

2

Normalement non...
J'espère qu'il n'y a pas de bogues à ce niveau.
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é

3

Verfiie que tu ne detruis pas d'autres registres.

4

Tu ne devrais pas utiliser 'int' dans tes programmes, mais short ou long (regarde l'option -mlong du compilateur)...
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

5

bon voila le probleme:
void _main(void)
	{
	void *Teste=NULL;
	void *fnt16=NULL;
	XGOn();
	Teste=XNewGPlan();
	XGPlanc(Teste);
	fnt16=XConvertFont8to16(feste,8,4,65);
	XCpyGPlanToLCD();
	XDestrFont16(fnt16);

//	XDrawChar16x8(0,0,'A',fnt16);

	ngetchx();	
	XGOff();
	XDestrGPlan(Teste);

}

ca marche
mais:
void _main(void)
	{
	void *Teste=NULL;
	void *fnt16=NULL;
	XGOn();
	Teste=XNewGPlan();
	XGPlanc(Teste);
	fnt16=XConvertFont8to16(feste,8,4,65);

XGSprite16x8(1,1,feste);
	XCpyGPlanToLCD();
	XDestrFont16(fnt16);

//	XDrawChar16x8(0,0,'A',fnt16);

	ngetchx();	
	XGOff();
	XDestrGPlan(Teste);

}

ca me met add error!
alors que:
void _main(void)
	{
	void *Teste=NULL;
	void *fnt16=NULL;
	XGOn();
	Teste=XNewGPlan();
	XGPlanc(Teste);
XGSprite16x8(1,1,feste);
	XCpyGPlanToLCD();

//	XDrawChar16x8(0,0,'A',fnt16);

	ngetchx();	
	XGOff();
	XDestrGPlan(Teste);

}

ca marche et que:
void * XConvertFont8to16(unsigned char *font8,short hauteur,short nbrchar,short char1)
{
		short 	Xsize=hauteur*4*nbrchar,i;
		unsigned short *font16;
		if(!(font16=malloc(Xsize+1)))	return NULL;
		memset(font16,0,Xsize+1);		
		for (i=0;i<Xsize/2;i++) font16[i+1]=((short)font8[i])<<8;
		font16[0]=char1;
		return font16;
}

void XDestrFont16(void *adrr ) {	free(adrr); }


Je comprend pas ou ca merde... surtout que j'utilise que les registre permis + d3 que je sauve et restaure a la fin...
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

6

Pourrais-tu poster (ou m'envoyer par mail) l'implémentation de XGSprite16x8, pour que je puisse tester d'où vient le problème s'il te plaît? Parce qu'avec "asm("XG...: ...rts")", je ne peux rien faire, il me faut le contenu des 3 points.
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

je te l'ai mailer... car on a pas le droit de poster des msg de plus de 5Ko
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

8

OK, et la déclaration (et initialisation) de feste? (C'est le dernier truc qu'il me faut pour pouvoir compiler et donc tester.)
[edit]Edité par Kevin Kofler le 15-04-2002 à 21:54:55[/edit]
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é

9

Mais je pense que le mieux est que tu m'envoies le projet entier que tu as compilé (avec tous les fichiers de la nouvelle version de _X_Lib, là, j'en ai récupéré plusieurs de l'ancienne pour pouvoir compiler), pour qu'on compile bien la même chose.
[edit]Edité par Kevin Kofler le 15-04-2002 à 22:01:30[/edit]
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é

10

J'ai trouvé l'erreur: tu ne sauvegardes que le word inférieur de d3, mais tu détruis le registre entier! Soit tu remplaces tes moveq par des move.w, soit tu sauvegardes d3.l en entier.
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é

11

Merdeeeeeee....
J'avais pas vu smile
dsl de vous avoir derange pour casmile
Merci Kevin Kofler
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!