60

Tu peux m'expliquer clairement pourquoi:
// Launcher for program called "example" 
 
#define USE_TI89 
#define USE_TI92PLUS 
#define USE_V200 

#undef MIN_AMS
#define MIN_AMS 101
 
#define EXECUTE_IN_GHOST_SPACE 
 
#include <tigcclib.h> 
 
#define fatal(s) ({ST_showHelp (s); return;}) 
 
void _main (void) 
{ 
  char *fptr, *cptr; 
  unsigned short plen; 
  SYM_ENTRY *SymPtr = DerefSym (SymFind (SYMSTR ("txtrider"))); 
  HANDLE h; 
  if (!SymPtr) fatal ("Program not found"); 
  h = SymPtr->handle; 
  if (HeapGetLock (h)) 
    { 
      cptr = fptr = HeapDeref (h); 
      h = 0; 
    } 
  else 
    { 
      cptr = fptr = HLock (h); 
    } 
  plen = *(short*)(cptr) + 3; 
  if (SymPtr->flags.bits.archived) 
    { 
      if (!(cptr = malloc (plen))) 
        { 
          if (h) HeapUnlock (h); 
          fatal ("Out of memory"); 
        } 
      memcpy (cptr, fptr, plen); 
    } 
  EX_patch (cptr + 0x40002, cptr + plen + 0x3FFFE); 
  push_END_TAG(); 
  push_zstr("letexte"); 
  ASM_call (cptr + 0x40002); 
  if (h) HeapUnlock (h); 
  if (cptr != fptr) free (cptr); 
}

ne marche pas chez toi?
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é

61

c marrant qd c le truc kernel qui foire c de la faute du kernel et qd c le tour du truc nostub ça devient de la faute du programmeur ? trifus

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

62

et bien cher Mr kofler kan j'execute ce progr, il ne se passe rien du tout tant que je le mets ds un autre dossier que txtrider .
alors que si je le met avec txtrider ds le dossier principal , la ti dit : invalid relocation data in asm prgm et ensuite ce programme disparait du menu var link (meme si ds la ram on voit qu'il est toujours là ) et si j'essaie de l'executer du home, la ti di : variable or flash application in use
c tou
NTW !!!!!

63

Il va nous tourner en ridicule. C'est bon le ridicule ne tue pas

64

de qui, de koa? confus
NTW !!!!!

65

g trouvé un truc la dessus, deja tout ecri, je comprend rien c en anglais et je peux pas copier coller c du pdf
allez telecher le sdk guide dispo sur le sie education.ti son nom exact est : sdk8992pguide.pdf a la page 71 y donne un example de runprog
NTW !!!!!

66

oula keske je raconte moi, voila ce qu'ils disent

An app can directly call many of the TI-BASIC commands. These commands
begin with “cmd_” and are included in Appendix A. The C callable TI-BASIC
functions or operators usually begin with “push_”. Examples include clearing the
program I/O screen with the cmd_clrio routine and writing to the program I/O
screen using the cmd_disp routine. An example function is push_getfold which
is the TI-BASIC getFold function. TI-BASIC uses the expression stack (estack) to
pass and return parameters. See chapter 15. Expressions and the Expression
Stack for a description of this stack and its contents. For a description of the data
types used by TI-BASIC see chapter 14. Data Types.
An app can also embed entire TI-BASIC programs or data. In fact, an app can
consist of essentially nothing but TI-BASIC programs and data as shown in the
following example. This example loads a TI-BASIC program using its StoProg
function (which can store any TI-BASIC data item). The tokenized version of the
program is in the prog1Data array. This array came from the TI-GRAPH LINK™
file containing the program. The program is run by using RunProg. The example
program merely displays “Test” to the Program I/O screen. After the program
runs, it is deleted. The TIBASIC_run function handles all errors including the
´ key (to break the app). In this way, the user of the app does not even know a
TI-BASIC program is running.
/* BASIC -> APP Wrapper */
#include "product.h"
#include "tiams.h"
static void AP_app(pFrame self, PEvent e);
#define ProgEnd(Prog) (Prog+(sizeof(Prog) - 1))
FRAME(appObj, OO_SYSTEM_FRAME, 0, OO_APP_FLAGS, 3)
ATTR(OO_APP_FLAGS, APP_INTERACTIVE)
ATTR(OO_APP_NAME, "prog1" )
ATTR(OO_APP_PROCESS_EVENT, &AP_app)
ENDFRAME
pFrame pAppObj = (pFrame)&appObj;
runningBASIC = FALSE;
const BYTE prog1Data[]={0X00,0X1D,0XE9,0X12,0XE4,0X00,0XE8,0XE5,0X51,
0XE4,0X02,0XE8,0XE5,0X00,0X54,0X65,0X73,0X74,0X00,0X2D,0X7A,0XE4,
0X02,0XE8,0X19,0XE4,0XE5,0X00,0X00,0X00,0XDC};
/* Run a BASIC program */
HANDLE TIBASIC_run(HANDLE hProgram, SINT *errNo)
{
Access_AMS_Global_Variables;
EStackIndex savetop = top_estack;
USHORT errOffset;
HANDLE hTokenized = H_NULL;
HANDLE hResult = H_NULL;
if (hCommand = HeapAlloc(80)) {
strcpy(pCommand = HeapDeref(hCommand), ProgName );
strcat(pCommand, "()" );
if (hResult = TIBASIC_run(hCommand, &errCode))
HeapFree(hResult);
HeapFree(hCommand);
if (errCode) {
ERD_dialog( errCode, FALSE );
return(FALSE);
}
}
return TRUE;
}
void DelVar( char *varName )
{
BYTE nameBuf[MAX_SYM_LEN];
TRY
if (FS_OK == TokenizeName( varName, nameBuf ))
cmd_delvar( TokNameRight(nameBuf) );
ONERR
ENDTRY
}
static void AP_app(pFrame self, PEvent e)
{
HANDLE hVal;
switch (e->command) {
case CM_ACTIVATE:
if (!runningBASIC) {
push_quantum( END_TAG );
EV_defaultHandler(e);
if (StoProg( "prog1", prog1Data ))
RunProg( "prog1" );
DelVar( "prog1" );
EV_quit();
}
break;
case CM_QUIT:
break;
default:
EV_defaultHandler(e);
break;
}
}
The previous example showed how to run a TI-BASIC program from an
application. If an application just needs to execute a function or expression to
return some value then the following example will do that. The function
tCmdLineDriver below inputs a string from the user using a dialog box. It then
calls the function CmdLine to execute that string and return a value. The return
value is stored to a global variable, E1. If there is an error then an error dialog is
displayed. The CmdLine function will evaluate the string and return a value on
the estack. It will not evaluate anything that has side effects — that is the
expression to be evaluated may not store to any global variables, perform any
kind of I/O (displaying values on the Home screen, graphing, and so on), or
cause a switch to another application.


je comprends rien mais vraiment rien a ce qu'ils racontent alors si qqun peut m'expliquer
NTW !!!!!

67

juste comme ca, je crois bien que cette documentation aide à programmer des applications flash (mais je suis pas sur) ...
enfin juste comme ca ...
euh...

68

 /* Run a BASIC program */
HANDLE TIBASIC_run(HANDLE hProgram, SINT *errNo)
{
 Access_AMS_Global_Variables; 
 EStackIndex savetop = top_estack;
 USHORT errOffset;
 HANDLE hTokenized = H_NULL;
 HANDLE hResult = H_NULL;

 if (hCommand = HeapAlloc(80)) {
  strcpy(pCommand = HeapDeref(hCommand), ProgName );
  strcat(pCommand, "()" );
  if (hResult = TIBASIC_run(hCommand, &errCode))
    HeapFree(hResult);
    HeapFree(hCommand);
    if (errCode) {
       ERD_dialog( errCode, FALSE );
       return(FALSE);
    }
  }
 return TRUE;
} 

J'adore cette fonction recursive love

69

erf, ils ont fumé quoi ? picol

j'adore aussi le concept de (HANDLE)TRUE tritop

en tout cas c'est un bon moyen de planter la calc avec un buffer overflow smile

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

70

matthieu
: et bien cher Mr kofler kan j'execute ce progr, il ne se passe rien du tout tant que je le mets ds un autre dossier que txtrider .

C'est normal, tu n'as précisé aucun répertoire dans SYMSTR ("txtrider"). Si tu veux que ça marche dans n'importe quel répertoire, il faut préciser le répertoire dans lequel tu as mis txtrider: SYMSTR ("txtrider\txtrider").
alors que si je le met avec txtrider ds le dossier principal , la ti dit : invalid relocation data in asm prgm

Pas normal. As-tu la dernière version de TIGCC?
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é

71

Pourquoi n'y a-t-il pas une fonction boolean launch_asm(HANDLE var_handle) dans la bibliothèque TIGCC ?
Ca rendrait service à tout le monde, sourtout aux débutants ! Pourquoi vous n'en faites pas ?
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.

72

Pollux :
erf, ils ont fumé quoi ? picol

j'adore aussi le concept de (HANDLE)TRUE tritop

en tout cas c'est un bon moyen de planter la calc avec un buffer overflow smile

va savoir pitet que le tibasic est interprété telquel ? trifus
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

73

Albert Instinct :
Pourquoi n'y a-t-il pas une fonction boolean launch_asm(HANDLE var_handle) dans la bibliothèque TIGCC ? Ca rendrait service à tout le monde, sourtout aux débutants ! Pourquoi vous n'en faites pas ?

Parce qu'une personne qui ne connaît pas bien la protection HW2/HW3 n'est pas censée appeler un autre programme ASM tout simplement. J'ai marre de cette manie des shells. Et parce que c'est encore plus compliqué sur la Titanium, le code que j'ai posté n'est que pour les modèles <=V200.
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é

74

>>Mr Kofler
j'avais deja essayé de mettre le dossier et la ca donne directement : invalid relocation in asm data
et g la version .95 beta8 de tigcc mais par contre y'a un truc que je ne pigepas: personne ne teste ses programmes sur ce forum, j'aimerais savooir si je suis le seul a avoir ca
en tout cas c pas bon ce qu'ils racontent ti?
de toute les manieres g reglé mon probleme et g fait un programme qui sauvegarde sa position(ds son deroulement) donc voila... (mais c hyper lent comme je le pensais, pour aller sur txtrider , la ti reaffiche le home puis apres lance txtrider et pour revenir ds le prgm idem )
d'ailleurs g une question, y'a t-il un moyen de supprimer la restauration automatique de l'ecran que force tigcc?
NTW !!!!!

75

Parce que kernel::exec no powa !

76

matthieu
: en tout cas c pas bon ce qu'ils racontent ti?

Non, ils racontent n'importe quoi... Leur fonction TIBASIC_run est complètement pipo, et ils n'ont pas donné le code de StoProg (mais on s'en fout) et de RunProg (c ça qui nous intéresse)...

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

77

et puis kan meme Mr instinct a raison, vous savez cette fonction ne serait pas forcement utilisé par une shel...
NTW !!!!!

78

PpHd
: Parce que kernel::exec no powa !

yup smile

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

79

euh, Mr Pélissier, jusqu'a maintenant il est vrai que seul la routine kernel "homeexecute" a donné des resultats mais voila elle marche de maniere extremement aleatoire,( je pense d'ailleurs que c'est en rapport avec la memoire alloué a ce que l'on tape et que l'on execute ds le home car si on exectute un programme faisant appel a cette fonction en passant par un raccourci (kbdprgmX) ca plante illico presto ) et lorsqu'elle(la commande home execute) plante la ti, c assez violent alors que les prgm nostub plantent mais n'entrainent pas avec eux la ti donc voila...
NTW !!!!!

80

tu devrais demander à des concepteurs de shell nostub comme thibaut le createur d'einstein va voir sur son site : http://alineasofts.free.fr
euh...

81

chez moi kernel::Exec marche très bien avec txtrider confus
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

82

Que veux-tu que je te dise ? Que ca ne marche pas ? Chez moi ca marche. Je ne sais pas quoi dire d'autres. Comment tu sais mon nom ?

83

vous enervez pas.... sad
euh, vous pourriez me dire exactement ce que vous avez ecrit Mr Flanker?
NTW !!!!!

84

char *arg="tonargument";
char *exec=malloc(50);
&exec=0;
HANDLE r;
strcpy(exec,"txtrider(\"");
strcat (exec, arg);
strcat(exec, "\")");
strcat (exec, vers);
push_parse_text(exec);
r = HS_popEStack();
NG_execute(r, 0);
HeapFree(r);


essaye avec ca
avatar
Wenn ich morgen meinem Gott gegenübertrete, kann ich ihm sagen: "Ich bin unschuldig, ich hab' niemandem etwas getan - außer mir selben" Und das verzeiht er mir offentlich !
Falco - Hans Hölzel 1957 - 1998
RIP

85

Kevin Kofler
:
Albert Instinct :
Pourquoi n'y a-t-il pas une fonction boolean launch_asm(HANDLE var_handle) dans la bibliothèque TIGCC ? Ca rendrait service à tout le monde, sourtout aux débutants ! Pourquoi vous n'en faites pas ?

Parce qu'une personne qui ne connaît pas bien la protection HW2/HW3 n'est pas censée appeler un autre programme ASM tout simplement. J'ai marre de cette manie des shells. Et parce que c'est encore plus compliqué sur la Titanium, le code que j'ai posté n'est que pour les modèles <=V200.

Non mais mon pauvre, on en à rien à foutre de ta petite plainte. On programme pour s'amuser, n'importe qui a le droit de programmer un shell suivant son envie.
Ohh le pauvre chou il en a marre mourn ohhhhh t'y peux rien, tu n'es pas le chef que tu aimerais être mourn il veut un bisou pour se consoler le cher Kevin ?

Ensuite, pourquoi ceux qui ne savent pas par quel mécanisme est protégé la TI89 n'auraient pas le droit de lancer des programmes ?
A une époque, par exemple, je ne savais pas par quel mécanisme fonctionnent les NDG, ça m'a pas empêché d'utiliser grayon/grayoff...
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.

86

ok je crois savoir d'où vient tous mes problemes de mon tigcc!!!! rage
je te remercie limmt , j'ai testé ta fonction mais tigcc ne reconnait pas l'une de ses propres fonctions triso short push_parse_text (const char *str);
donc la je vais reinstaller tigcc pour essayer
....
NTW !!!!!

87

euh Mr kofler, vous pourriez m'expliquer pkoa tigcc ne reconnait pas cette fonction ?
short push_parse_text (const char *str);
alors qu'explicitement ds estack.h on trouve :
#define push_parse_text ({__need_in_use_bit;_rom_call(short,(const char*),3CA);})
NTW !!!!!

88

matthieu :
euh Mr kofler, vous pourriez m'expliquer pkoa tigcc ne reconnait pas cette fonction ?
short push_parse_text (const char *str);
alors qu'explicitement ds estack.h on trouve : #define push_parse_text ({__need_in_use_bit;_rom_call(short,(const char*),3CA);})
tu as deja eu ce genre de pb, et je t'ai deja donné la solution
hibOu
:
matthieu :
euh Mr kofler, ca fait dix minutes que j'essaie mais mon tigcc ne reconnais pas push_zstr bien qu'il figure ds la doc
dans la doc, il y a écrit :
AMS 1.01 or higher
Cela veut dire qu'il faut que tu déclares que tu utilisera un AMS au moins supérieur a la 1.01
=> faut mettre
#define MIN_AMS 101

89

Bous enervez pas....
Il suffit de comprendre Mr matthieu ! Pas vrai.

90

bwahahahaha tu peut te foutre de moi pphd mais ca maaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarche
limmt merci infiniment love lovelovelovelovelovelovelovelovelove et merci aussi hibou
apres 88 post on y arrive enfin
donc pour tous les mec qui veulent comme moi executer un autre programme : voila le code NOSTUB!!!!!! a faire :
#undef MIN_AMS
#define MIN_AMS 101
#include <tigcclib.h>
void _main(void)
{
HANDLE h;
push_parse_text("txtrider\txtrider(\"seches\chim\")");
h = HS_popEStack();
NG_execute(h, 0);
HeapFree(h);
}

franchement le code que tu proposais Mr Kofler est 1000 fois + compliké
et pareil pour Mr pPhD la y'a pas de bug, meme si le truc n'existe pas la ti ne plante pas (bien que le programme disparaisse ...)
apres 25 utilisation 0000000000 probleme
NTW !!!!!