1

Je viens d'en avoir l'idée ce matin en allant au Stage.
ça pourrait me dispenser de quelques appels inutiles à 'memcpy' lors de la création de Variable TIOS.

Voilà , Comme top_estack agit comme une variable et qu'on peut l'incrémenter et la décrémenter ;
j'en conclu qu'on peut rediriger temporairement top_estack vers un autre espace mémoire .

En effet Je veux créer des Listes dont je connait la Taille exacte.


J'alloue dynamiquement l'espace de la Liste ;
Je sauvegarde la valeur de Top_estack
Je redirige Temporairement top_estack vers le debut de la Liste(après les bit de Taille)
Je fais des serie de push_* pour écrire dans la Liste
je restore top_estack


Tactictement ça ne devrait poser aucun problème.
Mais vu qu'il est dit aussi que top_estack est une Macro ; je préfère prendre des Gants et poser la question ici avant de faire ce petit Hack qui s'il s'avère possible va me permettre de rediriger directement les résultats de certaines fonctions de ma Lib vers des Variables TIOS.


Le gains serait considérable pour des fonctions dont on est obligé de retourner le résultat dans une variable.
ça m'éviterai de faire un 'memcpy' de plus pour récupérer les variables dans la Pile.

2

Ça marche pour certaines fonctions et pas pour d'autres (par exemple, delete_between ne marche pas si on met top_estack n'importe où).
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

Une autre question c'est quoi la structure d'un short de TIGCC comparé à un Short de la TI.

Suis obligé de passer par push_shortint pour convertir un short de TIGCC ver un short Ti-Basic ?

parce que si y a moyen d'écrire directement le short de TIGCC dans une ENTIER du TI-BASIC à partir d'un pointeur sur Short ; ça m'intéresse


4

Oui tu peux, les short "sous TIGCC" (en C) sont même plutot simples à convertir en variables puisque leur structure est la même : {valeur / 256, valeur % 256}. T'as juste à ajouter un 2 et un POSINT_TAG à la fin pour obtenir l'équivalent TiOS.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

5

Ok , c'est ce je pensais tester ce midi.
Merci de confirmer. Je suppose que c'est ce que t'a fais pour Vertel avec la fonction 'read'.

Moi je veux rediriger directement dans des LISTES les fonctions qui auront besoin de sauver par la suite leur résultat.


6

andoh_wilfried
: Je suppose que c'est ce que t'a fais pour Vertel avec la fonction 'read'.

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

7

Ah Bon !

Je compte tester pour voir avec 'read' , 'seq' .

Mais le plus intéressant , ce sera pour les compteurs entiers que j'ai alloué dans un Tableau C.
Je vais les remplacer par des Short de la TI comme cela, plus de Limitation en nombre de compteur.
Je pointerai directement sur les 2 bytes en question avec un cast pour récuperer les valeurs et faire :
-addition
-soustraction
-multiplication
-division
-modulo
-random



8

J'ai tester ce midi la redirection du top_estack dans une Variable. ça marche impec.

Mais j'ai pas eu le temps d'écrire directement les short de TIGCC dans ma Liste.

Je ferai ça ce soir.

9

(03:40) Kevin Kofler » andoh_wilfried: Il n'y a pas de short en TI-BASIC, il y a des entiers à précision arbitraire seulement. push_shortint convertir un short en un entier à précision arbitraire. Tu peux toujours écrire du code tokénisé directement, il suffit de lire la doc du format (cf. doc de top_estack).
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

C'est bien vrai. je me suis rendu compte en vérifiant avec un éditeur hexa que c'était un peu chiant de gérer ça.
je pense que push_short est assez efficace pour que je laisse les choses ainsi.
De plus ça complique le calcul de la taille de la Liste sensé recevoir les données.

en fin de compte je préfère utiliser push_shortint.