1

Cette fonction existe-t-elle? Sur mon TiGcc 0.94 SP3 elle n'existe pas.

C'est pas trop dur à mettre en oeuvre mais bon... c'est une idée comme ça...
extern short OSContrastGet();

 xdef OSContrastGet
OSContrastGet:
 movem.l d1-d7/a0-a6,-(a7)
 moveq.l #4,d0
 trap #9
 move.b (a0),d0
 and.w #$FF,d0
 movem.l (a7)+,d1-d7/a0-a6
 rts

Je sais pas si ca marche, à cause de a7, ou si je sauve trop de registres.
Cours et tutos Asm: http://membres.lycos.fr/sirryl

2

Seuls d0 et a0 seront détruits, donc comme c'est une fonction pas la peine de sauver les registres.

3

Oui, tu sauves beaucoup trop de registres.

Version "C" de cette routine je n'ai pas sous la main la version C:
/*===========================================================================*/
/* Returns a pointer to the adress where is stored the contrast. */
/* This function is from TI-Chess. */
/*===========================================================================*/
volatile unsigned char *contrast(void);
asm("contrast: move.w #4,%d0;trap #9;rts");

Cette routine et plusieurs autres trucs touchant au contraste sont dans les pending updates de TIGCCLIB / la doc de TIGCC.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

4

On même utiliser une macro, la valeur du contraste est génèralement lue qu'une seule fois dans un programme.

#define CONTRAST ({unsigned char __contrast; \
asm ("moveq #4,%%d0; trap #9; move.b (%%a0),%0" \
: "=g"(__contrast) :: "d0","a0"); \
__contrast; })

5

Il n'y a pas de version C. On ne peut pas appeler un trap en C pur.
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é

6

Cool, merci!
Et à quand l'implémentation dans TiGcc?
Cours et tutos Asm: http://membres.lycos.fr/sirryl

7

> Il n'y a pas de version C. On ne peut pas appeler un trap en C pur.
Bien sûr, mais je voulais parler de ce que ExtendeD a posté. A peu de chose près (noms différent), c'est ce que j'ai mis dans le pending update pour la doc de TIGCC. J'avais oublié que j'avais la version C + ASM inline avec opérandes C dans le .hsf...
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.