En effet quand je lance mon programme, avant de faire le bench, j'efface l'ecran avec clrscr..et j'affiche une phrase (bench go) or il se trouve que: soit l'ecran ne s'efface pas , soit il s'efface qu'a moitie soit il sefface completement.. et la phrase, niette..
bisard non...
voici l'extrait de la source:
INT_HANDLER oldint7 = NULL;
INT_HANDLER oldint6 = NULL;
INT_HANDLER oldint5 = NULL;
volatile int mseconds50 =0;
volatile short count;
DEFINE_INT_HANDLER (myint5handler) { mseconds50--;}
DEFINE_INT_HANDLER (myint7handler) { }
DEFINE_INT_HANDLER (myint6handler) { }
unsigned short vaisseau[]={ 0x180, 0x180, 0x240, 0x240, 0x240, 0x240, 0x5A0, 0x7E0, 0xBD0, 0x2BD4, 0x33CC, 0x27E4, 0x4C32, 0xD99B, 0xDA5B, 0x7C3E};
//sprite teste
unsigned char S8[] = {
170,170,
//...
170,170
};
void bench()
{
unsigned long k=0;
clrscr();
DrawStr(0,90,"Bench GO!",A_NORMAL);
oldint5 = GetIntVec(AUTO_INT_5);
SetIntVec(AUTO_INT_5, myint5handler);
oldint6 = GetIntVec(AUTO_INT_6);
SetIntVec(AUTO_INT_6, myint6handler);
oldint7 = GetIntVec(AUTO_INT_7);
SetIntVec(AUTO_INT_7, myint7handler);
asm("
movem.l %d0,-(%a7)
move.w #400,%d0
TRAP #1
movem.l (%a7)+,%d0
")
Teste=XNewGPlan();
XClrGPlan(Teste);
k=0; mseconds50 =20;
while (mseconds50)
{
/////////////////////////////////////////
XGSprite16x16(0,20,S8,Teste);
/////////////////////////////////////////
k++;
k++;
}
printf_xy(10,0,"R1: %ld /s",k);
k=0; mseconds50=20;
while (mseconds50)
{
/////////////////////////////////////////
XGSprite16x16(14,20,S8,Teste);
/////////////////////////////////////////
k++;
}
printf_xy(10,10,"R2: %ld Sp",k);
k=0; mseconds50=20;
while (mseconds50)
{
/////////////////////////////////////////
XGSprite16x16(20,40,S8,Teste);
/////////////////////////////////////////
k++;
}
printf_xy(10,20,"R3: %ld Sp",k);
k=0; mseconds50=20;
while (mseconds50)
{
XGSpriteM16x16(26,80,S8,Teste);
k++;
}
printf_xy(10,30,"R3: %ld Sp",k);
ngetchx();
// for (k=0;k<17;k++) XGSpriteM16x16(k,k,S8,Teste);
// XGSpriteM16x16(10,19,S8,Teste);
for (k=0;k<239;k++) XPxlPut(k,125,12,Teste);
XCpyGPlanToLCD(Teste);
SetIntVec(AUTO_INT_5, oldint5);
SetIntVec(AUTO_INT_6, oldint6);
SetIntVec(AUTO_INT_7, oldint7);
asm("
movem.l %d0,-(%a7)
clr.w %d0
TRAP #1
movem.l (%a7)+,%d0
")
XDestrGplan(Teste);
ngetchx();
}
Si qqn peut m'expliquer ce myster....

