samedi 13 octobre 2018

Le haut du panier en 1984, la HP-71B

La vie est-elle plus chère aujourd'hui qu'il y a trente ans ? Si on prend l'exemple du très classieux ordinateur de poche HP-71B que j'ai sous les yeux, on serait tenté de répondre négativement. En effet, en 1984, ce petit objet fut mis en vitrine à un prix très aérien de 5690 Francs français ! De plus, à l’instar de certaines marques de voiture allemandes, la liste des options proposées par HP était longue comme le bras. Alors, même si ma tentative de comparaison de prix prenait correctement en compte l'inflation, elle trouverait rapidement ses limites. On peut néanmoins s’autoriser à penser que le HP-71B était plus cher, pour l'époque, que les smartphones 2018 les plus onéreux. Bien entendu, si on se cantonne au monde scolaire, le top de la calculette autorisée aux examens reste actuellement bien plus abordable que la somme qu'on aurait dû débourser au début des années 80.

Sans disposer des chiffres de ventes officiels, j’ai l’impression que le HP-71B était moins répandu en France que ses concurrents japonais de la même génération ; à savoir le Sharp PC-1500 et le Casio PB-700. La première fois que j’ai entendu parler de la 71B, c’est lorsque je me suis intéressé à nouveau aux machines rétro il y a quelques années, et notamment à la HP-28S de 1988. En effet, ces deux HP partagent un certain nombre de points communs, et notamment leur architecture CPU Saturn 4 bits. C'est grâce à la documentation publique abondante de la 71B que les développements communautaires les plus intéressants de la 28S, bien plus fermée, ont été rendus possibles. Néanmoins, malgré les sept ouvertures présentes sur son boitier, en plus de la trappe à pile, de la prise pour un chargeur externe et de la fente pour le lecteur de cartes magnétiques, l'adjectif "ouvert" s'applique difficilement à la 71B. En effet, bien que sa documentation soit abondante, il reste selon moi un produit propriétaire fermé, qui ne supporte que les standards HP. Par exemple, l'échange de données avec un ordinateur, à travers l'interface HP-IL, reste onéreux et compliqué, même en 2018. Malgré ces réticences, j’ai fini par craquer, et par enchérir sur une HP-71B en bon état sur eBay.

La première chose que j'ai eu envie de calculer, c'est la factorielle de 70. En effet, la plupart des calculettes équivalentes sont limitées à 69!. Ici, le résultat approché de FACT(70) s'affiche sans erreur de dépassement de capacité : 1.197857167E100. Le HP-71B est effectivement la première calculette à proposer une implémentation de la norme IEEE 754 (1985). On a par exemple la commande INF pour symboliser l'infini, ou encore MAXREAL qui correspond à 9.99999999999E499 sur HP-71B.

Sur le HP-71B, quatre trappes en face avant sont prévues pour insérer des extensions mémoires.

Les touches "Rotate and Clic" sont typiques des HP de l'époque, mais leur disposition est ici originale. L'usage tenu à deux mains, loin d'une table, est possible ; contrairement à la configuration à charnière de ma PB-1000 favorite qui est conçue pour être utilisée posée à plat exclusivement. La tenue de cette HP-71B rigide, en manipulant le clavier à deux pouces, est possible occasionnellement. A l'allumage, on se retrouve en mode d'édition "remplacement", ce qui est classique pour cette génération de pocket. Par contre, la touche [INS] pour le mode insertion est ici nommée [I/R]. Dans le même style, l'habituelle touche [DEL] est ici remplacée par [-CHAR]. D'autre part, la touche [SPC] n'est pas plus large que les autres.

Dans la documentation il est mentionné trois modes d'opération :
  1. mode éxécution Basic. Dans ce mode, il est possible de faire des calculs directs, sans taper "PRINT". C'est le mode par défaut.
  2. mode édition programme Basic. En fait, c'est presque le même que le (1). Mais la machine détecte automatiquement que la ligne de programme en cours de saisie commence par un numéro.
  3. mode calcul. On doit l'appeller par la combinaison des deux touches [f][CALC]. Ce n'est pas un mode RPN, mais il affiche néanmoins le résultat des calculs intermédiaires. L'équivalent de la touche [ANS] des Casio est ici nommée [RES].

Le HP-71B est facile à utiliser comme une calculette en notation algébrique directe.
Avec le langage Basic relativement standard du HP-71B, le portage de mon programme habituel de test de primalité est ultra rapide. Le symbole "@" est nécessaire pour séparer plusieurs instructions sur la même ligne. C'est un peu inhabituel par rapport au ":" que l'on trouve dans d'autres Basic.

10 INPUT "N?";N
20 J=INT(SQR(N)) @ I=2
30 IF FP(N/2)=0 THEN 80
40 FOR I=3 TO J STEP 2
50 IF FP(N/I)=0 THEN 80
60 NEXT I
70 BEEP @ PRINT "1 "; @ GOTO 10
80 PRINT I; @ GOTO 10

Le test sur le nombre 524 287 s'exécute ici en 10 secondes environ. Ce score est un peu meilleur que celui de ses contemporains de 1984, à savoir le Casio PB-700 et le Sharp PC-1500A. Mais, bien entendu, ce n'est pas seulement avec le seul argument de la vitesse que l'on peut justifier un tel écart de prix.

Mon deuxième programme de test, qui teste si un nombre est de Keith, et qui, dans le cas contraire affiche le nombre de Keith suivant, est lui aussi très simple à convertir. Si vous avez oublié ce qu'est un nombre  de Keith, j'avais détaillé un algorithme dans mon article précédent sur la WP-34S.

10 DIM N(10)
20 INPUT"N?";N1
30 L=INT(LOG10(N1))+1 @ M=N1 @ S=0
40 FOR I=L TO 1 STEP -1
50 N(I)=MOD(M,10) @ S=S+N(I) @ M=INT(M/10) @ NEXT I
60 I=I+1 @ IF I>L THEN I=1
70 M=2*S-N(I) @ N(I)=S @ S=M @ IF S<N1 THEN 60 
80 IF S=N1 THEN BEEP @ PRINT S;"est un Keith" @ END
90 N1=N1+1 @ GOTO30

En Basic basique donc, le Saturn cadencé à 640 kHz seulement s'en sort bien sur ce calcul entier un peu compliqué, avec un score en moins de 5 min 30 s pour trouver le Keith 7385 en commençant le calcul à partir de N=7000.

En conclusion, cette machine polyvalente et riche en fonctions reste toujours passionnante même 34 ans plus tard. En dehors de l'étroitesse de son afficheur LCD, elle n'a qu'un défaut majeur, c'est son prix !

Aucun commentaire:

Enregistrer un commentaire