Derniers sujets | » Numbers par Ver2guerre Dim 02 Avr 2023, 00:47
» Mort ? par godbod Dim 22 Aoû 2021, 12:23
» Network, essai 1 par godbod Dim 09 Juil 2017, 02:18
» GODBOD par godbod Sam 08 Juil 2017, 14:05
» 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
|
Qui est en ligne ? | Il y a en tout 17 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 17 Invités :: 1 Moteur de recherche Aucun Le record du nombre d'utilisateurs en ligne est de 367 le Dim 18 Oct 2009, 00:16 |
| | Auteur | Message |
---|
M@D_Doc amis
Nombre de messages : 437 Age : 34 Localisation : entre deux chaussettes sales Loisirs : Etudiant... / Humeur : :p items : o Personalized field : Réputation : 0 Points : 6694 Date d'inscription : 20/08/2007
Profil TI: 84+,92 TO: 200 Spécialité: aucune
| Sujet: 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 Oui, c'est un peu un rêve, mais sur PC... ça marche! |
| | | tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9434 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: 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) |
| | | M@D_Doc amis
Nombre de messages : 437 Age : 34 Localisation : entre deux chaussettes sales Loisirs : Etudiant... / Humeur : :p items : o Personalized field : Réputation : 0 Points : 6694 Date d'inscription : 20/08/2007
Profil TI: 84+,92 TO: 200 Spécialité: aucune
| Sujet: 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é... |
| | | AdRiWeB amis
Nombre de messages : 3655 Age : 31 Localisation : Juste sous mes cheveux Loisirs : Internet, programmation, TI, musique, tennis-de-table ... Humeur : ^^ items : o Personalized field : Réputation : 0 Points : 6275 Date d'inscription : 12/08/2007
Profil TI: TI-84 Plus, nspire CAS TO: 2429 {2} Spécialité: Basic z80
| Sujet: Re: compilo (suite) Dim 16 Sep 2007, 19:40 | |
| a transférer dans le bon topic ... ^^ |
| | | ProgVal modérateur
Nombre de messages : 4107 Age : 173 Localisation : In da cloud items : o Personalized field : Réputation : -4 Points : 6715 Date d'inscription : 09/08/2007
Profil TI: V200 - NSpire TO: 120 [2352 - 2%] Spécialité: Programmation web
| Sujet: 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... |
| | | tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9434 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: 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 |
| | | Contenu sponsorisé
| Sujet: Re: compilo (suite) | |
| |
| | | |
Page 1 sur 1 | |
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
|
|