dimanche 31 mars 2019

Le best-seller des années 80 : la TI-57

Texas Instruments présenta sa fameuse TI-57 en 1977. Elle a tant marqué sa génération qu'elle en est aujourd'hui devenue incontournable pour tout collectionneur qui se respecte. Son succès durera une bonne dizaine d'années grâce à son prix plancher sur le segment des scientifiques programmables. La TI-57 que j'ai sous les yeux a été fabriquée en Italie. Quatre chiffres dans son numéro de série, gravé au dos, représentent la semaine et l'année de production. La mienne est donc sortie de l'usine la semaine 17 de 1981. Elle aura probablement été vendue en France dans la foulée, pour la modique somme de 205 Francs ; soit moins de la moitié du prix de la Casio FX-502P ou de la HP-33 (source : l'Ordinateur de poche numéro 1). Les autres calculatrices de la même génération, avec plus de mémoire, parfois non volatile, étaient en effet beaucoup plus chères ; voire inaccessibles. Une HP-41C, par exemple, valait 1430 Francs en 1981.

TI-57 versus HP-25

Avec quelques touches en plus, la TI-57 est légèrement plus grande qu'une HP-25, mais son ergonomie n'est pas déroutante. Le principe de l'inclinaison de son écran vers l'utilisateur sera repris sur plusieurs modèles TI ultérieurs. La sérigraphie est bien contrastée, plus aérée que sur les Casio. On peut avoir jusqu'à trois fonctions par touches avec les combinaisons de [2nd] et de [INV]. Mais si on évoque le confort d'utilisation, il faut bien avouer que le clavier de la Texane est raide. J'ai mesuré plus de 270 grammes de pression en moyenne sur les touches avec ma balance de cuisine. Pour comparer avec la pression à exercer sur une machine récente, on se rapproche de la fermeté du clavier de la DM42, avec le bruit du plastique dur en plus sur la TI. Par ailleurs, l'interrupteur à glissière de la TI-57 est épouvantable.

En 2019, la TI-57 se trouve encore facilement sur les sites d'annonces. Bien entendu, en quarante ans, de l'eau a coulé sous les ponts ; et il arrive donc fréquemment qu'elle soit incomplète (sans manuel, sans chargeur, ou sans housse). Quant à ses accumulateurs Ni-Cd originaux, ils sont en général bons pour le recyclage. Le problème s'aggrave lorsque l'électrolyte des accus, à l'hydroxyde de potassium corrosif, fuit dans le boitier. Le premier module à souffrir est le redresseur intégré dans le compartiment batterie. Avec peu de composants, ce circuit possède deux fonctions :
  1. transformer le courant 8,5 V alternatif en sortie du chargeur Texas (120 mA), en courant continu pour la recharge des deux batteries Ni-Cd
  2. transformer le 2,4 V issu des batteries en 9 V pour alimenter la machine
circuit redresseur intégré dans le compartiment batterie de la TI-57

Attention, dans le connecteur qui relie le pack de batteries à la carte mère, les couleurs des fils ont été inversées : le fil rouge est relié à la borne négative, et le fil noir à la borne positive. Qu'est-ce qui a bien pu passer par la tête des ingénieur Texas Instruments ? Est-ce une erreur ? Heureusement, si on alimente la calculatrice en 9 V à l'envers pendant une courte période, il ne se passe pas grand chose, mais cela ne la détruit pas.

L'autonomie de la TI-57 est limitée, principalement à cause de son affichage à LED rouges. Mais que valent ses performances par rapport aux machines de sa génération ? Pour les mesurer, j'ai repris mon programme de test de primalité, dans une version proche de la première que j'avais écrite pour la TI-66. Sans chercher l'optimisation, la syntaxe condensée de la TI-57 permet de faire rentrer le même algorithme dans 42 pas (au lieu de 62) :


Avec 2701 en entrée, mon programme retourne 37. Il s'agit du plus petit diviseur de 2701, qui n'est donc pas premier. Avec 524287 en entrée, il affiche 1 après un peu plus de 8 minutes de calcul. C'est un temps correct, sans plus ; la HP-25 que j'avais testée précédemment faisait mieux.

Une machine aussi rudimentaire que la TI-57, armée de 8 mémoires et de 50 pas de programme seulement, est-elle capable de résoudre un problème plus complexe ? Par exemple, la recherche des zéros de la fonction ci-dessous est-elle à sa portée ?


f(x) = 1 - (x+4)^2*cos(sqrt(x))*e^((-x)/5) 

Celle-ci est formulée ci-dessus au format de la barre de recherche Google. Voici son graphe :

f(x) = 1 - (x+4)^2*cos(sqrt(x))*e^((-x)/5)

Eh bien oui, la TI-57 relève ce défi avec brio ! Je suis arrivé à faire rentrer au chausse pied dans la calculette une adaptation de mon programme de recherche de zéros par la méthode de la sécante. L'algorithme est identique à celui que j'avais implémenté dans mes articles précédents pour la PB-1000 et la FX-602P.  L'équivalence avec les variables du programme en Basic sera la suivante :

Basic --- TI-57
    X --- 00
    A --- 01
    Z --- 02
    I --- 07

Voici donc ce code, en 26 pas :


La fonction f(x) dont on recherche les zéros est codée à partir du pas 27 :


Ouf, ça rentre juste, au pas près ! Mode d'emploi de ce programme :
  1. modifier si besoin f(x) à partir du pas 28. Les mémoires 3 à 6 ne sont pas utilisées dans le reste du programme.
  2. stocker le X initial dans la mémoire 0. Par exemple avec [2] [STO] [0]
  3. stocker la précision dans la mémoire 7. Par exemple [1] [EE] [8] [+/-] [STO] [7]
  4. n'oubliez pas de passer en mode radian, si f(x) contient de la trigonométrie
  5. vous pouvez éventuellement calculer quelques valeurs de f(x) pour avoir une idée de la forme de la courbe : stocker X dans la mémoire 0, puis lancer [SBR] [1].
  6. [RST] puis [R/S] pour lancer la recherche d'un zéro
  7. le résultat s'affiche à l'écran
Pour terminer, voici une petite démonstration en vidéo, dans laquelle je recherche trois zéros de l'équation f(x) décrite ci-dessus :


Les trois solutions de f(x) = 0 trouvées par la TI-57 sont donc :
  • 2,3442043
  • 23,626136
  • 37,051386