π
<-
Chat plein-écran
[^]

Stocker une grande quantité de texte

Assembleur, Axe, ICE, BBC Basic...

Stocker une grande quantité de texte

Unread postby GrandTouque » 22 May 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: Select all
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: Select all
[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.
User avatar
GrandTouque
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 37.5%
 
Posts: 9
Joined: 30 Sep 2015, 14:15
Gender: Not specified
Calculator(s):
Class: L1 Maths-Info

Re: Stocker une grande quantité de texte

Unread postby Ti64CLi++ » 22 May 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
User avatar
Ti64CLi++Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 68.1%
 
Posts: 3126
Images: 61
Joined: 04 Jul 2014, 14:40
Location: Valence 26
Gender: Male
Calculator(s):
Class: 1°S-SVT
GitHub: Ti64CLi

Re: Stocker une grande quantité de texte

Unread postby Adriweb » 22 May 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.
User avatar
AdriwebAdmin.
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 50.2%
 
Posts: 12382
Images: 1079
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

Re: Stocker une grande quantité de texte

Unread postby GrandTouque » 23 May 2019, 15:31

Merci de vos réponses,

Cependant, lorsque j'essaye de lire une AppVar contenant du texte avec
Code: Select all
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.
User avatar
GrandTouque
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 37.5%
 
Posts: 9
Joined: 30 Sep 2015, 14:15
Gender: Not specified
Calculator(s):
Class: L1 Maths-Info

Re: Stocker une grande quantité de texte

Unread postby Adriweb » 23 May 2019, 18:24

Est-ce que tu as appelé ti_CloseAll(); dans ton
main
, avant d'utiliser des fonctions relatives aux variables/fichiers ?
User avatar
AdriwebAdmin.
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 50.2%
 
Posts: 12382
Images: 1079
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Class: (ingénieur)
Twitter: adriweb
GitHub: adriweb

Re: Stocker une grande quantité de texte

Unread postby GrandTouque » 10 Jun 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.
User avatar
GrandTouque
Niveau 4: MC (Membre Confirmé)
Niveau 4: MC (Membre Confirmé)
Level up: 37.5%
 
Posts: 9
Joined: 30 Sep 2015, 14:15
Gender: Not specified
Calculator(s):
Class: L1 Maths-Info


Return to Langages alternatifs

Who is online

Users browsing this forum: No registered users and 0 guests

-
Search
-
Featured topics
Avantages VIP et goodies pour les donateurs !
Offre TI-Planet/Jarrety pour avoir la TI-83 Premium CE avec son chargeur pour 79,79€ port inclus !
Offre TI-Planet/Jarrety pour avoir la TI-Nspire CX CAS à seulement 130€ TTC port inclus!
Jailbreake ta TI-Nspire avec Ndless et profite des meilleurs jeux et applications !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety 
-
Stats.
1117 utilisateurs:
>951 invités
>161 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)