30

Sans doute, mais les autres ont comprit, apparement smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

31

moi 'jai compris: prog archivé ? prog ppg?

32

Arf. On va faire simple.

Le programme alloue 45ko de RAM. En faisant une soustraction "ram dispo au début - ram dispo à l'arrivée", y'a donc moyen de savoir qu'il utilise 45ko de RAM.

Si tu le lance et qu'il était pas compressé, pas archivé, il utilise en tout 45ko de RAM. Par contre si il était compressé PPG ou bien archivé (ou bien les deux) alors il aura besoin de sa propre taille en RAM pour se lancer (le twin), or il fait 55ko. Ça veut donc dire qu'il aura besoin de 55+45 = 100ko de RAM, mais selon son calcul, seulements 45ko ont été prits, puisqu'il fait sa 1ere mesure après avoir été lancé (et donc après que les 55 premiers ko aient été alloués).

Donc il faudrait qu'il soit capable de reconnaitre si il a été lancé en étant au départ compressé / archivé, pour ajouter à ces 45ko sa propre taille, pour afficher à l'user la vraie place qu'il prend en RAM.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

33

bein j'ai repondu..
tu cherche dans la flash => archivé, tu cherches l'extension => ppg
de meme dans la ram tu cherche le ppg...

34

c pas une réponse ça...
"dans la Flash" tu dois vouloir parler de la ROM... Puisque c'est pas une apps flash mon truc grin
ensuite "archivé" bah oui t'es gentil c'est ce que je cherche justement, simplement pour ça il faut :

- faire en sorte que le fichier se pointe sur lui-même (et quand il est compressé bah je sais pas comment on fait)
- scanner la VAT pour trouver le sym correspondant à ce fichier
- vérifier son flag twin
- le reste en découle...
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

35

heu je vois pas de probleme, quand j'avais fait GSTOOL, GSShell se voyait etc.. et j'avais sont status..

36

C'est un shell GSShell ? Si oui, ou est la prouesse à ce qu'il se voit lui-même ? (le contraire aurait été inquietant). Maintenant comment t'aurais fait pour qu'il ne se voie pas lui même justement ? (ou qu'il s'empeche de s'auto-lancer)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

37

bein si il se voit lui meme tu voit a l'origine comment le programme a été lancé..

38

mais pourquoi est-ce faire ?
parceque, est-ce qu'il est vraiment indisênsable de connaitre la meme exacte que le prog occupe ?
tu ne peux pas prendre le pire des cas (ppg archivé) ?
ou alors distribuer dans le ppg un prog qui assume qu'il est toujours compressé (ce qui sera dans (100-10^(-l'infini))% le cas), et dans le prog non compressé, un qui assume qu'il ne l'est jamais (ce qui sera toujours vrai) ?
avatar

39

Non non... C'est plus pour le défi que pour autre chose que je cherche à faire ça, vu que ça ne sert quasiment à rien (je veux afficher dans le jeu la RAM totale réelle qu'il a utilisé pour se lancer). Donc pas de "considérer le pire des cas" par exemple :-/

JackosKing > Et comment tu sais que c'est lui-même ? Tu crois que le fichier il a un flag "it's_me" armé ? roll
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

40

SymFind(SYMSTR("<nom_de_ton_programme>"))

41

Cette méthode ne fonctionneras pas car le nom du programme n'ai pas fixe, je m'explique:
-Pour reconnaître un nom de programme le TIOS prossède de cette façon: caractère nul+nom du programme+taille du nom donc il faut créer une fonction qui convertie: main/test en 0main/test9.
-Pour savoir si le programme est archivé, il suffit de regarder dans le pointeur sym si le falg archived est à 1.
-Pour savoir si il est compressé on peut faire 2 méthodes:
regarder son extension en ppg.
ou regarder un flag qui indisque qu'il est compressé.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

42

Non, ça ne marchera pas parce que l'utillisateur peut le renomer grin

43

c'est bien pour cela que j'ai conseillé la méthode inverse: On compare les Handles, et à aucun moment je n'ai parlé de nom...
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.

44

geogeo
a écrit : -Pour reconnaître un nom de programme le TIOS prossède de cette façon: caractère nul+nom du programme+taille du nom donc il faut créer une fonction qui convertie: main/test en 0main/test9.
Non, il faut passer l'adresse du dernier caractère d'une liste du type : 0,'n','o','m',0

45

Nerick
a écrit : SymFind(SYMSTR("<nom_de_ton_programme>"))

Heu sans vouloir vexer si cette méthode marchait je crois que je l'aurais trouvée grin

Comparer par le nom c'est une méthode foireuse, il suffit que l'utilisateur renommer le fichier (ou en ait un de même nom sur la calc) et ça ne marchera plus.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

46

oui, c'est ce que je dis dans le post #41.

47

je part du principe que le programme a un nom fixe...

48

de toute maniere tu peux avoir 60 Ko de ram libre et ton prog de 50 Ko ne poura pas se lancer...

49

JackosKing
a écrit : je part du principe que le programme a un nom fixe...

Le but c'est de ne partir de rien qui ne soit pas sûr à 100%...
Les scan pour trouver le programme qui a un tel nom, ou une telle taille, c'est pas bon.
JackosKing
a écrit : de toute maniere tu peux avoir 60 Ko de ram libre et ton prog de 50 Ko ne poura pas se lancer...

Rapport ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

50

bein en general savoir qu'un programme qui prend 50Ko en ram ca sert pas trop c'est un indication grosierre..

51

Heu de toute façon ça servira à rien d'autre qu'a afficher la RAM utilisée par le jeu... Encore une fois c'est par défi que je veux faire ça, rien de plus...
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

52

IsOrgProg:
lea 0(pc),a0
jsr kernel::Ptr2Hd
jsr kernel::Hd2Sym
move.l a0,d0
beq.s \end
move.w SYM_ENTRY.flags(a0),d0
andi.w #$0100,d0 ; J'ai oublie la place du flag twin.
\end
rts

Si IsOrgProg renvoie 1, tu ne rajoutes pas la taille du programme. C'est bon ?

53

Bof, Vertyos programme en _nostub

54

Ah, desole. Mes condoleances alors.

55

PpHd > Heu oui merci, mais comme dit Jackiechan... :/
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

56

une sale habitude qu'il a pas encors éradiquer.
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

57

C'est pas le sujet Mac.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

58

pas grave, on est pas à ça prétsmile
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

59

Vertyos: si tu veux un "Ptr2Hd", j'en ai un.
J'ai été obligé de le faire pour tthdex, de manière à rendre beaucoup plus propres et sûrs certains trucs. J'ai écrit dans le source
"For example, a kernel-like Ptr2Hd function (yes, this function comes from the kernels, but it can be useful sometimes - kernels don't only have drawbacks) is used now for the EStack, the kernel handle..."
Ca peut bien sûr être sujet à des changements de formulation, mais je garderai la référence au fait que les kernels n'ont pas que des inconvénients - c'est clair, je l'ai déjà écrit à plusieurs reprises, même sur notre forum (bon, il n'y avait pas que ça dans les posts, mais cela y était).

Le sujet n'est pas de faire un débat kernel/_nostub, en effet.

Pour un "Hd2Sym", n'y en aurait-il pas un qui aurait été posté assez récemment (dans les deux derniers mois) sur le forum de TIGCC/TICT ? Je vais regarder ça... Je n'ai plus idée du titre ni de l'auteur, mais on devrait pouvoir s'en sortir par date et par certains mots...
[EDIT]: non, c'est en fait une fonction SYM_ENTRY(void). Pas besoin d'un Ptr2Hd + d'un Hd2Sym. Sujet "Program name at runtime" commencé le 13 mai, dernière réponse le 21 mai, sur http://pub26.ezboard.com/ftichessteamhqfrm5
Lien direct: http://pub26.ezboard.com/ftichessteamhqfrm5.showMessage?topicID=2115.topic

ATTENTION, bien lire TOUS les messages, il y a des corrections de bugs ou des améliorations !

Ces deux fonctions sont parfois utiles pour certains types de programmes, elles manquent à AMS. Les kernels les ont, mais pour en profiter, il faut un kernel, ou la réécrire soi-même. Mais la fonction qui permet de faire ce que PpHd a posté sans avoir besoin d'un kernel - c'est pafaitement possible - sera ajoutée à TIGCCLIB. Peut-être que Ptr2Hd le sera aussi, il faut que je demande à la TIGCC Team.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

60

void *p; HANDLE h;
asm("lea 0f(%%pc),%0; 0:":"=a"(p));
(unsigned long)p&=0x3ffff;
while(!(h=HeapPtrToHandle((p-=2))));
printf("Memory required by twin: %lu",HeapSize(h)+sizeof(SYM_ENTRY));
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é