Page 1 of 2

Wlib, la révolution TI-82 Stats.fr !

Unread postPosted: 03 Jan 2014, 23:29
by Persalteas
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) :mj: . 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. :micro:
________________________________


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: :~o
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 ! :bj:

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 :~o
  • Charger et afficher des tilemaps :#fou#:
  • 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. ;<)

Image - Image - Image



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 ). :bj:
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 ( :favorite: ), 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.

Image


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:

Re: Wlib, la révolution TI-82 Stats.fr !

Unread postPosted: 04 Jan 2014, 00:43
by Adriweb
Bravo :)

Re: Wlib, la révolution TI-82 Stats.fr !

Unread postPosted: 04 Jan 2014, 08:34
by Lionel Debroux
Très bon travail, en effet :)
La façon de passer les paramètres me fait vaguement penser à celle de Flib pour TI-68k, avec laquelle j'ai commencé à faire des programmes un peu plus évolués que ce que le BASIC permet. J'ai très vite abandonné Flib pour le C, pour pouvoir profiter de la pleine puissance de la machine sans être limité par le BASIC.

La France n'est pas seulement réputée pour être mauvaise en langues étrangères - elle est mauvaise ;)

Re: Wlib, la révolution TI-82 Stats.fr !

Unread postPosted: 04 Jan 2014, 10:25
by matref
Ça fait plaisir :D par contre Persalteas tu t'es trompé sur les fonctionnalités disponibles : on ne peut pas encore afficher de sprites individuellement, les tilemaps c'est un cas à part. C'est prévu mais pas encore fait.

Aussi, on l'écrit en fait xLIB la bibliothèque 83+, j'ai aussi inversé la casse avec Wlib :P

Et l'intérêt de la version 83+ est que de cette manière, un programme Basic utilisant Wlib sera compatible quasiment toutes z80, alors que les programmes utilisant xLIB, Celtic etc sont uniquement compatibles TI-Flash. D'où l'intérêt de passer par prgmUSEWLIB : ne pas avoir à changer tous les Send(9 en Asm( et vice-versa.

Re: Wlib, la révolution TI-82 Stats.fr !

Unread postPosted: 04 Jan 2014, 10:27
by Persalteas
Ben en fait, j'arrive à afficher un sprite sur la totalité de l'écran, mais pas à des coordonées précises en effet (cf topic Wlib d'hier après-midi).
http://tout82.forumactif.org/t62p120-wlib#2692

Mais puisque c'est prévu alors :P

EDIT: J'ai oublié de parler du fait que Wlib étant sous forme hexadécimale, il est "potentiellement" recopiable à la main par ceux qui n'ont pas le cable, non fourni avec les TI-82 Stats..fr à la base. Mais c'est vrai que 760 octets... ça fait TRES long.

Re: Wlib, la révolution TI-82 Stats.fr !

Unread postPosted: 04 Jan 2014, 10:50
by matref
C'est normal que tu affiches un sprite sur tout l'écran : tu affiches en fait une tilemap pleine de 0 :P

Et en plus elle a pas fini de grossir Wlib (fatty fat fat).

Re: Wlib, la révolution TI-82 Stats.fr !

Unread postPosted: 04 Jan 2014, 10:52
by AnToX98
Merci matref même si je n'ai pas de TI-82 je te remercie.

Image

Re: Wlib, la révolution TI-82 Stats.fr !

Unread postPosted: 04 Jan 2014, 11:02
by matref
Merci bien :P

Re: Wlib, la révolution TI-82 Stats.fr !

Unread postPosted: 04 Jan 2014, 11:31
by noelnadal
Pas mal :bj:

Re: Wlib, la révolution TI-82 Stats.fr !

Unread postPosted: 04 Jan 2014, 11:32
by Persalteas
Il a dit "pas mal" O_o