1

Quelqu'un sait-l comment exploiter les listes TI (enregistrées en tant que fichier ds la calcu) depuis un programme en C?
L'aide de TIGCC est minimaliste, conseillant l'utilisation de chaines de caracteres, mais j'ai vraimaent besoin d'utiliser lesl iste TI.

2

Attention, il faut savoir que les listes TI ne sont pas du tout pareilles que les listes en C.
Pour accéder aux listes TI, il faut utiliser les rom_calls de vat.h (notamment SymFindPtr), regarde dans la faq de tigcc ou dans les exemples. Ensuite, pour comprendre le format des listes, télécharge la doc du sdk de TI, c'est quelque part dedans.

3

Ça dépend comment tu as ta liste.

- Soit tu crée un SYM_ENTRY qui pointe sur ta variable (regarde "SymFindPtr"), puis tu fais un HToESI sur son handle.
- Soit tu place ta liste en argument, et alors tu récupere directement le pointeur ESI.

Ensuite, tu peux récupérer les elements un à un avec GetStrnArg et GetIntArg (teste le type des arguments avec GetArgType)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

4

flash_MSC a écrit :
Quelqu'un sait-l comment exploiter les listes TI (enregistrées en tant que fichier ds la calcu) depuis un programme en C? L'aide de TIGCC est minimaliste, conseillant l'utilisation de chaines de caracteres,

... ce qui est une mauvaise idée. C'est une des informations obsolètes qui ont malheureusement été oubliées dans TIGCCLIB. Je viens de signaler ça à Sebastian Reichelt, nous allons corriger l'entrée dans la FAQ conseillant ceci. La méthode correcte pour stocker des données binaires est de créer une variable de type personnalisé.

Quant au format des fichiers de type algébrique sur la calculatrice, c'est:
* taille du fichier (2 octets), sans compter ces 2 octets eux-mêmes
* expression algébrique telle qu'elle serait stockée sur la pile d'expressions.
(Autrement dit, c'est une structure MULTI_EXPR.)

Concrètement, pour une liste, on a:
* taille du fichier (2 octets), sans compter ces 2 octets eux-mêmes
* END_TAG (0xE5)
* élément n
* élément (n-1)
...
* élément 2
* élément 1
* LIST_TAG (0xD9)

Et le mieux est effectivement de travailler avec les fonctions de args.h, qui marchent aussi avec n'importe quel pointeur de type ESI, y compris ceux obtenus en utilisant HToESI.
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é