1

J'ai trouvé la routine dans la FAQ de TIGCC pour lancer un programme, ca marche très bien mais j'aurais voulu lancer, par exemple, txtrider("main\test") et là, c'est beaucoup plus difficile !!
Quelqu'un peut-il m'aider ?

PS : la routine de TIGCC est progrun(*char name)

2

Tu peux utiliser les fonctions des string.h pour créer la chaîne désirée ...

Tu modifies donc :

void progrun(const char *name)
{
  char fname[25];
  HANDLE h;
  strcpy (fname, name);
  strcat (fname, "()")
  push_parse_text (fname);
  h = HS_popEStack ();
  TRY
    NG_execute (h, FALSE);
  FINALLY
    HeapFree (h);
  ENDFINAL
}


de manière à rajouter l'insertion d'une chaîne de caractères entre les deux parenthèses :

void progrun(const char *name, const char *argument)
{
  char fname[50];
  HANDLE h;
  strcpy (fname, name);
  strcat (fname, "("")
  strcat (fname,argument);
  strcat (fname,"")")
  push_parse_text (fname);
  h = HS_popEStack ();
  TRY
    NG_execute (h, FALSE);
  FINALLY
    HeapFree (h);
  ENDFINAL
}


Ca devrait marcher ... smile

A ce propos, il me semble qu'il y a une erreur dans la documentation de TIGCC concernant strcat ...

3

t'1 c'est clair l'auteur avait trop grillé de moquette le jour où il a écrit sa doc eek

<<<<<<
strcat appends a copy of src to the end of dest, overwriting the null character terminating the string pointed to by src. The length of the resulting string is strlen(dest) + strlen(src). strcat returns a pointer to the concatenated strings (this is src in fact).

Note: This routine assumes that src points to a buffer large enough to hold the concatenated string.

>>>>>>

picol
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

4

Oups, 3 mentions de src au lieu de dest...

Je vais corriger ça et envoyer le diff à Sebastian.
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é

5

Tiens j'ai pas percuté hier soir, mais il n'y a pas que la description de strcat qui est erronée. progrun comporte au moins deux bogues ! plus d'infos dans ce topic : topics/14797-lancer-lexecution-dun-programme-en-basic

(moquet' forever roll)
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

6

En effet, ce n'est qu'un exemple, pas une routine conseillée telle quelle, et il est également dit dans la FAQ que ça, c'est bon pour un programme BASIC, mais pas pour un programme ASM (à cause de la protection des HW2, quoique pour TxtRider ça passe parce qu'il faut avoir au moins h220xTSR d'installé de toute façon pour que ça marche).
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é

7

Tu corrigeras cete routine de la FAQ, Kevin ?

Au fait, on avait parlé une fois de getch sur le forum de la TICT. Vous allez l'ajouter ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

8

Thibaut
a écrit : Tu corrigeras cete routine de la FAQ, Kevin ?

Tu veux que je corrige quoi? Le 3) peut-être, mais:
1) il ne serait pas plus optimisé en taille et en vitesse de faire sprintf(fname, "%s()", name) pour l'ajout des parenthèses ?????????

On n'optimise pas les routines d'exemples. C'est à celui qui s'en sert de le faire.
2) au retour de cette fonction, si le programme Basic est archivé, la copie en RAM du programme ainsi que son entrée en VAT ne semblent pas effacés : on se retrouve avec deux fichiers de même nom et de même taille !

AMS l'efface automatiquement.
3) en cas d'erreur, le handle alloué par HS_popEStack n'est pas libéré !! si ?

Non.
4) lorsqu'une erreur survient dans le programme Basic, il est immédiatement quitté, sans qu'on ait le temps de lire la boîte de dialogue donnant l'erreur.

Normal. Ce n'est qu'un exemple. À vous de l'améliorer si vous l'utilisez. (Cf. http://tigcc.ticalc.org/doc/error.html#ERD_dialog.) Mais c'est en dehors du domaine de l'exemple.
Au fait, on avait parlé une fois de getch sur le forum de la TICT. Vous allez l'ajouter ?

Peut-être.
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é

9

Ok donc faut corriger le 3). Et puis ajoutez getch, personnellement c'est très souvent un obstacle à la compatibilité quand je code des programmes devant être compilés pour PC et pour TI.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.