Ya des erreurs d'écriture dans shrnklib.asm. Visiblement, ça viendrait pas de là, mais j'ai déjà eu des grosses surprises à cause d'A68k qui acceptait d'assembler ces instruction inavlides (strictement) et qui pondait de la merde. Alors si tu veux bien :
--- shrnklib.asm~ 2009-05-23 14:49:00.000000000 +0200
+++ shrnklib.asm 2009-05-23 14:49:00.000000000 +0200
@@ -114,7 +114,7 @@
;; align input address on even address; /
move.l a2,d1
addq.l #1,d1
- bclr.b #0,d1
+ bclr.l #0,d1
movea.l d1,a2
;; ***** Create Archive Descriptor,Containing the Huffman Tree; /
@@ -226,7 +226,7 @@
blt.s \SameByte
move.b (a2)+,d0 ; read new byte,begin again with bit #0
clr.b d1
-\SameByte: btst.b d1,d0 ; test bit -- set zero flag accordingly
+\SameByte: btst.l d1,d0 ; test bit -- set zero flag accordingly
rts
;; *************************************************************************************************
@@ -246,7 +246,7 @@
\ReadLoop: add.l d6,d6 ; create space for a new bit in d6 (initialized to zero)
bsr.s ReadBit ; read a bit
beq.s \__ZeroBit ; set new bit in 'd6' accordingly
- bset.b #0,d6
+ bset.l #0,d6
\__ZeroBit: dbra d7,\ReadLoop
rts
@@ -311,7 +311,7 @@
;; read a Huffman code; /
move.w (a3),d7 ; d7 = relative pointer to root element
-\__HuffLoop: bclr.w #15,d7 ; if bit #15 in "address" is set -> it is a leaf; d7 contains the code
+\__HuffLoop: bclr.l #15,d7 ; if bit #15 in "address" is set -> it is a leaf; d7 contains the code
bne.s \__HuffDone ; d7 points to current element; (d7) = left branch 2(d7) = right branch
bsr.s ReadBit
beq.s \____Left ; continue with left branch
(puis c'est tellement plus beau l'assembleur bien strict, plutôt que ce genre de cochonneries qui ne veulent en fait rien dire

)