Peut-on encore optimiser cette routine ?
sachant que le addq.w d3,a0 est nécessaire pour avoir 8 cycles d'attente
BIT macro
clr.b (a1) ;CK<-1
adda.w d3,a0 ;ne fait rien, remplace 2 nop -> 8 cycles
move.b d5,(a1) ;CK<-0
move.b (a1),d1
lsr.b #3,d1
roxr.b #1,d4
endm
;d0.w nombre d'octets à recevoir
;(a0) buffer
Receive:
lea $60000E,a1
moveq #%10,d5
moveq #0,d3
\wait btst #2,(a1) ;attend D=1 (PIC prêt)
bne \wait
\byte BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
not.b d4
move.b d4,(a0)+
dbra d0,\byte
rts