1

Bonsoir,

je suis en train de créer un programme en basic, et j'ai besoin qu'il sache son nom quand il est exécuté, même si on le renomme.
Donc il ne faut pas que son nom soit sauvegardé dans le programme, mais je dois trouver une instruction qui permet de le trouver.
Il me paraît impossible de faire ça en basic, alors je cherche quelqu'un qui serait assez sympa pour me montrer le code asm, ou, encore mieux, la chaîne exec convertie (je n'ai aucune connaissance en asm).
Cette instruction sera exécutée au tout début du programme, et il faudrait que j'obtienne une chaîne nommée "n", qui serait du type "dossiernom_du_programme".

Je suis totalement incapable de le faire moi-même. Si vous voulez faire une bonne action, c'est le moment !

Merci d'avance.

2

j'avais dja posté un topic de ce genre ds la rubrique basic, mais g po eu de solutions...
avatar

3

Pas facile de faire ça !
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

oué jpensais aller voir dans une pile...
ou alors ya pas moyen de trouver a quel prog est rattaché un rep local (genre '0001')
il suffirait de prendre celui qui a le n° le plus elevé et de trouver le prog qui lui est rattaché...
avatar

5

Non c'est pas possible je pense sad

J'avais pensé avec le handle du prog... Mais ça n'aurait fonctionné qu'avec les progs non-archivés et en ASM seulement (pas en Basic) sad
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

J'avais vu le topic Basic, mais pas de solutions...

Je pensais qu'il était possible de retrouver le nom du programme dans la pile assez facilement, étant donné que c'était la première instruction du programme.

J'ai une méthode, mais elle est très très très bourrin : essayer d'archiver et de désarchiver chaque variable de la ti (liste facile à avoir avec flib). Normalement ça devrait planter avec le programme en exécution. Une boucle Try et c'est fait, mais y en a pour 10 secondes au minimum.
Si vraiment ça vous paraît impossible à faire en asm, je ferai ça. Mais si vous voyez d'autres fonctions qu'on ne peut pas appeler sur un prgm en éxecution, faites-moi signe !

7

Y'a l'effacement par exemple grin
[edit]Edité par Thibaut le 23-03-2002 à 17:24:12[/edit]
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

Steph33 > Et si y a pas assez de ram ou d'archive ?roll
avatar
I'm on a boat motherfucker, don't you ever forget

9

ca va vite user l'archive si tu utilise souvent ce prog...
et puis si ton prog est appellé par un autre prog basic, il se peut que ce soit celui la qui soit detecté par ta methode !
(t'as qu'a regarde les flags du handle associé a ta var, il me semble qu'il y en a un qu s'appelle 'in use', c deja plus propre comme methode)
avatar

10

C'est sûr que la méthode de la ram et de l'archive n'est pas pratique...
mais pour l'instant je ne vois que ça (à part supprimer, merci Thibaut grin ) : on peut verrouiller, déplacer, renommer...
là je suis vraiment coincé !!!

11

mais meme avec cette methode (ou plutot celle de verifier le IN_USE flag, tu ne peux pas savoir quel est le prog qui a ete executé en dernier si tu a des appels depuis un autre prog
avatar

12

Peut etre une recherche des programmes in-use ?

13

ouais c ce que je proposais...
mais il peut y avoir plusieurs programmes 'in use' sad
avatar

14

Sinon ben y'a la pile du TIOS, mais je ne la maîtrise pas d'un pet, faudrait voir avec Paxal, il s'y connaît oui
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.

15

http://kcidios.free.fr/a/amep.89z

vous pouvez vérifier si ca marche ?
ca peut poser des problemes avec AMS 2 sans kernel
amep() renvoie ( a priori ) la chaine du nom du prog , il faut l'utiliser au debut du prog principal


prog()
prgm
amep()->nprg
.
.
.
EndPrgm

[edit]Edité par TachMan le 25-03-2002 à 20:50:40[/edit]
Fiou.

16

Mmm, chez moi ça déconne. La première fois il me retourne le nom d'un prog executé y'a assez longtemps (donc pas le bon prog), et la 2ème fois, pour un prog executé sous PCTools, il me renvoie ("ünyyy"). Et executé seul, il renvoie son propre nom. Il faut absolument tester si le programme est vraiment un prog basic.

Voilà mon prog que j'avais oublié de poster. Et la chaîne exec (qui est assez monstrueuse quand même, c'est du C) est fournie. Il effectue les tests très proprement, et renvoie les noms de tous le progs basics en cours d'execution sous forme d'une liste de chaînes, dans une variable.
[URL]http://membres.lycos.fr/extended/ti_files/runningp.zip[/URL].
[edit]Edité par ExtendeD le 25-03-2002 à 22:57:23[/edit]

17

Une recherche des fichiers synonimes pourrait etre interressantes.

18

Thibault: heu non, je cale, mais je peux faire des recherches
Cours et tutos Asm: http://membres.lycos.fr/sirryl

19

Il semblerait que l'avant dernier handle + 5 contienne le nom du premier prog lancé.
Cours et tutos Asm: http://membres.lycos.fr/sirryl

20

mmm, je pense que l'AMS bouche les trous de la table des handles, donc on ne peut pas connaître le dernier handle créé (il n'est pas mis au bout de la table).

21

Tout à fait.
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.

22

Extended: oui, c'est vrai, tu as raison. J'ai regardé taméthode, elle est bien.top
Cours et tutos Asm: http://membres.lycos.fr/sirryl

23

Merci beaucoup pour toutes vos réponses.

ExtendeD, je viens de tester ton programme, j'ai changé le nom de la variable retournée, et ça marche nickel. C'est parfait.

Encore merci !