30

Mr matthieu a raison, il faut soit dire que tu détruis ces registres (et je soupçonne que ziplib en détruit d'autres, d'ailleurs, donc il faut aussi en tenir compte), soit les restaurer à la main.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

31

houla dsl hibou j'avais pas bien lu tongue
j'ai compris comment elles fonctionnent toutes tes fonctions
mais je pige pas comment m'en servir....
je sais pas me servir de librairies statiques, quand je fais les include ca marche jamais
euh...

32

Pollux
: Mr matthieu a raison, il faut soit dire que tu détruis ces registres (et je soupçonne que ziplib en détruit d'autres, d'ailleurs, donc il faut aussi en tenir compte), soit les restaurer à la main.

S'il utilisait le passage par registres, tout serait plus simple (d0-d2/a0-a1 seraient automatiquement marqués détruits)!
http://tigcc.ticalc.org/doc/gnuexts.html#SEC99a
Je ne comprends pas pourquoi vous perdez tout ce temps avec l'assembleur inline! (Surtout vu que tous les morceaux d'assembleur inline postés dans ce topic sont incorrects!)
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é

33

34

bon ! là n'est pas le probleme ,
le probleme est :
quelle type de pointeur faut il founir à ZIPLiB ???
selon la doc de ziplib:
zipfile()
;
; Function: Compress or Extract a file
;
; Input: A0 = Pointer to file in the VAT
; D0.B = 0 disable commentary
; 1 semi-commentary (error displayed)
; else enable commentary (Windows, Confirmations,...)
;
; Output: D0.B = 0 no error
; 1 can't manipulate because file is archived
; 2 compressed file bigger than original
; 3 not enough memory
; 4 Program running
; NO OTHER REGISTERS DESTROYED // mister matthieu avait donc raison!
;---------------------------------------------------------------------------- ziplib::zipfile equ ziplib@0006

pointeur sur la fichier ds la vat, c bien vague non ?
, j'ai essayé tous les types qui suivent :
hsym avec SymFind (SYMSTR (nom))
unsigned char* avec SYMSTR(nom)
SYM_ENTRY *avec SymFindPtr(SYMSTR(nom),0)
void * avec HeapDeref(SymFindPtr(SYMSTR(nom),0)->handle)
ESI avec HToESI (SymFindPtr(SYMSTR(nom),0)->handle)

à chaque fois, on vois dans la status line : Extracting...
Extracting...
et puis soit preos intercepte un crash soit la ti plante , desfois l'erreur est : protected memory violation d'autre fois rien du tou

pour mon progr
j'ai fait comme a dit kevin. la structure generale du programme est correct : j'ai testé sans faire appel à ziplib pour modifier a0 et d0
mais ca coince au niveeau du ziplib !!!
#define USE_KERNEL
#include <tigcclib.h>
#define ret(arg) {ST_helpMsg (mess[arg]);ngetchx();return;}
short zipdo(/*qu'est ce qu'il fô mettre ici ?? */ a asm("a0"), short d asm("d0") )
{
asm("jsr ziplib__0006");
short *d2=malloc(sizeof(short))
d2=d;
return d2;
}
void zipcall(char *nom)
{	
char mess[5][35]={"fichier compressé!","fichier archivé","le fichier compressé est plus gros","pas assez de memoire","fichier introuvable"};
if(strlen(nom)>18)ret(4);  
ret(zipdo(/*que faut 'il mettre ici???*/,1));
}
void _main(void)
{
char *nom=NULL;
MoveTo(3,50);
scanf("%s",nom);
zipcall(nom);	
}


ca commence vraiment à me souler cette librairie gol jcrois que je vais elaborer mon propre algorithme de compression ca sera plus simple gol
euh...

35

essaye HeapDeref(SymFindPtr(SYMSTR(nom),0)->handle)+2 si çamarche pas sans le +2...

et il faut HLock() et HeapUnlock(), si ziplib::zipfile alloue de la mémoire (sinon, crash aléatoire)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

36

bidoo
: j'ai fait comme a dit kevin

Non, tu as fait absolument n'importe quoi.
Ton assembleur inline est toujours incorrect et il ne faut pas d'assembleur inline. Même pas une ligne!
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é

37

euh t sympa kevin mais ... tu peux EXPLIQUER et donner un ou des exemples ce serait sympathique ...
packe tu veux que je fasse comment le jsr ziplibmachin????
avec des pteur et && ??

euh...

38

Évite les grosses polices.
Essaie l'idée de Pollux.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

39

ca y'est les mec g trouvé !
euh...

40

C'est quoi ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

41

en fait c tou con mais VRAIMENT tou con :
#include <kernel.h>
void __main(void)
{
ziplib_zipfile(SymFindPtr(SYMSTR("main\che"),0), '1');
}

moa je dis Kernel powaaaaa! (et pPhD powaaaa!)
euh...

42

en fait j'avais jamais pensé a lire kernel.h
je pensais que tout se trouvait ds ziplib.c
trisotfl
euh...

43

À mon avis, le '1' est incorrect, c'est 1 qu'il faut mettre.
Mais je croyais, d'après ton post ./34 que tu avais déjà essayé avec un SYM_ENTRY *. trifus
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

44

non c un char qu'il fô mettre !
et oui j'ai essayé plein de fois de le faire meme !
mais en fait y fallait juste faire ca :

#define	ziplib_zipfile	ziplib__0006
char	ziplib_zipfile(SYM_ENTRY *sym asm("a0"), char comment asm("d1"));

et en fait c d1 et pas d0
pas de jsr, rien!
kevin tu avais raison !
mais qqun aurai pu nous le dire c pas sympa gol
euh...

45

Tu devrais revoir tes bases de C. Un char représente une taille de données, pas un "caractère".
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

46

Extrait de ziplib.h :
;----------------------------------------------------------------------------
; zipfile()
;
; Function: Compress or Extract a file
;
; Input: A0 = Pointer to file in the VAT
; D0.B = 0 disable commentary
; 1 semi-commentary (error displayed)
; else enable commentary (Windows, Confirmations,...)
;
; Output: D0.B = 0 no error
; 1 can't manipulate because file is archived
; 2 compressed file bigger than original
; 3 not enough memory
; 4 Program running
; NO OTHER REGISTERS DESTROYED
;---------------------------------------------------------------------------- ziplib::zipfile equ ziplib@0006
Donc à priori, c'est d0, et c'est un nombre.
Après vérification avec les sources, c'est ça.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

47

ce que j'ai ecrit provient de KERNEL.h de la doc de preos (powaa! ) ecrite par phhpphd
t'a ka essayer avec des nombre pour voir ... mur
et c'est une erreur : c pas d0 c d1 !!!!!!
c pour ca que je me prend la tete depuis le debut de ce topic
euh...

48

et puis surtout je viens de compresser tout un tas de fichier sur ma calc avec ca
donc voila ...
euh...

49

Effectivement, dans kernel.h il est écrit que le paramètre doit être passé dans d1...
Bizarre, cela ne correspond pas avec les sources de ziplib fournies dans le même zip de preos. confus
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

50

bidoo :
euh t sympa kevin mais ... tu peux EXPLIQUER et donner un ou des exemples ce serait sympathique ...
packe tu veux que je fasse comment le jsr ziplibmachin???? avec des pteur et && ??

Ben:
#define zipfile ziplib__0006
unsigned char zipfile(SYM_ENTRY *psym asm("a0"), unsigned char commentary asm("d0" /* kernel.h says "d1", but that's nonsense! */));

tout simplement, je ne vois pas la difficulté! As-tu lu la doc???

(Et bon, je vois que tu as déjà trouvé. (Il y a effectivement la même déclaration dans kernel.h.))
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é

51

Et je te déconseille fortement d'utiliser kernel.h, ce header fait joujou avec _main d'une manière pas propre du tout et qui risque fort de tout faire foirer avec chaque mise à jour de TIGCC. J'ai demandé plusieurs fois à PpHd d'arrêter de faire mumuse avec nos symboles système et d'utiliser les méthodes propres, mais il a refusé. La seule méthode officiellement supportée pour le kernel est de définir USE_KERNEL dans les options du projet.

Et les librairies dynamiques ne sont pas supportées par TIGCCLIB, donc il faut que tu les déclares toi-même comme indiqué dans le ./50 (ou alors tu fais un copier-coller de la déclaration de kernel.h).
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é

52

./50 Non, dans kernel.h, c'est d1 au lieu de d0 !
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

53

Oui, parce que la doc de ziplib est fausse... (Une raison de plus de ne pas utiliser des librairies kernel! Il y a complib, pourquoi pas l'utiliser?)

EDIT: Erreur, c'est kernel.h qui est faux, ce qui renforce encore plus mon ./51.
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é

54

C'est clair, arrêtez d'utiliser les librairies kernel, leurs docs sont fausses !

Kevin> Cependant, la doc de ziplib (ainsi que ziplib.h) sont en accord avec les sources de la lib. Il n'y a que le header kernel.h qui dit autre chose (mais qui apparamment fonctionne).
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

55

Donc c'est un bogue de kernel.h! Bref, une raison de plus de ne pas l'utiliser...
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é

56

Clairement...
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

57

C'est ironique? Tu penses sérieusement qu'il soit sage d'utiliser un header bogué? roll
Et je rappelle une fois de plus qu'il y a des problèmes encore plus graves que celui-ci avec ce header. S'il marche avec TIGCC 0.95, c'est par pur hasard, vu qu'il n'est pas du tout compatible avec notre système de code de démarrage.
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é

58

59

tu arrêtes d'utiliser des arguments pourris et facilements retournables contre toi pour lancer des TROLLS ? Tu te calmes ou tu dégages Kevin.
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

60

./57> Bien sûr que non !
Mais il est plus sage de reporter le bug... roll
Ça vous est arrivé des tonnes de fois, de fournir un TIGCC buggé, et pourtant tu encourages son utilisation.
Un autre exemple est ExtGraph 2.x que tu encourages à utiliser (parce que tu ne peux pas vraiment encourager l'utilisation d'ExtGraph 1.02) alors qu'elle est buggée.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »