π
<-
Chat plein-écran
[^]

Stocker une grande quantité de texte

Assembleur, Axe, C/C++, ICE...

Stocker une grande quantité de texte

Message non lude GrandTouque » 22 Mai 2019, 14:17

Bonjour,

Je souhaite réaliser un dictionnaire français/allemand sur la TI 83 PCE et pour cela, je dois stocker un peu moins de 2 Mo de texte. Pour créer mon programme j'utilise la toolchain (car en Basic le programme serait trop lent et il serait impossible de stocker tout le texte dans les 10 variables Chr).
Mon problème est que compilateur refuse de remplir un tableau de pointeurs (comme le "Hello World" dans l'exemple du Project Builder) avec plus de 4098 caractères ASCII :
Code: Tout sélectionner
make: *** [obj/main.src] Error -1
.
Et même si j'en crée plusieurs de taille inférieur, cela fait reset la calculatrice :
Code: Tout sélectionner
[CEmu] NMI reset caused by writing to the stack limit at address 0xd19881. Hint: Probably a stack overflow (aka too much recursion).
et ce, même si le compilateur aura crée des fichiers APPVAR.8xv :( .

Dois-je modifier une adresse qui désignerait une taille maximum dans le .makefile ?
Ou alors existe-t-il une méthode fiable pour stocker une grande quantité de texte :help:
Cacator cave malum aut si contempseris habeas jovem iratum.
Avatar de l’utilisateur
GrandTouque
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Prochain niv.: 16%
 
Messages: 11
Inscription: 30 Sep 2015, 14:15
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: L2 Informatique
GitHub: Marmotte69

Re: Stocker une grande quantité de texte

Message non lude Ti64CLi++ » 22 Mai 2019, 16:33

Tu devrais pouvoir stocker de grandes quantités de texte dans des appvars, même s'il me semble qu'il y a une limite de 65535 Bytes ;)
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: Stocker une grande quantité de texte

Message non lude Adriweb » 22 Mai 2019, 17:47

Il ne faut pas créer de variables sur la stack (a l'intérieur d'une fonction) supérieures à 4 KB vu que c'est la taille max de la stack. (et par ailleurs, le heap fait 69 KB, donc attention à vos malloc aussi).
Donc stocke tes grosses variables en static (et const, d'ailleurs, dans ton cas), déjà.

Il n'y a pas de makefile (linker file, tu voulais dire, d'ailleurs, bref) à modifier, c'est l'OS qui fonctionne comme ca.

Note: Basic ou ASM, les programmes sont limités à 65535 octets.
Le mieux reste de stocker des choses dans des appvars puis d'en lire le contenu à la demande (ne pas tout charger d'un coup, car la RAM n'est pas très grosse non plus...)
La limite de taille des appvars est de 65512 octets.
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Stocker une grande quantité de texte

Message non lude GrandTouque » 23 Mai 2019, 15:31

Merci de vos réponses,

Cependant, lorsque j'essaye de lire une AppVar contenant du texte avec
Code: Tout sélectionner
ti_var_t lex = ti_OpenVar("DICO1", "r", TI_APPVAR_TYPE);
, la valeur renvoyé est toujours 0, quelle que soit la taille de l'AppVar et que son nom passé en premier paramètre lui corresponde ou non.
Devrais-je utiliser une autre fonction de fileioc qui renvoie un char* pour accéder à son contenu ?
Cacator cave malum aut si contempseris habeas jovem iratum.
Avatar de l’utilisateur
GrandTouque
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Prochain niv.: 16%
 
Messages: 11
Inscription: 30 Sep 2015, 14:15
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: L2 Informatique
GitHub: Marmotte69

Re: Stocker une grande quantité de texte

Message non lude Adriweb » 23 Mai 2019, 18:24

Est-ce que tu as appelé ti_CloseAll(); dans ton main, avant d'utiliser des fonctions relatives aux variables/fichiers ?
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14606
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Stocker une grande quantité de texte

Message non lude GrandTouque » 10 Juin 2019, 18:23

Non, c'était bien ça qui clochait, merci :p

Maintenant que j'ai finis mon programme, est-ce que vous pensez que c'est utile que je publie ici un outil pour créer d'autres dictionnaires (pour les euro-qqc avec une DNL maths par exemple) ?
Cacator cave malum aut si contempseris habeas jovem iratum.
Avatar de l’utilisateur
GrandTouque
Niveau 5: MO (Membre Overclocké)
Niveau 5: MO (Membre Overclocké)
Prochain niv.: 16%
 
Messages: 11
Inscription: 30 Sep 2015, 14:15
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: L2 Informatique
GitHub: Marmotte69


Retourner vers Langages alternatifs

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 10 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1061 utilisateurs:
>1039 invités
>18 membres
>4 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)