La France étant un pays réputé "mauvais en langues", Texas Instruments sortit en 2006 la
TI-82 Stats.fr, une calculatrice de type TI-83 greffée sur un matériel bridé de TI-83 Plus pour faciliter la production, et qui servit très vite de modèle bas de gamme populaire très répandu dans les lycées lors de l'arrivée en seconde.
Beaucoup d'entre nous ont débuté avec cette calculatrice, modèle plus complet que les précédentes TI-82 basiques disparues des magasins en France, et ont appris le TI-Basic sur cette calculatrice.
Cependant, les bons codeurs ne se satisfaisaient pas du TI-Basic
, et de nombreux membres abandonnèrent ce modèle pour acheter
une TI à mémoire Flash, pas beaucoup plus évoluée au niveau des fonctionnalités, mais
beaucoup plus programmable.
Ceci pour plusieurs raisons:
- La TI-82 Stats.fr est cadencée à 6MHz, ce qui est vite lent en TI-Basic, et créateur de lag dans les programmes.
- La TI-82 Stats.fr, comme la TI-83, ne supporte officiellement que le TI-Basic: Il n'existe pas de SDK officiel de langage assembleur pour 82 Stats.fr/83, ni même de commande Asm() pour lancer un programme. L'assembleur que nous utilisons est un assembleur lancé grâce à un "hack", la fameuse commande Envoi(9prgmXXXX, ou alors avec un programme tiers dit "shell"
- Ce langage assembleur pour TI-83 a été prévu pour gérer un matériel de TI-83: c'est à dire une puce Flash-ROM non modifiable (en lecture seule) . Ce qui explique pourquoi la puce ROM des 82 Stats.fr, qui est pourtant la même à la base que sur 83+, a été consciemment bridée: elle n'est pas reliée à la carte mère en écriture, de façon à être elle aussi en lecture seule, pour supporter le système. C'est une des rares petites différences matérielles entre les 82 Stats.fr et les 83 Plus, mais qui a d'énormes conséquences au niveau logiciel.
Bref, ce langage "Asm83" n'a pas la cote devant l' "Asm83 Plus", puisque, ne pouvant pas modifer la ROM, il n'est pas question d'y utiliser des hooks, interruptions, qui sont des techniques de programmation en assembleur assez chouettes.
De plus, il n'y a donc pas moyen d'enregistrer des choses en mémoire Flash/Archive, tout est donc stocké dans la RAM, et vous savez bien qu'à la moindre erreur en Asm, vous perdez le contenu de votre mémoire RAM et vos heures de travail avec.
- D'où le fait que les tutoriels d'Asm83, et plus largement la communauté de programmeurs en Asm83...n'ont jamais été très développés. Ce qui n'aide pas les débutants à se mettre à ce langage puissant, certes, mais difficile. :/
Les deux seuls langages sur TI-82 Stats.fr, la TI la plus répandue dans les lycées (en comptant les bacs techno et pro), étant le TI-Basic et l'Asm83, quand on était lassé de l'un et peu motivé pour apprendre l'autre par nos propres moyens, nous passions à un modèle de TI Flash supportant les langages alternatifs tentants (Axe, Grammer, Basic augmenté), ou nous arrêtions de programmer sur calculatrice et quittions la communauté.Ce problème a perduré pendant des années, mais, l'hypothétique port d'un Grammer simplifié sur 82 n'avançant pas, notre génie local matrefeytontias (matref, Mattias Refeyton) décida qu'il avait du talent et qu'il allait me le montrer.Eh bien, je n'ai pas été déçu. ________________________________
Matref a développé
(avec les conseils de la communauté Tout-82) une bibliothèque pour TI-82 Stats, qu'il baptisa
Wlib, par esprit de contradiction avec Xlib, la célèbre bibliothèque de fonctions.
Wlib est un programme en assembleur qui va permettre à l'utilisateur d'appeler des fonctions en assembleur toutes faites, sans avoir besoin d'apprendre l'assembleur, et sans risque de crash de la mémoire.
Il utilise une liste (lWLIB) et Ans, pour permettre à l'utilisateur de
saisir le numéro de la commande et des arguments sans hooks (
sans modifier l'OS pour avoir des commandes supplémentaires dans un menu).
- Code: Select all
:{argument1,argument2, ...}→lWLIB:numéro de la fonction:prgmUSEWLIB
Par exemple:
- Code: Select all
:{numéro de la Str contenant la tilemap, taille en octets (largeur*longueur), offset de départ où charger la tilemap}→LWLIB : 9 : prgmUSEWLIB
_______________________________
Wlib rajoute la notion de
buffer au TI-Basic, ce qui permet instantanément de faire des graphismes plus poussés.
Les fonctionnalités d'affichage de sprites et de tilemaps sont directement concernées, et ça, c'est génial !
Pour l'instant, WLIB vous permet de:
- Changer le pixel de début d'affichage de l'écran
- Créer des animations de scrolling du buffer
- Vérifier la préexistence d'un programme
- Créer un nouveau programme
- Allumer, éteindre, changer l'état d'un pixel sur le buffer
- Charger et afficher des sprites
- Charger et afficher des tilemaps
- Afficher le buffer à l'écran
- Inverser les pixels du buffer
#beer#
De plus, WLIB est compatible TI-83 Plus (deux versions sont créées, même si la version 8xp est peu utile), et en plein développement: Les autres commandes de dessin sur le buffer son prévues, ainsi que d'autres commandes de gestion de données.
Nous avons donc bien désormais une forme de Basic augmenté sur TI-82 Stats.fr, et systèmes compatibles (TI-76.fr , TI-82 Stats, TI-83 ).
Vous ne me croyez pas ? Voici le programme du GIF ci dessus en vidéo, sur TI-76.fr, une calculatrice encore plus bas de gamme que la 82 Stats.fr:
Nous remercions infiniment Matref pour son projet (
), et nous espérons que ce programme ira loin ! Il tire de la misère les programmeurs qui ne possèdent "que" la TI-82 Stats.fr, et qui souhaitent aller plus loin que le TI-Basic.
La qualité graphique des jeux va en être grandement améliorée, pour
760 octets de plus seulement !
Ce programme répond à un réel besoin, et nous sommes très heureux de le voir
enfin apparaitre après des années.
Hate de le tester ?
Ça tombe bien, le concours de programmation sur TI-82 Stats.fr de Janvier-Février 2014 vient de débuter sur Tout-82 !Merci encore, Matref !
Sources: