Bon j'essaye de deviner la signification du code de Lionel et de l'améliorer

(je suppose que si tu mets des 0 c'est parce que le move.b ne modifie pas l'octet du haut ? edit : cross ^^)
moveq #0,d0
move.b (a2)+,d0
lsl.w #4,d0 | A * 16
moveq #0,d1
move.b (a2)+,d1 | B
move.b (a2)+,d0 | donc si j'ai bien compris ça fait A * 16 + C
[edit : en fait non, il faudrait que ça soit 256 pour que ça marche, pas 16 :D]
lsl.w #2, d1 | B * 4
add.w d1,d0 | A * 16 + B * 4 + C
andi.w #0x0FFF,d0
lsl.w #2,d0
lea 0(a6,d0.w),a1
Et hop !
edit : ah non merde 16 c'est un demi-octet seulement

(j'oublie toujours qu'un octet = DEUX chiffres hexa

)