π
<-
Chat plein-écran
[^]

[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 ?

Unread postby 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.
Last edited by bigprogram on 13 Sep 2024, 19:23, edited 1 time in total.
User avatar
bigprogram
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 0%
 
Posts: 4
Joined: 13 Sep 2024, 14:27
Gender: Not specified
Calculator(s):
MyCalcs profile

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

Unread postby 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
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 46.3%
 
Posts: 41901
Images: 15441
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

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

Unread postby 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.).
User avatar
bigprogram
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 0%
 
Posts: 4
Joined: 13 Sep 2024, 14:27
Gender: Not specified
Calculator(s):
MyCalcs profile

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

Unread postby 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
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.8%
 
Posts: 14722
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

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

Unread postby 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.
User avatar
bigprogram
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 0%
 
Posts: 4
Joined: 13 Sep 2024, 14:27
Gender: Not specified
Calculator(s):
MyCalcs profile


Return to Problèmes divers / Aide débutants

Who is online

Users browsing this forum: No registered users and 22 guests

-
Search
-
Social TI-Planet
-
Featured topics
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.
Reprise de ton ancienne fx-92 Collège ou Graph 25/35/90 à 3€ peu importe son état. Même non fonctionnelle et donc invendable, même ancienne Graph 35 non conforme aux programmes (pas de Python), même ancienne Graph 25/35 inutilisable aux examens (pas de mode examen) et donc invendable. Etiquette de retour fournie, pas de frais de port à payer.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
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 Calculatrices à acheter chez Calcuso
-
Stats.
1016 utilisateurs:
>1005 invités
>0 membre
>11 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)