dimanche 22 mars 2020

Précision suisse avec la DM42

La DM42 de SwissMicros est une réplique moderne de la fameuse HP-42S de 1987. Il faut savoir que cette dernière est considérée par ses aficionados comme la meilleure calculette du monde. Le composant logiciel central dans la DM42 de 2017 posée sur ma table est l'excellent Free42 de Thomas Okken.

SwissMicros DM42

Diffusé sous licence GPLv2, Free42 était déjà mon calculateur préféré sur smartphone ; notamment parce que son clavier virtuel est à la fois complet et bien espacé. En comparaison avec d'autres émulateurs, la lisibilité et l'ergonomie générale, forcément rétros, sont bonnes. Et la programmabilité est bien entendu indispensable sur une calculatrice scientifique. Mais revenons à cette SwissMicros : c'est indéniablement une belle machine à la finition impeccable. Cependant, comme j'ai l'habitude de chipoter, je vais passer en revue rapidement ses quelques défauts.

Avant de pouvoir appuyer sur [ON], ma première déception concerne son étui en simili cuir noir. Il est en effet trop serré et bien difficile à retirer. J'aurais préféré une pochette à soufflet avec un rabat magnétique, dans le style de celle de ma HP-50g par exemple. Si on poursuit le parallèle avec Free42 sur smartphone, il y n'a pas de rétro-éclairage sur la DM42, ni sous l'écran, ni sous le clavier. Son LCD Sharp, bien plus vaste que l'original, est néanmoins super bien contrasté. Un rétro-éclairage avec batterie aurait sans doute complexifié et alourdi la machine. Celle-ci pèse déjà 200g avec sa pochette. Il faut savoir que le dos en métal noir mat, qui donne sa rigidité à la calculette, pèse à lui tout seul 80g sur ma balance. D'autre part, on constate qu'il n’y a pas de batterie rechargeable dans la DM42 actuelle. Elle est alimentée par une simple pile CR2032. Donc, ne faites pas comme moi au début : il est inutile de la laisser branchée sur USB en espérant qu'elle se recharge ! Cela dit, si la pile est en fin de vie, on peut alimenter la calculette via ce port. De façon anecdotique, la fréquence du CPU monte alors à 80 MHz, au lieu de 24 MHz sur la pile interne.

Ma dernière petite critique concerne le clavier de la DM42 : il est certe fiable, meilleur que celui de ma WP-34S (sur base de HP-30b) ; mais je le trouve un peu ferme par rapport aux vraies HP. En contrepartie, il offre une rangée de touches supplémentaires qui n'existait pas sur la HP-42S. Un mode de clavier alphabétique, similaire à celui de la HP-41CV, a également été ajouté. En mode [ALPHA], un indicateur s'affiche en haut, avec la signification suivante :
  • [ ] : mode alphabétique "menu" type HP-42, grâce aux touches situées sous l'écran. Les chiffres et symboles du clavier restent accessibles en direct.
  • [a] : mode alphabétique HP-41 en minuscules 
  • [A] : mode alphabétique HP-41 en majuscules
Pour passer d'un mode à l'autre, par exemple des minuscules vers les majuscules, on utilise la séquence de touche [jaune] [flêche vers le bas] ; ou bien [jaune] [flêche vers haut] pour revenir en minuscules. C'est un peu à l'envers et contre intuitif, mais on s'y fait. Globalement, il faut bien reconnaître que la saisie est hyper laborieuse comparativement à un pocket Basic.

Un gros point fort de la DM42 c'est la précision des calculs, ainsi que sa capacité à manipuler de grands nombres. Par exemple, si on souhaite vérifier l'addition manuelle ci-dessous qui comporte des nombres entiers de 12 chiffres, c'est possible avec la DM42. Mais il n'y a là rien d'exceptionnel pour une calculatrice récente. Je précise que ce n'est pas mon écriture (ni en bleu, ni en gris) :

une addition à vérifier
Par défaut, le résultat est tronqué de deux chiffres significatifs, mais il est possible de les afficher tous temporairement avec [SHOW]. Pour un affichage permanent, la solution que j'ai trouvée utilise le programme FWIW disponible sur le site de Thomas Okken. Dernière astuce, grâce à la séquence de touche [jaune] (maintenue) puis [DISP], il est possible de créer des copies d'écran dans un format BMP en 400x240 pixels en deux couleurs :

un résultat affiché avec 13 chiffres significatifs

Pour capturer un [SHOW] "normal" il vous faudra être rapide. Les copies d'écran sont sauvegardées dans le répertoire /SCREENS qui est accessible en USB "mass storage device", avec le driver standard. La gestion des fichiers, pour les upgrades notamment, est  très bien faite sur la DM42. Ici, aucun logiciel privateur n'est obligatoire pour copier des fichiers, comme c'est malheureusement le cas sur de nombreuses machines récentes.

J'ai utilisé des copies d'écran pour réaliser le montage ci-dessous. Il s'agit du code source de mon test habituel de primalité, tel qu'il est affiché sur la DM42 et légèrement adapté à partir de ma version pour HP-15C :

test de primalité sur DM42
Pour vous éviter de le retaper si vous voulez l'essayer (peu probable ?) je vous met à disposition le programme ici premier.raw (directement copiable sur la DM42). Avec ce code, la DM42 répond 37 (le premier diviseur) lorsqu'on lui donne 2701 en entrée, et 1 (nombre premier) avec 524287, presque instantanément dans les deux cas. Cette SwissMicros est donc bien une calculatrice haut de gamme de puissance "suffisante". Les sensations rétros qu'elle procure sont agréables, même pour quelqu'un qui n'est pas tombé dans le RPN quand il était petit.

dimanche 15 mars 2020

La HP-12c et le mystère de la façade dorée

Quand on évoque la HP-12C, on ne peut s'empêcher de rappeler l'exceptionnelle longévité de cette calculatrice financière sortie en 1981. Elle est en effet toujours diffusée, sans interruption depuis 39 ans au moment où j'écris ces lignes. Seuls quelques détails permettent de distinguer ses différentes évolutions matérielles. La version vendue actuellement est nommée HP-12C Platinum. Sa façade est devenue grise métallisée, et non plus dorée comme les anciennes. Cependant, ses fonctions n'ont presque pas évolué depuis quatre décennies. Par quel miracle cet objet électronique a-t-il survécu si longtemps, bien au delà de la durée initialement estimée par ses concepteurs ? Quelle est donc la vraie raison du succès planétaire de la HP-12C ? Même la durée de vie des trois piles bouton LR44 de la version originale est exceptionnelle : 12 ans ; et même parfois plus ! On sourit en apprenant que les concepteurs HP auraient souhaité doter la machine originale d'un indicateur du niveau des piles. Enfin, la robustesse de cette série HP Voyager est indéniable. Le positionnement du clavier en mode paysage aurait été choisi pour cette raison : pour une protection optimale de l'écran LCD entre les bordures plastique ; si l'on en croit Dennis Harms (le chef de projet de la première HP-12C).

HP-12C de 1982

Je n'ai jamais eu l'occasion d'utiliser intensivement une calculatrice financière, ni dans mon cursus, ni dans ma profession. Pour le moment, cette HP-12C est le seul modèle non scientifique de ma collection. En réalité, pour couper les cheveux en quatre, ma HP-30B était bien une calculette financière au départ. Mais sa modification en WP-34S scientifique est quasi définitive car l'overlay est collé sur les touches. Sinon, si je devais choisir une de mes machines pour effectuer un calcul financier en 2020, peut-être que je prendrais ma volumineuse et récente Casio fx-CP400 ? D'abord parce que la liste des fonctions financières pré-programmées dans cette Casio est plutôt longue. Ensuite, parce que son mode d'emploi est relativement intuitif. On pourrait même affirmer que ses fonctions sont auto-documentées. Mais mon choix serait de toute évidence stupide pour les calculs utilisant des fonctions directement accessibles sur la HP-12C. Je vais prendre un exemple pour illustrer mon propos : si un livre coûte 85 € HT, quel est son prix TTC ? Sur la Casio, comme sur de nombreuses machines modernes, c'est laborieux. Tout d'abord, le démarrage n'est pas instantané comme sur la HP-12C. Ensuite, on doit naviguer dans un cliquodrome, éventuellement aidé du stylet, pour configurer correctement l'affichage :

Appui sur [Settings] (à gauche)
puis [Format de base] 
Format nombre [Fixe 2] et cocher [Calcul décimal] 
[Valid]

Ensuite le calcul proprement dit :

85+(85x5.5%)[EXE]

Le problème sur la Casio, c'est qu'il n'y a pas de touche [%] physique, on doit donc aller la chercher de la façon suivante :

[Keyboard]
[abc]
[Symb.]
[%]

Pour d'autres calculs éventuels à suivre, le clavier virtuel pourra rester affiché ; en occupant la moitié inférieure de l'écran. Nous allons voir que ces petits tracas n'existent pas sur HP-12C. Tout d'abord, le format d'affichage est à deux décimales par défaut après une ré-initialisation complète. Sinon, pour passer au format monétaire, c'est deux touches :

[f] 2

Ensuite, pour effectuer le calcul décrit ci-dessus, c'est 8 touches (moitié moins que sur la Casio) :

85 [ENTER] 5.5 [%] [+]

Le résultat correctement arrondi pour le prix du livre est donc 89,68€ TTC.

Un dernier petit avantage de la HP, c'est qu'elle a affiché le montant de la TVA en résultat intermédiaire (4,68€). L'affichage explicite de cette valeur nécessiterait de manipuler encore le clavier et l'écran tactile de la fx-CP400... ou bien, de changer de méthode ? L'usage du tableur intégré à la Casio serait sans doute une alternative viable. Mais sans contestation possible, sur cette épreuve, c'est une victoire pour la HP-12C.

En tant que collectionneur, je m'intéresse parfois à la provenance et à l'histoire des machines que je manipule. La HP-12C que je tiens entre mes mains a été vendue dans la région Lyonnaise, dans un magasin nommé "DOM" (fermé depuis longtemps). Elle porte le numéro de série 2201A02826, que l'on peut décoder grâce aux informations fournies par le HP Museum. Les numéros de série des HP anciennes sont en effet au format YYWWC##### dans lequel :
  • 'YY' est le nombre d'années qui se sont écoulées depuis 1960
  • 'WW' correspond approximativement à la semaine de fabrication
  • 'C' est la première lettre du pays en anglais : A pour "America" (USA), B pour "Brazil", G pour "Germany", J pour "Japan", S pour "Singapore" et M pour "Malaysia" ou "Indonesia".
  • '#####' est enfin un numéro unique dans l'année et la semaine de fabrication du pays concerné
Ma HP-12C est donc la 2826e machine à être sortie d'une usine américaine la semaine 01 en janvier 1982. Toutes les calculettes HP actuelles sont bien entendu produites en Chine. En ces temps de Covid-19, on pointe du doigt, à juste titre, le résultat de certaines politiques industrielles. Pour la production des objets électroniques en Europe, notre dépendance vis à vis de la Chine est sans doute devenue bien trop élevée. Quant aux très beaux clones de calculatrices HP produits par la société SwissMicro (DM12L par exemple) avec leurs composants STMicroelectronics, il n'est pas évident de comprendre le rôle précis de chaque site (design, fabrication, assemblage).

Clairement, les performances sont secondaires une machine comme la HP-12C. Je dirais même plus :  certains financiers, obnubilés par la justesse du résultat, seraient même rassurés par un temps d'attente substantiel sur les calculs complexes. Cela dit, par rapport à mes autres machines, de quoi est réellement capable ce CPU de la série "HP Nut" . Celui-ci est cadencé à la modeste fréquence de 220 kHz et associé à une puce nommée avec humour "R2D2" (RAM/ROM/Display Driver). Pour évaluer sa relative lenteur, je vais faire tourner mon programme habituel de test de primalité naïf, dans une version strictement identique à celle de la HP-25 :

Test de primalité pour HP-12C

Le calcul sur le nombre 524287 prend environ 5 minutes sur la HP-12C qui est donc étonnamment plus rapide que la HP-15C au CPU identique. Il est vrai que ma version pour la HP-12C est légèrement différente ; car les labels numérotés ne sont pas disponibles.

Pour conclure, voici ci-dessous un autre programme, un peu plus complexe, que j'ai converti pour la HP-12C. Il permet de compter le nombre de façons différentes d'obtenir 1€ (ou 100 centimes) en utilisant les pièces existantes (1 centime, 2 centimes, 5 centimes, 10 centimes, 20 centimes, 50 centimes et 1 €). On suppose qu'on dispose d'autant de pièces de chaque sorte que nécessaire. Mon algorithme en Basic pour Casio PB-1000 est le suivant :

10 INPUT N:T=1
20 FOR A=0 TO N STEP 50
30 FOR B=A TO N STEP 20
40 FOR C=B TO N STEP 10
50 FOR D=C TO N STEP 5
60 T=T+INT((N+2-D)/2)
70 NEXT D:NEXT C:NEXT B:NEXT A
80 PRINT T

On peut lancer ce programme sur la Casio après avoir tapé si nécessaire la commande CLEAR 5000,900,7000 (par exemple) pour obtenir une partition mémoire suffisante. Le même programme porté sur la HP-12C, en programmation par séquence de touches et en RPN, est évidemment un peu moins lisible :


Malgré son côté un peu rebutant, la saisie de ce listing est relativement rapide sur la HP-12C. Attention toutefois aux erreurs, car son "éditeur" est ultra rudimentaire : l'insertion entre deux pas de programme n'est pas possible comme sur la TI-57. Attention également à la saisie des GTO après un test (par exemple au pas 27) : il faut s'y reprendre à deux fois avec un BST. Mais, au final, avec 100 (centimes) en entrée, puis [R/S], le résultat est bien le même que sur la Casio : 4563 combinaisons possibles... après presque 6 minutes de calcul. Cela prend moins de 20s sur la PB-1000 de 1986.

dimanche 26 janvier 2020

Trappe et batterie neuves pour TI-57

Dans mon article précédent, qui date de l'année dernière (déjà !), j'avais décrit les quelques difficultés auxquelles on peut être confronté lorsque l'on souhaite rallumer en 2020 une TI-57 de 40 ans d'âge. Malgré la vieillesse de l'objet, une utilisation presque confortable reste possible, sans avoir de fil raccordé en permanence à une alimentation de labo. Pour atteindre cet objectif, on mettra de côté le chargeur original spécifique (courant alternatif en sortie), les anciennes batteries Ni-Cd hors d'usage, ainsi que le circuit redresseur intégré dans la trappe originale, parfois fatigué. On remplacera avantageusement tous ces composants par un accumulateur moderne, au format 6F22, tension 9 volts, en technologie Li-Po (très résistante aux fuites d'électrolytes) et rechargeable par un port micro USB. J'ai trouvé le mien sur banggood.com.

Accumulateur pour remplacer ceux de la TI-57

Pour les collectionneurs exigeants, l'adaptation dans la TI-57 sera sans trace et totalement réversible : ça rentre sans trou, sans couper et sans modification du connecteur original. À l'usage, l'impact sur le réalisme historique et sur les sensations un peu "cheap" procurées par cette calculette rétro est négligeable. En réalité, je n'ai rien inventé : l'astuce qui consistait à remplacer la batterie d'origine par une pile 9 volts, était connue et documentée depuis les années 80.

Adaptation trappe imprimée en 3D et pile 9V sur TI-57

Avant la soudure des broches 2,54 mm sur les fils rouge et noir (à inverser par rapport aux couleur des fils de la calculette), je vous recommande de sortir complètement deux broches de la partie en plastique noir de la réglette (coupée à trois unités). Sinon, à cause de l'élargissement du plastique par la chaleur du fer à souder, elles ne tiendront plus très bien par la suite. Pour compléter ce montage, j'ai trouvé un modèle prêt à imprimer en 3D d'une trappe compatible avec les TI de la série Majestic sur thingiverse.com. Mais comme je n'ai pas d'imprimante 3D, je l'ai commandé à un graveur professionnel grâce à une redirection sur treatstock.com. J'ai choisi "SEB Création 3D" à Phalsbourg en Moselle. La livraison a été rapide, avec deux pièces livrées pour le prix d'une : une trappe en PETG, et la même en ABS telle que je l'avais commandée. Malheureusement, la pièce en PETG s'est cassée dès la première utilisation. Le modèle 3D de la languette est donc trop fin ; exactement comme me l'avait fait remarquer "SEB Création 3D" avant de lancer la gravure. En ABS c'est un peu plus rigide, donc c'est ok. Cette adaptation, presque invisible de l'extérieur, permettra de profiter de la TI-57 pendant encore de longues années. Le seul inconvénient au final, c'est qu'il faut sortir la batterie 9V de son logement pour la recharger. Pour faciliter encore l'usage, le repositionnement de celle-ci dans le boitier de la TI-57 et le rangement des fils, avant de fermer la trappe, pourraient sans doute être améliorés.

Dos de la trappe pour TI-57 imprimée en ABS 

Pour aller plus loin avec cette calculatrice, je vous recommande de télécharger en PDF le bouquin suivant paru en 1982, environ 4 ans après la TI-57 : Mathématiques appliquées et calculatrices programmables notation algébrique directe TI 57, 58, 59 (ou bien ici) par Liviu Solomon et Marcel Hocquemiller. On y retrouve tous les programmes indispensables en calcul numérique : calcul matriciel, recherche de zéros, intégration, équations différentielles, etc. Les nombreuses astuces utilisées, pour faire rentrer ces programmes dans la mémoire très restreinte des TI, sont tout bonnement excellentes. Même si la mise en page est rudimentaire (probablement tapé à la machine à écrire mécanique), la qualité pédagogique de l'ouvrage n'en est pas moins épatante.


En conclusion, après avoir résolu le problème de l'énergie, on réalise que cette calculette scientifique programmable pas chère de la fin des années 70 est toujours capable de rendre bien des services. Dans le cadre d'un usage pédagogique, elle n'a pas grand chose à envier aux plus luxueuses calculatrices modernes.