dimanche 2 novembre 2014

La HP 48G, un monument des années 90

Après l'arrêt par HP des modèles 48S et 48SX, les 48G et 48GX sortent simultanément en 1993. Ces modèles, très aboutis, resteront en vente jusqu'en 2003 ; une longévité exceptionnelle pour un produit technologique. La compacité de la 48, sa robustesse, et sa prise en main agréable, sont inscrits dans ses gènes. Parmi les améliorations de la G, son écran LCD est cité dans de nombreux articles. Et si sa résolution reste inchangée, il est effectivement plus contrasté. Étonnamment, même l'encre du manuel de la HP 48G parait plus noire que celle du manuel de sa grande sœur ! Pour rendre la G plus moderne, HP a apporté quelques changements dans les menus, ainsi que sur la sérigraphie du clavier. Le temps d'adaptation reste court. Mais, à l'usage, il faut supporter quelques lenteurs sur les "nouveautés conviviales" de la 48G. Par exemple, on doit patienter pendant quelques secondes lors de l'appel de certains menus déroulants, comme MEMORY. Cela dit, pour les utilisateurs qui maîtrisent et apprécient la pile illimitée, les concepts de variable-objet, le langage RPL, et le contenu de sa ROM de 512 Ko, cette HP 48G est un outil diablement efficace.

Les soeurs : HP 48SX et HP 48G

Lorsque l'on surfe sur les nombreux sites internet qui concernent cette machine, on découvre que la bibliothèque de programmes de la série G est encore plus vaste que celle de la S. Néanmoins, la HP 48G, limitée à 32 Ko de RAM, est rapidement dépassée. Cette capacité non extensible est trop juste pour faire tourner les meilleures applications, les jeux les plus sophistiqués, ou encore le très impressionnant Meta Kernel (ROM de remplacement). Par conséquent, pour profiter de toute la richesse du catalogue, on comprend rapidement l'intérêt des versions GX. Cela dit, les bricoleurs pourront faire subir à la version G une opération à cœur ouvert, qui consiste à lui souder, en interne, une ou plusieurs RAM de 128 Ko .

Une autre bémol sur ces nombreux programmes que l'on peut librement copier : le code source n'est pas toujours fourni (assembleur). De plus, la documentation est parfois succincte, et la traduction souvent absente (allemand, espagnol, italien...). Avec les années, tout cela finit par rendre la réutilisation de ces logiciels un peu aléatoire et complexe ; du moins par un non spécialiste de la HP 48.

Sous GNU/Linux, le programme 'ckermit', bien qu'un peu chargé en fonctionnalités, est plutôt pratique à utiliser pour le transfert des fichiers binaires vers la calculatrice, via le câble HP spécique à 4 pinoches. En sus, un adaptateur USB-serial, à base de chipset FTDI ou Prolific par exemple, est indispensable pour le raccordement à un PC récent.

C-Kermit, sous GNU/Linux

Maintenant, intéressons-nous aux performances en RPL mode utilisateur. Que vaut la HP 48G ? Je recopie une nouvelle fois mon petit programme, identique aux versions HP 28S et 48S :

<< 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 524287 s’exécute ici en 10s environ, un score correct. Sans être trop exigeant sur le caractère significatif de ce mini benchmark, on constate que la victoire par rapport à la HP 48SX n'est pas écrasante. La fréquence CPU a pourtant été doublée, à 4 MHz sur la G, alors que la mémoire reste cadencée à 2 MHz sur les deux générations.

Pour finir, j'ai fait un test de primalité rapide sur 524287, avec le programme "Factor" écrit par Jurjen Bos et Klaus Kalb en 1991. Sans surprise, l'affichage du résultat est instantané sur HP 48G. Cela met en évidence, si besoin était, l'intérêt des routines en langage machine et des algorithmes avancés (Miller-Rabin, Selfridge, Pollard).

1 commentaire:

  1. Je viens de retaper votre programme (amélioré p/r à votre premier avec les STO...). Même résultat ici pour le 524287 (forcément j'ai une 48GX). Par hasard j'essaie aussi avec le 9, et j'obtiens 1, comme si il était premier, il aurait dû sortir avec 3. Je ne sais pas encore pourquoi.
    J'ai un peu de mal à m'y remettre ;-) et l'édition du code à l'écran demande de la concentration : pas d'indentation, lenteur, visualisation mentale de la pile. Je m'aide avec du papier et feuille Excel. Tout rouillé, ça fait des années que je n'ai plus touché à du RPN. au plaisir.

    RépondreSupprimer