1

dans la doc de PreOS, je vois :
$38.l : adress of the reloc function
input :
d0.w : handle to the file to relocate
output:
d0.w : result of the relocation
a0.l : adress of the name of the library which caused the error (if there was an error)
destroy:
a0/d0
$4C.l: Used by the kernel as a global variable (Preos uses it to save the original trap #0).
If it isn't NULL, then it is run under SHIFT+ON.
If there is no kernel, it is an address of the handle of the program to execute after installing the kernel.
est-ce que ces routines sont valides quelque soit le kernel utilisé ?
et y a-t-il une méthode fiable pour voir si mon programme est exécuté depuis un autre ou s'il est exécuté depuis le home ?
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

2

$4C certainement pas, c'est totalement interne à PreOs.
$38 est supporté par tous les kernels à part Universal OS (qui lance une erreur "Program not found" si on essaye de 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é

3

et pour la méthode fiable pour voir si mon programme est exécuté depuis le home ?
je pensais à 2 trucs : regarder la pile pour voir où est-ce que mon programme retournera quand il finira et regarder l'EStack pour chopper la dernière commande. Ca devrait être assez viable comme méthode, 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

Flanker
: et pour la méthode fiable pour voir si mon programme est exécuté depuis le home ?

Pas 100% sûr, mais 99%: Tu récupères l'adresse de la ligne d'entrée et tu vérifies qu'elle contient le nom de ton shell et ().
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

t'as raison, de toute façon, dans mon programme, j'ai déjà récupéré son nom sur la calc (j'en avais besoin pour faire des manip douteuses) donc même si on change le nom ça marchera...
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

6

en fait, je pense plutôt regarder l'EStack, ça devrait être un poil plus fiable vu qu'on pourrait le lancer avec shift-on après avoir tapé le nom en ligne de commande.. Reste à savoir comment adapter cette méthode à PedroM....
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

Prendre le nom sur la pile d'expressions n'est pas vraiment plus fiable. Ça peut être une très vieille exécution du shell qui traîne encore.
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é

8

En mode kernel, la seule methode fiable est le compteur de global reloc file. S'il est a 1, alors c'est le programme prioritaire. Aucune methode n'est possible pour le recuperer (C'est un truc purement interne).
Pkoi en-as-tu besoin ?

9

[nosmile]
PpHd
: S'il est a 1, alors c'est le programme prioritaire.

Mais pas nécessairement lancé directement depuis HOME!
Contre-exemples:
* Define prog()=Prgm:shell():EndPrgmtonguerog()
* ttstart("shell")
* sstart("shell")
Bref, il suffit de le lancer depuis un programme TI-BASIC ou _nostub ou une application Flash et ça ne marche plus.
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é

10

Mon shell peut se lancer de différentes façons (shift-on, home, ttstart, mais aussi en tant qu'app flash), et les comportements changent un peu à la sortie du shell. Ex : quand on insère une chaîne de caractère dans une app flash alors qu'il est lancé avec shift-on, ça plante avec PreOS (mais j'ai pas eu le temps de regarder le truc plus en détail)
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