1

arg stress totale le bac!!
comment on fait pour appeler un programme externe a notre programme pendant son execution : par exemple, comment je fais pour appeler txtrider avec un argument ?
j'ai compris qu'il fallai un pointeur de type sym_entry, ca je sais faire mais apres je fais koi avec lui?????????
et d'ailleurs , on peut pas plutot utiliser un Hsym j'ai juste besoin de savoir son dossier et son offset au prog pour l'appeler non?...
NTW !!!!!

2

ba alors personne peut m'aider ???
c'est kan meme pas si difficile ... non?
NTW !!!!!

3

c'est peut-être un peu compliqué, l'exécution de programme. Essaie de programmer en kernel, c'est plus simple.

Sinon, si tu fais un prog simpliste, tu peux essayer de le faire en basic, non ?
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

4

essaye la poudre verte, on sait jamais..




grin
Hmm... Garcon ! UN PACK DE KOENIGS SVP !

5

boaf, ca m'aurais bien fait plaisir de faire ca en C mais bon ...
en fait y fô qu'il appelle txtrider et pis y reviens là ou il etait et pas ailleurs avec toutes les memes valeurs...
jpourrais lui filer ds arguments pour lui dire ou aller mais c pas trs correct tou ca...


mais c sur qu'il n'y a pas une commande de la vat pour le faire simplement???

sinon c koa la poudre verte helmut perchu?
NTW !!!!!

6

nan, le pb c'est pas de lancer le prog, ça c'est pas dur, un simple jsr marche très bien. le pb vient des diverses protections mises en place par TI. Regarde à EXECUTE_IN_GHOST_SPACE ou la doc de PreOS (dans les RAM_CALL)
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

7

oula ca fait peur j'arrive meme pas a executer le programme que tigcc propose confus
et comment on fait avec un kernel?
NTW !!!!!

8

en C je sais pas sad

y a quand même ça dan sla doc de PreOS :
28-kernel::Exec (Preos only)


Input:
d0.w = Handle of the program to execute.
Destroy:
d0-d2/a0-a1
It executes the program. Then it returns to the parent program.
The parent program isn't affected.

Warning: if you are using library such as graphlib, you should :
+ know perfectly what the program does.
+ uninstall gray4 and choosescren, ie. reinstall the current configuration.

Example:
kernel_Exec(SymFindPtr($(doors))->Handle);
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

9

oui c ce que je viens de lire mais je comprend pas,
kan je mets
kernel_Exec(SymFindPtr($(doors))->Handle);
ds mon prgm
tigcc dis : too few argument in the fonction
et meme si je cree un HANDLE Handle juste avant il me dit :
structure has no member named handle

pour tou dire, je n'est Jamais programmé en kernel et c'est la premiere fois que j'utilise les sym-entry


NTW !!!!!

10

les sym_entry, c'est pas spécifique au kernel, hein cheeky

sinon, je sais pas trop, j'ai jamais programmé en kernel en C, alors j'ai un peu du mal sad

regarde dans les header files pour voir la syntaxe de la fonction.
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

11

ah ca y'est g reglé le pb des "too few argument" mais je pige pas le pb du Handle...????
NTW !!!!!

12

c'est presque ca pour le SymFindPtr. Regarde bien l'erreur que te passe le compilo : il te dit que SymFindPtr n'a pas assez d'arguments.
Regarde dans la doc à SymFindPtr, tu sauras les arguments à donner.

13

Sans kernel:
// Launcher for program called "example"

#define USE_TI89
#define USE_TI92PLUS
#define USE_V200

#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);
}


PS: Ce n'est pas bien de tricher.
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é

14

Kevin > tu sais très bien que c'est pas de la triche, alors arrête de le mettre en ps à tous tes posts, c'est lourd

et le code en kernel
 kernel_Exec(SymFindPtr($(doors))->Handle);

y a comme une différence de taille et de simplicité cheeky
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

15

Il faut déjà qu'il déclare kernel_Exec. roll Il ne le trouvera pas dans TIGCCLIB en tout cas. En _nostub, il n'a que l'exemple à copier-coller. Et dans ton code, il manque aussi le passage de l'argument.
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é

16

j'ai ressorti l'exemple qu'il y avait dans RAM_CALL.txt (ou un texte de ce genre) fourni avec PreOS. J'ai jamais essayé de coder en C, alors forcément je connais pas trop
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

17

#include <kernel.h> hehe

18

./13: Marche pas sur ti89ti grin
Et puis essaye d'appeller tictex avec cette methode grin

19

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
c pas genant g enlevé les 2 lignes push_END_TAG(); push_zstr("letexte");
mais kan g executé le programme: barre noire
en fait j'avais deja essayé de l'executer ce prgm(le "launcher" de la doc) mais j'avais pas reussi, la premiere fois il m'a dit invalid relocation in asm prgm et la deuxieme prgm or flashh app in use et ^pis qq temps apres , barre noire, d'1 coup comme ca

donc si qq un sait comment se servir habilement d'1 kernel, peutil m'aider?
NTW !!!!!

20

houla, g essayé avec enter_ghost_space() et la c excellent, c la premiere fois que je vois ca :
la calc c mise a clignoter et tout est redevenu normal puis dans la barre des st messages l'alphabet de x à z c mis a defiler .... bizare non?
NTW !!!!!

21

enter_ghost_space() ne doit plus être utilisé: utilise directement #define EXECUTE_IN_GHOST_SPACE au début du source, c'est ce qui remplace.
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

22

oué mais le prog que m'a filé Mr kofler ne marche pas!!!!

mais qqun connait celui qui a fait preos????
NTW !!!!!

23

On me demande ?

24

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
matthieu
: mais qqun connait celui qui a fait preos????
lol
je crois que cela ne se voit pas assez dans le readme ! grin
                                                                        ..
                                                                    .......
     _________________                                          ...........
     PPPPPPPPPPPPPPPPPPPPP=.%                               ................
     |PPPPPPPPPPPPPPPPPPPPPPPP.#.                       ....................  ______
     |PPPPPPPPPPPPPPPPPPPPPPPPPP.#.                 ......................_.OOOOOOOOOO._
     °PPPPPPPP/######°PPPPPPPPPPP.#.            ......................_.OOOOOOOOOOOOOOOO%#.
     'PPPPPPPP|##       °PPPPPPPPP##        .........................OOOOOOOOOOOOOOOOOOOOO#%
      PPPPPPPP|##        "PPPPPPPP|#|   ...........................OOOOOOOOOOO%###%OOOOOOOO##.
      PPPPPPPP|##         PPPPPPPPP##............................OOOOOOOOOO"##"     '"OOOOOO|#.
      PPPPPPPP|##         "PPPPPPPP##...........................OOOOOOOOO"##...       'OOOOOO##
      PPPPPPPP|##          PPPPPPPP##..........................OOOOOOOOO"#......       "OOOOO|#.
      PPPPPPPP|##        ..PPPPPPPP r|......___...............|OOOOOOOO##.......        OOOOOO##
      PPPPPPPP|##    .....PPPPPPPPP r|## .rrrrrrr.#..____.....OOOOOOOO|#.........       'OOOOO##__
      PPPPPPPP|## ........PPPPPPPP'rr|#rrrrrrrrrrr eeeeeeeee.#OOOOOOOO##.........       _.%%SSSSSSSSSS'
      PPPPPPPP|##     ../PPPPPPPPP rr.rrrrrrrrrrrrr eeeeeeeeeee.OOOOOO##.......... _.SSSSSSSSSSSSSSS'##
      PPPPPPPP\##  _.=PPPPPPPPPPP'rrrrrrrrrrrrrrrr eeeeeeeeeeeeee.OOOO##..........SSSSSSSSSSSSSSSSS'##
      PPPPPPPPPPPPPPPPPPPPPPPPP'rrrrrrrr"##'"rrrr ee"'#####"µeeeee.OOO|#........SSSSSSSSSSSSSSSSSS'##
      PPPPPPPPPPPPPPPPPPPPPP"|rrrrrrrr"##...| r eeeeeer#.__  eeeeee.OOO##......SSSSSSSSS"OOOO#######
      PPPPPPPPPPPPPPPPP""####rrrrrrrr"##....eeeeeeeeeeeeeeeeeeeeeeee OO.#.....SSSSSSSS'OOOOO|##"
      PPPPPPPP#"########"'  |rrrrrrr'##   .eeeeeeeeeeeeeeeeeeeeeeeee OOO.##...SSSSSSS|OOOOOO##'
      PPPPPPPP|##°          rrrrrrr|##     eeeee"#######%eeeeeeeeeee OOOOO.##.SSSSS|OOOOOOO'##.
     .PPPPPPPP|##          |rrrrrrr'#      eeeee|##...""########OOOOOOOOOOOOO#.S|OOOOOOOOO|SS%##.
     |PPPPPPPP|##          rrrrrrrr##      eeeeee.##  ...........OOOOOOOOOOOOOOOOOOOOOOOO|SSSSS%##.
     |PPPPPPPPP##         |rrrrrrr|#       'eeeeeee.##.__ .........'"OOOOOOOOOOOOOOOOOO"'SSSSSSSS##
     |PPPPPPPPP##         rrrrrrrr'#        "eeeeeeeeeeeeeeeeeeeee.....'"OOOOOOOOOOO"'.   "SSSSSS|#|
     PPPPPPPPPP.##       |rrrrrrrr##          eeeeeeeeeeeeeeeeeee'##........SS. __.....    |SSSSS|#|
     PPPPPPPPPP|##       rrrrrrrrr##           ''"eeeeeeeeeeee"'##     ....SSSSSS\##...._.SSSSSSS##
     PPPPPPPPPPP##      |rrrrrrrrr##              __""#########"         .SSSSSSSSSSSSSSSSSSSSSS'#|
     PPPPPPPPPPP##      rrrrrr"'  __...µùù########################ùµ.._   'SSSSSSSSSSSSSSSSSSSS'#'
     PPPPPPPPPPP.##    |rr"' _.ù########################################ù._ "SSSSSSSSSSSSSSSS'##'
     PPPPPPPPPPP|##      #ù##################################################µ._'"SSSSSSSS"###"
    .PPPPPPPPPPPP##   .µ#########################@@%=""'¨¨'""=%@@@###############ù.########"
    |PPPPPPPPPPPP.##.###################%""''¨¨¨¨¨¨¨            ¨¨¨¨''""%############µ.
    |PPPPPPPPPPPP|.################%"'¨¨¨¨___          _____      _   ¨_¨¨¨¨'"ù#########µ.
    PPPPPPPPPPPPPP.%############"'¨¨¨¨   ###\        #####\    #|   #|      ¨¨¨'"ù########.
      ##''"%%%%%%%%###########"¨¨¨       #|_#| _  _   #|   #|    #|   #|    _      ¨¨'"ù#####\.
      .#####################"¨¨          ###\#| #|   #|   #|    #|___#|   #|          ¨¨'"ù####.
     #####################"¨¨            #|_#|#|_#|   #####/ ___ ######|   #|              ¨¨'"##%
      "#################"¨¨              ###/ °###|   #|    ###\#|   #| ###|                  ¨"##.
      ¨¨"#############"¨¨                      __#|   #|    #| #|#|   #|#|_#|_                    ¨".
        ¨¨"##########¨¨                       ###/    #'    ###/ #'   #' ##'#'                      ¨'_
          ¨¨"######"¨¨                                      #|
            ¨¨"###¨¨                                        #'
              ¨¨"¨             ¨
                ¨
                                      Logo by SBibi

25

c'est Sbibi qui a fait PreOS ?
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

26

Il faut s'eloigner un peu pour mieux voir.

27

essaie pas de t'attribuer le boulot de Sbibi, hein tongue
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

28

Mr pPhD vous pourriez me dire comment on fait avec preos silvouuuplaiit ....
en c de preference
packe g fé ca et ca marche pas et j'ai meme fait planter tigcc !!!
et je sais meme pas a koi y sert mon handle, y pointe le dossier ou l'offset du fichier
en tout cas g fait ce prgm :

#define USE_KERNEL
#define kernel_Exec(SYM_ENTRY)
#include <tigcclib.h>

void _main(void)
{
HANDLE Handle;
kernel_Exec(SymFindPtr($("txtrider\txtrider"),0)->Handle);
HeapFree(Handle);
}
et la c EXTRAORDINAIRE , pas de bug, rien ... : il ne se passe rien du tout !!!
aidez moi svp , Mr PpHd
NTW !!!!!

29

tu sais ce que c'est un handle ? c'est le numéro d'un bloc mémoire, et par extension le bloc lui-même. Chaque fichier de la TI est dans un handle (mais les handles ne sont pas seulement des fichiers !)
dans SymFindPtr ...->Handle récupère le handle den txtrider. Si tu l'effaces après, ça va pas être terrible neutral

fait un printf("%d", SymFindPtr($("txtrider"),0)); avant,
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

30

ah oué je me disais bien... vous pouviez pas me le dire avant roll!!!!
packe g eu un bug de psychopate eek ,et la g plus d'os, pu rien ... g enlevé Toutes les piles mais y'a pu rien qui marche, plus de menu, je peux juste tapé des trucs mais kan j'appuie sur enter ca marche pas couic
bon jvé prendre la calc de mon frere ni vu ni connue....
bon j'ai tou refai ( en fait g rien fai du tou mais bon...)

#define USE_KERNEL
#define kernel_Exec(SYM_ENTRY)
#include <tigcclib.h>
void _main(void)
{
HANDLE Handle;
kernel_Exec(SymFindPtr($("main\aaa"),0)->Handle);
ngetchx();
printf("%d", SymFindPtr($("main\aaa"),0));
ngetchx();
}
et le progr aaa y fait :aaa(): prgm:disp "ca marche c genial";endprgm

et il est egal a 0 mon printf ca veut dire koa , que ca a pas marché la recuperation du handle,
NTW !!!!!