π
<-

[résolu] Taille d'un programme assembleur/C limité à 64ko ?

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

[résolu] Taille d'un programme assembleur/C limité à 64ko ?

Message non lude bigprogram » 13 Sep 2024, 15:02

Bonjour.

Je m'intéresse à la programmation en C (avec les outils libres) pour la TI 83 CE / TI 84. Mais avant d'éventuellement me tourner vers cette plateforme, je me questionne.

La documentation peut laisser à penser qu'un programme peut au maximum être de 64ko, du moins c'est ce que je suis incliné à penser avec "What is the C/C++ Runtime Memory Layout?".

Image

Et j'ai le même à priori avec une réponse sur StackOverflow : (mais ça a peut-être évolué entre le Z80 et le eZ80)

The Z80 has a 16bit address bus, therefore it can only address at most 64KB of memory. It also has a separate I/O control line, which means that bank switching circuitry can be implemented so that the maximum usable memory is increased beyond this limit.


  1. Est-ce que 64ko est seulement le maximum qui peut être en RAM ou aussi le maximum pour la taille d'un programme ? (Je me pose la question, car j'aimerais faire un jeu vidéo, mais 64ko c'est vite peu si je voulais en faire un avec pas mal de grosses images. Et je vois que le binaire de GravityDuck pour Casio Prizm fait environ 260ko ou que Zelda Tears Of The NES pour Casio Graph 90+E fait 1,4Mo, donc ça me semblerait bizarre qu'une calculatrice TI de même gamme ne permette pas des gros programmes.)
  2. Si la taille maximale pour un programme n'est pas de 64ko ou d'à peu près 64ko, c'est quoi le maximum ? (Mais j'imagine à priori que c'est si plus, la limite vient plus de la mémoire flash de 3Mo que du couple processeur/RAM.)
  3. Si la taille maximale est petite, disons moins d'1Mo, y a t'il un ou des moyens assez simples de contourner la limitation ?

Merci.
Dernière édition par bigprogram le 13 Sep 2024, 19:23, édité 1 fois.
Avatar de l’utilisateur
bigprogram
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 0%
 
Messages: 4
Inscription: 13 Sep 2024, 14:27
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Taille d'un programme assembleur/C limité à 64ko ?

Message non lude critor » 13 Sep 2024, 16:57

Bonjour.


64K est le maximum permis par les spécifications du format programme (taille codée sur 2 octets).

Plusieurs possibilités existent pour contourner la chose :
  • sortir les données du programme pour les mettre dans des variables de type AppVar
  • ou opter à la place pour le format application, mais ça implique nombre de contraintes sur CE (dont l'impossibilité de les signer, et donc le besoin de contourner la méthode d'installation officielle)
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 53.5%
 
Messages: 42398
Images: 17115
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Taille d'un programme assembleur/C limité à 64ko ?

Message non lude bigprogram » 13 Sep 2024, 17:31

Merci pour l'évocation de ces 2 contournements. Par simplicité technique, je m'orienterais à priori vers du C standard, en tout cas au moins dans un premier temps, et donc vers le format application.

  • Le format application autorise (en théorie, hors taille de la mémoire flash) au maximum des applications de quelle taille ? de 512ko (3 octects) ? de 4Mo (4 octects) ? ou autre ?
  • En quoi ça peut poser problème de ne pas pouvoir signer ? Le seul problème n'est-il pas de ne pas pouvoir proposer l'application par un canal officiel TI ? Mais puisque la gestion officielle de l'assembleur (et donc par extension du C) a été officiellement supprimée pour les applications tierces et n'est plus accessible qu'avec un vieux OS et par jailbreak pour les versions récentes de l'OS (via arTIfiCE), n'est-ce pas devenu un non-problème ? Si c'est autre chose, ça rend significativement plus compliqué l'installation pour quelqu'un de lambda ayant déjà réussi à jailbreaker ? et si oui, pourquoi ? (évidemment ne pas hésiter à ne pas ré-expliquer et à juste renvoyer à une documentation déjà existante de la procédure, si toutefois ça existe déjà)
  • Quelles sont les autres contraintes du format application pour TI-83 Premium CE et TI-84 Plus CE ? Y a t'il quelque part une documentation à ce sujet ?
  • Si les contraintes du format application me vont, la documentation web de "CE C/C++ Toolchain" ne semblant couvrir que le cas programme, comment faire pour compiler en mode application et non programme ? Suffit t'il de rajouter une simple option au compilateur ou au linker ou à un finalisateur de l'exécutable (et en ce cas laquelle ?), ou c'est plus compliqué ? Y a t'il un endroit où ce serait déjà expliqué (de préférence pour GNU/Linux) et à jour ?

Note : Pour celleux qui ne le sauraient pas et passeraient par là, OS = Operation System, c'est-à-dire système d'exploitation (dans le monde "standard" : Debian GNU/Linux, Android, etc.).
Avatar de l’utilisateur
bigprogram
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 0%
 
Messages: 4
Inscription: 13 Sep 2024, 14:27
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Taille d'un programme assembleur/C limité à 64ko ?

Message non lude Adriweb » 13 Sep 2024, 18:20

Passer par une application est pour le moment découragé et réservé a ceux qui veulent bien bidouiller (avec une surcouche de la toolchain) et rencontrer des bugs sans support technique disponible :P
En effet la toolchain ne prend pas ca en compte, et il y a des limitations au niveau de chargement de libs si c'est en tant qu'app (c'etait un sujet de discussion encore hier sur le Discord), ca requiert des hacks divers etc., et il n'existe pas de documentation par rapport a tout ce qui concerne les apps). Par ailleurs, les très grosses apps ne sont pour l'instant pas gérées tout court, meme par app_tools.
On rappelle aussi que les applications se font virer définitivement en mode examen, alors que les programmes reviendront lors de sa désactivation.

Je conseille pour l'instant de simplement builder un programme normal car ce qu'il se passe en fait quand c'est trop gros, c'est que la toolchain (via Convbin) va automatiquement partager le programme trop gros en launcher+appvars. De telle sorte que pour l'utilisateur, ca fonctionne quand meme, il suffit de lancer le programme qui va automatiquement charger les différentes parties.

Mais il arrive quand meme assez rarement que les jeux etc. (il y en a quand meme plusieurs centaines...) prennent plus de 64 KB - par contre, ils peuvent très bien charger dynamiquement leurs données depuis des appvars, comme mentionnait critor.
La toolchain a plusieurs exemples la dessus. Cf. par ici: https://github.com/CE-Programming/toolc ... r/examples

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...)
My calculator programs
Mes programmes pour calculatrices
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 79.9%
 
Messages: 14840
Images: 1133
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Taille d'un programme assembleur/C limité à 64ko ?

Message non lude bigprogram » 13 Sep 2024, 19:22

Ok, merci pour la fin des précisions. Pour ne pas risquer sur cette limite, j'avoue que je vais probablement commencer par tenter avec la concurrence (Casio Prizm/90+E, la Math+ ne supportant à priori pas les add-ins si quelqu'un d'autre venait à passer par là, ou NumWorks jailbreakable apparemment avec Upsilon), puis éventuellement après essayer de porter sur TI. Et si effectivement je finis par programmer pour TI et que mon programme est lourd, vos précieuses informations me seront bien utiles (à moins qu'une grosse avancée ait eu lieu d'ici là). Merci encore.
Avatar de l’utilisateur
bigprogram
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Prochain niv.: 0%
 
Messages: 4
Inscription: 13 Sep 2024, 14:27
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile


Retourner vers Problèmes divers / Aide débutants

Qui est en ligne

Utilisateurs parcourant ce forum: ClaudeBot [spider] et 31 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
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.
2020 utilisateurs:
>1954 invités
>58 membres
>8 robots
Record simultané (sur 6 mois):
7582 utilisateurs (le 25/06/2025)
-
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)