1

Pour le prochain concours Ti-Basic, le sujet sera probablement un Shell.
Etant donné qu'il y a toujours des réfractaires à Flib / Vertel, il leur faut quand même une chaine EXEC pour obtenir la liste des dossiers et fichiers de la Ti.

Donc je fais le prog, il marche très bien, mais une fois converti en chaine EXEC il plante systématiquement (ADRESS ERROR). Pourquoi ???
#define USE_TI89 #define USE_TI92PLUS #include <tigcclib.h> void _main(void) { SYM_ENTRY *sym_var; ESI esi_elm; char tbl_nam[18]={},*tbl_rtr[1000],*chr_nam=(char*)"*"; int int_rtr=0,int_typ=0; sym_var=SymFindPtr($(name),0); if(peek(esi_elm=HToESI(sym_var->handle))==217)  {  esi_elm--;  if(GetArgType(esi_elm)==STR_TAG) chr_nam=(char*)GetStrnArg(esi_elm);  else esi_elm=next_expression_index(esi_elm);  if(GetArgType(esi_elm)==POSINT_TAG) int_typ=GetIntArg(esi_elm);  } sym_var=!strcmp(chr_nam,"*")?SymFindFirst(NULL,4):SymFindFirst(strcpy(tbl_nam+1,chr_nam)+strlen(chr_nam),1); while(sym_var)  {  if(!strcmp(chr_nam,"*") || !int_typ || (*(unsigned char*)HToESI(sym_var->handle))==int_typ) tbl_rtr[int_rtr++]=(char*)(sym_var->name);  sym_var=SymFindNext();  } esi_elm=top_estack; push_quantum(END_TAG); for(int_typ=int_rtr;int_typ>0;int_typ--) push_ANSI_string(tbl_rtr[int_typ-1]); push_quantum(LIST_TAG); sym_var=DerefSym(SymAdd($(list))); chr_nam=(char*)HeapDeref(sym_var->handle=HeapAlloc(top_estack-esi_elm+2)); *(unsigned short *)chr_nam=top_estack-esi_elm; memcpy(chr_nam+2,esi_elm+1,top_estack-esi_elm); top_estack=esi_elm; }
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

2

bizarre...
essaye de virer tous les trucs que TIGCC rajoute automatiquement... ça changera peut-être quelque chose...

met les
#define NO_AMS_DETECT
#define NO_CALC_DETECT
#define NO_EXIT_SUPPORT
heu... il doit encore y en avoir d'autres...
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

3

ça marche, merci smile

ces #defines sont indiqués qq part dans la doc ???
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

4

oué, je crois...

premi_re page de la doc, tu dois avoir
"faire un prog avec TIGCC"
puis, ensuite, clique sur "options avancées de TIGCC"
par là, tu dois avoir ces quelques trucs... et même d'autres (sur le 1111, entre autre)

avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

5

ok merci smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

6

par contre, il n'est pas dit, je crois, qu'il faut les supprimer pr faire de l'exec.
mais bon, vu que ce sont des choses pas très utiles dans le contexte des chaines exec, et qui prennet de la place, il vaut à mes yeux mieux les enlever (d'autant plus si ça plante smile)
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

7

Pourquoi ces define ne fonctionneraient-ils pas en chaîne exec?

8

je sais pas trop en fait.
mais peut-être font-ils quelque chose que l'interpréteur de chaines exec n'aime pas...
par exemple, de l'accès direct à des ports, ou un truc dans le même genre, que TI n'ai pas permis au niveau du basic ?
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

9

Normalement tout est permis en chaîne exec.

Je ne peux pas tester, tigcc se rate quand je laisse define MIN_AMS ou avec detection de la calc, je sais pas trop.

10

heart
C'est pas ma faute à moi si j'entend tout autour de moi L.O.L.I.T.A !

11

Heu je ne sais pas.