Génial ça marche !!!

#if defined TL_DELAY
char __FASTCALL__ TL_delay(unsigned int delay){
#asm
; delay = ~1 ms (without interrupts and depending of the temperature/battery state !)
; 1 z80 cycle (= 4 T-states) at 6 MHz = ~664 ns
; 1 z80 T-state at 6 MHz = ~166 ns
TL_delay:
ld b,186 ; 7 T-states (1162 ns)
TL_delay_loop:
sub a,(ix+0) ; 19 T-states (3154 ns)
djnz TL_delay_loop ; 13 T-states (2158 ns) if nz, else 8 T-states (1328 ns)
dec hl ; 6 T-states (996 ns)
ld a,h ; 4 T-states (664 ns)
or a ; 4 T-states (664 ns)
jr nz,TL_delay ; 12 T-states (1992 ns) if nz, else 7 T-states (1162 ns)
ld a,l ; 4 T-states (664 ns)
or a ; 4 T-states (664 ns)
jr nz,TL_delay ; 12 T-states (1992 ns) if nz, else 7 T-states (1162 ns)
; ret ; 10 T-states (1660 ns)
#endasm
}
#endif
Si le paramètre delay=0 ou 1 (=hl), la routine prend environs 1162+186(3154+2158)+1328+996+4*64+2*1162+1660=995758 ns soit 0.9 ms et environs 1 ms autrement.
Petit screen pour prouver que ça marche (j'ai comparé avec un chronomètre) :

Le code :
#pragma string name test
#include "..\devtest\ti83p.h"
#include "..\devtest\tilib.c"
char main(){
unsigned char i;
for(i=0; i<10; i++){
C_bcall(_cleargbuf);
TL_put_val(0, 0, i);
TL_gbuf_to_lcd();
TL_delay(1000);
}
}
Je vais pouvoir commencer à porter quelques petits jeux avec toutes ces routines

D'ailleurs je trouve que certaines ont des noms assez peu explicites, non ? Peut-être vaudrait-il mieux appeler les sprites bitmaps ? Et je n'arrive pas à trouver un meilleur nom à la routine "TL_put_val".
(Purée mon screenshot de la sprite clippée a encore été supprimé

Je le referais plus tard).