Forum tama's team

cp: ne peut évaluer `brain': Aucun fichier ou dossier de ce type
AccueilPortailGalerieCalendrierFAQRechercherS'enregistrerMembresGroupesConnexion
Connexion
Nom d'utilisateur:
Mot de passe:
Connexion automatique: 
:: Récupérer mon mot de passe
Derniers sujets
» Network, essai 1
par godbod Dim 09 Juil 2017, 02:18

» GODBOD
par godbod Sam 08 Juil 2017, 14:05

» Numbers
par godbod Sam 08 Juil 2017, 13:54

» Mort ?
par godbod Sam 08 Juil 2017, 13:47

» mon humeur
par Ver2guerre Sam 30 Juil 2016, 19:44

» [A voir] Programme de traduction original : WikiTranslate
par AdRiWeB Lun 01 Fév 2016, 04:50

» Reprise ?
par Emyl Jeu 14 Juin 2012, 21:17

» Euh, ah ?
par Ver2guerre Dim 27 Mai 2012, 12:11

» Problème TI 89 Titanium non visible après mise à jour
par abdoukid Mer 23 Mai 2012, 13:37

» Y'a quelqu'un ?
par Ver2guerre Sam 21 Avr 2012, 23:10

Quick message
Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité :: 1 Moteur de recherche

Aucun

Le record du nombre d'utilisateurs en ligne est de 367 le Dim 18 Oct 2009, 00:16

Partagez | 
 

 compilo (suite)

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
M@D_Doc
amis
amis
avatar

Nombre de messages : 437
Age : 28
Localisation : entre deux chaussettes sales
Loisirs : Etudiant... /
Humeur : :p
items : o
Personalized field :
Réputation : 0
Points : 4371
Date d'inscription : 20/08/2007

Profil
TI: 84+,92
TO: 200
Spécialité: aucune

MessageSujet: Re: compilo (suite)   Dim 16 Sep 2007, 19:11

Ben... pour l'instant, c'est sur PC.... Et pour le mettre sur TI, ce sera une autre paire de manches... déjà arriver à réduire la taille du compilateur... qui prend actuellement 8Mo Sad
Oui, c'est un peu un rêve, mais sur PC... ça marche!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
tama
Admin
Admin
avatar

Nombre de messages : 12375
Age : 26
Localisation : DTC ? :triso:
Humeur : =)
items : o
Personalized field : huh ? oO
Réputation : 3
Points : 7110
Date d'inscription : 08/08/2007

Profil
TI: 84+, 89 tita, 89 tita
TO: infini :p
Spécialité: C 68k

MessageSujet: Re: compilo (suite)   Dim 16 Sep 2007, 19:16

aïe ! 8 Mo c'est énorme tu te serais pas trompé ? (c'est plus de 3 fois la taille de la mémoire de la 89 tita)

_________________


Revenir en haut Aller en bas
Voir le profil de l'utilisateur
M@D_Doc
amis
amis
avatar

Nombre de messages : 437
Age : 28
Localisation : entre deux chaussettes sales
Loisirs : Etudiant... /
Humeur : :p
items : o
Personalized field :
Réputation : 0
Points : 4371
Date d'inscription : 20/08/2007

Profil
TI: 84+,92
TO: 200
Spécialité: aucune

MessageSujet: Re: compilo (suite)   Dim 16 Sep 2007, 19:26

justement... Sur PC c'est rien.... mais ça rentre pas sur une TI... c'est le problème que mathieu essaye de régler en ce moment.... Mais bon, c'est pas gagné...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
AdRiWeB
amis
amis
avatar

Nombre de messages : 3655
Age : 25
Localisation : Juste sous mes cheveux
Loisirs : Internet, programmation, TI, musique, tennis-de-table ...
Humeur : ^^
items : o
Personalized field :
Réputation : 0
Points : 3952
Date d'inscription : 12/08/2007

Profil
TI: TI-84 Plus, nspire CAS
TO: 2429 {2}
Spécialité: Basic z80

MessageSujet: Re: compilo (suite)   Dim 16 Sep 2007, 19:40

a transférer dans le bon topic ... ^^
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.adriweb.net
ProgVal
modérateur
modérateur
avatar

Nombre de messages : 4107
Age : 167
Localisation : In da cloud
items : o
Personalized field :
Réputation : -4
Points : 4392
Date d'inscription : 09/08/2007

Profil
TI: V200 - NSpire
TO: 120 [2352 - 2%]
Spécialité: Programmation web

MessageSujet: Re: compilo (suite)   Dim 16 Sep 2007, 19:41

Euh, tu peux utiliser des algos de compressions comme ZipLib ou Komp.
Code:
            struct hArbre  *arbre, *debut, *lecture;
            unsigned char  *tampon, *n2, *limite, *limite2;
            short          chemin[512];
            short          nbre1 = 0, nbre2 = 0, mode;
            unsigned short  val, longueur;
            unsigned long  bit = 0;

            arbre = HeapDeref(handle = HeapAllocHigh(512 * sizeof(struct hArbre)));
            str += 5;
            nam = get_ptr(entry = get_entry(str));
            if (nam != NULL && handle != H_NULL)
            {
                longueur = var_len(nam);
                limite = nam + longueur - 1;
                if (memcmp(limite - 5, "KOMP", 5) != 0)
                {
                    if ((tampon = malloc(longueur + 250)) == NULL)
                    {
                        int_add(3);
                        goto Fini;
                    }
                    if (longueur < 17)
                    {
                        int_add(2);
                        goto Fini;
                    }

//                  HeapLock(*(unsigned short*)(tampon-2)) ;
                    *(unsigned short *)tampon = *(unsigned short *)nam;
                    tampon[2] = *limite;

                    memset(chemin, 0, 1024);
                    for (n = nam + 2; n < limite; n++)
                        chemin[*n]++;
                    for (i = 0; i < 256; i++)
                    {
                        val = chemin[i];
                        nbre1 += (val && val < 256);
                        nbre2 += (val >= 256);
                    }
                    mode = nbre2 != 0 ? 2 : 1;
                    if (nbre1 + 2 * nbre2 < 255 * mode)
                        mode = 0;

                    tampon[3] = mode;
                    n2 = tampon + 4;
                    if (mode)
                    {
                        for (i = 0; i < 256; i++)
                        {
                            val = chemin[i];
                            *n2++ = val;
                            if (mode == 2)
                                *n2++ = val >> 8;
                        }
                    }
                    else
                    {
                        *n2++ = nbre2;
                        *n2++ = nbre1;
                        for (i = 0; i < 256; i++)
                        {
                            if ((val = chemin[i]) > 255)
                            {
                                *n2++ = i;
                                *n2++ = chemin[i] >> 8;
                                *n2++ = val;
                            }
                        }
                        for (i = 0; i < 256; i++)
                        {
                            val = chemin[i];
                            if (val && val < 256)
                            {
                                *n2++ = i;
                                *n2++ = val;
                            }
                        }
                    }

                    arbre_to_tab(mk_arbre(arbre, tampon + 3), 0, 0, (unsigned long *)chemin);

                    j = 0;
                    limite2 = tampon + longueur - 10;
                    for (n = nam + 2; n < limite; n++)
                    {
                        bit += (unsigned long)(chemin[2 ** n + 1]) << j;
                        j += chemin[2 ** n];
                        while (j >= 8)
                        {
                            if (n2 >= limite2)
                            {
                                int_add(2);
                                goto Fini;
                            }
                            *n2++ = bit;
                            bit >>= 8;
                            j -= 8;
                        }
                    }
                    if (j > 0)
                        *n2++ = bit;

                    longueur = n2 - tampon;
                    nam = mk_perso_ptr(str, "KOMP", longueur + 9);
                }
                else
                {
                    longueur = var_len(nam + 2) - 2;
                    if ((tampon = malloc(longueur)) == NULL)
                    {
                        int_add(3);
                        goto Fini;
                    }
//                  HeapLock(*(unsigned short*)(tampon-2)) ;
                    debut = mk_arbre(arbre, nam + 5);
                    n = nam + 6 + 256 * (nam[5] == 1) + 512 * (nam[5] == 2) + (3 * nam[6] + 2 * nam[7] + 2) * (nam[5] == 0);
                    n2 = tampon;
                    j = 0;
                    while (n2 - tampon < longueur - 1)
                    {
                        lecture = debut;
                        do
                        {
                            if (j == 0)
                            {
                                nbre1 = *n++;
                                j += 8;
                            }
                            val = nbre1 % 2;
                            nbre1 >>= 1;
                            j--;
                            if (val == 0)
                                lecture = lecture->gauche;
                            else
                                lecture = lecture->droite;
                        }
                        while (lecture->gauche != NULL || lecture->droite != NULL);
                        *n2++ = lecture->valeur;
                    }
                    *n2 = nam[4];
                    nam = mk_ptr(str, longueur + 2);
                }

                if (nam != NULL)
                {
                    memcpy(nam, tampon, longueur);
                    int_add(0);
                }
                else
                    int_add(3);
              Fini:
                if (tampon != NULL)
                    free(tampon);
            }
            else
                int_add(1);
            HeapFree(handle);
        }

        else if (strncmp(str, "kinfo:", 6) == 0)
        {
            nam = get_ptr(get_entry(str + 6));
            if (nam != NULL)
            {
                if (memcmp(nam + var_len(nam) - 6, "KOMP", 5) == 0)
                {
                    int_add(nam[4]);
                    int_add(var_len(nam + 2));
                }
                else
                    int_add(0);
            }
        }
        if (GetArgType(arg) == LIST_TAG)
            SkipArg((ESQ *) arg);
    }

    nam = mk_ptr("fl", 5003 - Num);

    *nam = 0xE5;
    memcpy(nam + 1, Retour + Num + 1, 4999 - Num);
    nam[5000 - Num] = 0xD9;

PS: Je rassure tout le monde, ça vient pas de moi, c'est FLib2...

_________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur https://progval.net
tama
Admin
Admin
avatar

Nombre de messages : 12375
Age : 26
Localisation : DTC ? :triso:
Humeur : =)
items : o
Personalized field : huh ? oO
Réputation : 3
Points : 7110
Date d'inscription : 08/08/2007

Profil
TI: 84+, 89 tita, 89 tita
TO: infini :p
Spécialité: C 68k

MessageSujet: Re: compilo (suite)   Dim 16 Sep 2007, 19:43

héhé je l'avais deviné avant la fin du code :p
mais c'est HS là donc je vais déplacer les messages HS

_________________


Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: compilo (suite)   

Revenir en haut Aller en bas
 

compilo (suite)

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum tama's team :: Dead corner :: Archives :: Archives 2008 :: M@D_Doc-
Créer un forum | © phpBB | Forum gratuit d'entraide | Contact | Signaler un abus | Forumactif.com