60

trap #1 est une manière sale d'appeler OSSetSR (en fait, ça appelle le trap utilisé en interne par OSSetSR).


 move.w #$700,d0
 trap #1

<=>
OSSetSR(0x700);


 clr.w d0
 trap #1

<=>
OSSetSR(0);
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é

61

Kevin>Ca doit être pour ca que dans la dernière version de ziplib, ca a changé...

j'ai fini de "décripter" ziplib : résultat, c'est pas du tout compatible avec komp de françois Lieber... à part que c'est de la compression à base du codage de Shannon...
Après KOMP utilise l'arbre de huffman.
Pour ziplib je pense aussi : mais j'ai un doute : à un moment, il trie son tableau de fréquence : pour que ca marche bien, il faut qu'il trie par ordre croissant : ce serait alors bel et bien du huffman.
Mais quand je regarde les sources, j'ai l'impression qu'il trie dans l'ordre décroissant: voici le passage délicat... Creation_freq:      move.w          #$FFFF,d2      clr.w          d3      clr.w          d0 Recherche_Freq:      move.w          0(a0,d0.w),d4  ;nb de freq      tst.w          d4    ;nb==0  ?      beq          Plus_petite      cmp.w          d4,d2 ;d4<=d2 ?      bls          Plus_petite      move.w          d0,d3      ;on enregistre le no de caract      move.w          d4,d2  ;on enregistre ce max Plus_petite:      addq.w          #2,d0   ;d0+=2 : au suivant      cmp.w          #$200,d0 ;512 : on a tout comparer ?      bne          Recherche_Freq ;non      tst.w          0(a0,d3.w)  ;le max est à 0 ?      beq          Fin_de_Creation_Freq ;fini      clr.b          (a1)+  ;premier byte=0      move.w          d3,d4      lsr.w          #1,d4 ;d4/=2      move.b          d4,(a1)+  ;on ecrit le no du caract                move.w          0(a0,d3.w),(a1)+  ;on ecrit sa freq      clr.w          0(a0,d3.w)    ;on l'efface      bra          Creation_freq Fin_de_Creation_Freq:
j'y ai ajouté mes propres commentaires : où est mon erreur ? parceque sinon, j'ai rien compris à toute la source de ziplib triso

62

arrg! mon site est down! je suis en train de le mettre à jour. Il faut absolument que j'accède à ma base de donnée pour pouvoir le mettre en ligne (sinon y'aura plein de couille) et je peux pas accéder à ma base de donnée mad
j'aurais pu annoncé une nouvelle version ... mais non tongue

63

Après avoir classé dans l'ordre décroissant, il doit traîter le tableau en partant de la fin plutôt que du début. À part ça, l'ordre du classement ne change rien.
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é

64

Si il part bien du début du tableau ! Ou alors j'ai pas compris non plus à ce passage...
voici la suite immédiate: Fin_de_Creation_Freq:      move.w       tab_handle2(PC),-(a7)       jsr              doorsos::HeapFree      move.l          #$3FC,-(a7)      jsr          doorsos::HeapAlloc  ;alloue 1020 octets      addq.l          #6,a7      move.w          d0,-(a7)      jsr          doorsos::HeapLock      addq.l          #2,a7      move.w          d0,noeuds_h      doorsos::DEREF     d0,a1      move.l          a1,noeuds_a      clr.l          d6                    ;d6 = arbre en construction      move.w          nLenght,d7               ;d7 = nombre de branches -1      move.l          freq_a,a0      cmp.w          #2,d7  ;deux caract différents seulement ?      beq          bi_octet      subq.w          #1,d7 ;d7-- Creation_des_noeuds:      move.w          (a0)+,(a1)+ ;copie du no de caract         ;prend les deux plus gd  ?????      move.w          (a0)+,d0   ;copie de sa freq      move.w          (a0),(a1)+  ;copie du no de caract suivant      add.w          2(a0),d0   ;somme leur freq      subq.b          #1,d7  ;d7--      clr.b          d2      clr.w          d3 Rang_Boucle:      cmp.w          6(a0,d3.w),d0           ;compare freq suivant avec freq1+freq2                     bls          Bien_ranger  ;elle est <=      move.l          4(a0,d3.w),0(a0,d3.w)  ;copie de no+freq    ;retrie: déplace le suivant vers le début      addq.b          #1,d2  ;no du l'étage      addq.w          #4,d3 ;adrr      cmp.b          d2,d7  ; >=               ; .B ?      bhi          Rang_Boucle ;on va plus loin encore Bien_ranger:      move.w          d6,0(a0,d3.w) ;met un no du noeud        bset.w          #15,0(a0,d3.w) ;met le bit de poid fort à 1      move.w          d0,2(a0,d3.w) ;met la freq      add.w          #1,d6     ;noeud++           cmp.w          #1,d7  ;encore des caract ?      bne          Creation_des_noeuds          ; d6 = nb de noeuds
Le huffman consiste à créer son tableau à partir du bas : donc à partir des caractères les moins fréquents...
J'interprète peut-être mal la création de l'arbre... il fait peut-être du Shannon-Fano...? Mais ca ma parait louche...hum
Y'a comme qui dirait une couille dans le potage smile

65

En plus, il y a des trucs incorrects en ASM dans le source de ziplib ! C'est vraiment la daube !
(je parle de bset.w qui n'existe pas pour un registre, c'est bset.l).
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

66

Ca y est , mon site remarche : Free dixit
Il se peut qu'un serveur soit momentannement indisponible, tentez alors
de vous reconnecter plusieures fois pour etre redirigé vers un serveur
qui fonctionne.

Donc ma nouvelle version de Hib-Text est disponible top
NOSTUB POWA wink

67

bien ... smile

68

top

Comme ça les gens (pas moi!) qui utilisent leur calculatrice pour tricher pourront eux-aussi se débarasser des kernels. tongue

Je sens la fin de l'ère des kernels...
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é

69

.. et tu te trompe smile
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

70

Oué, vive les kernel !!!! grin

Nan, je dis ça mais je prog en nostub. smile toutefois je n'ai vraiment rien contre les kernels, et je vois pas pourquoi vouloir les supprimer est une obscession pour vous.
Vous en avez pas sur votre calto, ben voilà, pas de quoi faire la guerre à ceux qui en ont smile
Non-Webmaster et non-programmeur du site. .Pour tout probleme ou question ,débrouillez vous avec les Webmasters .

«- Pas Moo ! ^^

71

kevin> ce n'est pas de la triche (en france en tt cas ..)

72

Faut que tu te calmes Kevin tu deviens parano, et tu me commences à être lourd avec tes remarques à la con (un peu comme la mienne grin).
polite