dimanche 16 février 2014

La HP-48SX : le début d'une nouvelle ère.

À défaut d'être vraiment une révolution, cette calculatrice graphique haut de gamme est un joli coup commercial de HP en 1990. Inspirée par le format des Casio de la série FX-7000G (1985) et FX-8500G (1989), la HP-48SX a été conçue dans la continuité technique de la HP-28S. Plusieurs améliorations significatives sont apportées, mais elle perd aussi 23 touches par rapport à sa devancière. Cela dit, même avec sa façade dont la sérigraphie est devenue chargée, avec des touches supportant quatre fonctions, l'ergonomie de cette HP-48 n'en souffre pas trop. La similitude entre ces machines de première génération "RPL" provient également du fameux CPU Saturn 4 bits, dont elles sont toutes équipées. Pour la connectivité externe, elle dispose toujours du port infra-rouge et, nouveauté, d'une interface RS-232C intégrée. Cette dernière nécessite tout de même un câble spécifique. On perçoit la qualité de la HP-48 dès le premier contact avec son boitier plastique de bonne facture, et son clavier au toucher agréable. C'est peut-être la touche "ON", souvent sollicitée, qui est la plus usée. Pour des raisons évidentes, elle a un peu moins de relief que les autres. Sur une HP-48S que j'ai eue entre les mains, cette touche était en panne.

L'achat de cette calculatrice m'aurait bien tenté à l'époque ; mais j'étais plus concentré sur d'autres projets autour de l'Atari ST, puis sur station Unix (HP-UX ou SunOS). J'avais des images, des graphes (au sens Dijkstra), et d'autres données complexes à traiter, qui nécessitaient des capacités de traitement importantes. En marge de ces activités "scolaires", la HP-48, malgré sa "puissance", n'aurait été qu'un violon d'Ingres. Nonosbtant ces choix du passé, ma collection actuelle de calculatrices programmables et de pockets, même assez réduite, ne pouvait pas faire l'impasse sur ce modèle mythique !

Pour tester un peu son ergonomie, on peut tenter de calculer une valeur approchée de cette expression (ci-dessous au format Casio) :

EXP(SQR(SQR(505/1491*(E^PI-PI^E)))) 

(avec E = EXP1 soit environ 2.718281828, ou INV LN1 sur TI-57)

L'enchaînement des opérations manuelles n'est pas trivial sur des calculatrices plus anciennes comme la TI-57, ou la TI-66. Sur ces machines, pourtant vendues comme supportant la notation algébrique (AOS), je préfère utiliser des STO temporaires. Sans imprimante, et en cas d'erreur, il pourrait être assez difficile de se relire. Bien entendu, sur une Casio du style FX-850P, c'est super simple. Avec la HP-48SX, comme avec la HP-28S, il y a plusieurs méthodes possibles, avec plus ou moins de RPN. Cependant, je pense que de nombreux utilisateurs privilégieront l'édition de la formule en mode algébrique. Le résulat numérique de l'expression ci-dessus est proche de 2. Si on ajoute à cette ergonomie "génétique" de la HP-48, des nouveautés, comme l'Equation Writer, ou encore le Matrix Writer, elle devient réellement performante pour le calcul.

Un calcul dans la pile de la HP-48SX.

Du coté de la programmation, on peut dire, sans exagérer outre mesure, que le langage RPL, issu de la HP-28S, était innovant pour l'époque. Ceci malgré les inconvénients de lisibilité qu'on lui connait. Les variables locales sont supportées, ainsi que la récurssivité. Avec ce dernier style de programmation, que certains n'hésitent pas à qualifier "d'élégant", il faut néanmoins faire attention aux performances, parfois catastrophiques, et à la consommation mémoire, pharaonique. Le RPL restera la règle sur le haut de gamme scientifique HP jusqu'à la HP-50G en 2006. La HP Prime propose maintenant un "HP Basic" probablement plus simple d'accès.

Au début des années 90, on assiste au décollage exponentiel du réseau internet. Et ça, ça va donner une nouvelle dimension à la HP-48. Avant l'internet, les échanges d'informations étaient limités en France par les 1200 bits/s du Minitel, sur des services comme le 3614 RTEL, par exemple. Et même le débit un peu supérieur des serveurs BBS (raccordés au RTC sans Transpac), parfois multivoie, ne changeait pas vraiment la donne. En réalité, l'audience de ces "sites" restait faible. Et plutôt que de se ruiner en factures télécoms, c'est la copie de disquettes 720 Ko qui était la règle entre geeks. Économiquement, on pourrait presque dire que ça fonctionnait comme les accords de peering internet : gratuit si l'échange était réciproque, ou bien payant dans le cas d'une trop grande dissymétrie. Pour en revenir à la HP-48, des groupes usenet populaires comme comp.sys.hp48 on joué un grand rôle dans son développement logiciel (RPL, RPL système, ou assembleur).

Pour mon test habituel de primalité, l'algorithme reste identique, mais j'ai repris le code RPL optimisé proposé par st33x. Il n'y a donc pas de STO dans la boucle (c'était une mauvaise idée), et il fait tout sur la pile :

<< DUP \/ IP            
IF OVER 2 / FP 0 == THEN
 DROP2 2                
ELSE
 3
 WHILE DUP2 > REPEAT
   IF 3 PICK OVER / FP 0 == THEN
     SWAP DROP 0 SWAP
   ELSE
     2 +
   END
 END
 IF OVER 0 == THEN
  3 ROLLD DROP2
 ELSE
  3 DROPN 1
 END
END
440 0.05 BEEP
>>

Caractères spéciaux :
- les symboles '<<'et '>>' sont les délimiteurs de programme
- '\/' correspond à la racine carrée

Le test sur 524 287 s'exécute sur HP-48SX en 16 secondes environ. Soit un score proche de celui de la HP-28S, sans overclocking, et avec un programme identique (18 secondes). On pourrait croire, d'après mes tests, que j'attache beaucoup d'importance à la performance pure des machines ? En fait il n'en est rien ! Je souhaitais seulement pouvoir identifier des ordres de grandeur, et éventuellement des "ruptures" entre les différentes générations de CPU pour calculatrices. D'autres benchmarks, comme celui de Xerxes sont bien plus complets, mais jamais exempts de défauts. Et surtout, il ne sont pas significatifs pour déterminer cette notion abstraite que l'on appelle la "puissance" d'une calculatrice.