Comment obtenir la valeur du contraste avec une routine C ?
On ne peut pas. Il faut appeler un trap, donc on a besoin d'assembleur inline.
rah, merde!
Tu as la routine ASM sous la main Kevin ?
Je suis pas tip-top en ASM, mais je px me débrouiller avec...
Zeph Le 16/03/2003 à 23:27 Ce n'est pas la même routine. Et celle que j'ai posté, c'est PpHd qui me l'a donnée, et elle est plus optimisée ce que celle que tu as postée.
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
guilc Le 17/03/2003 à 00:38 ben c normal, elle sauvegarde pas les registres...
A mon avis, si Tn sauvegarde d1 et d0, il doit y avoir une raison...
Après, on gagne ptet un peu avec le moveq a la place du move.w, mais la routine est appelée une fois en principe, donc le gain est pas très utile...
La sauvegarde de %d0 et de %d1 n'est pas nécessaire, parce que ces registres sont dans la classe "call-clobbered" (%d0-%d2/%a0-%a1).
Zeph Le 17/03/2003 à 16:24 Bref la routine de PpHd est préferable.
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
#define OSContrastAddress ({unsigned char* __addr; asm volatile ("moveq #4,%%d0; trap #9; move.l %%a0,%0": "=a"(__addr):: "d0","a0"); __addr; })
#define OSContrastValue *OSContrastAddress