TOULMATH: le Toulouse Math ROM
Publié : mer. 27 juil. 2022 10:26
Cet article rassemble quelques informations sur un module méconnu et mystérieux: le Toulouse Math ROM (1985-1986).
Tout d'abord, ne pas le confondre avec le TOULROM (Toulouse ROM, 1982-1983) qui était une compilation d'outils pour développement micro-code.
L'histoire:
Le Toulouse Math ROM n'a jamais été un module physique, seulement au mieux un jeu d'EPROM à l'époque, ou de nos jours un fichier ROM image.
J'en avais vaguement souvenir, mais n'avais jamais réussi à en localiser une copie.
Il est réapparu il y a 2 ans de façon inattendu, dans les archives de Steen Petersen, l'un des créateurs du module HEPAX:
https://www.hpmuseum.org/forum/thread-15609-post-137919.html
Son origine est intimement lié au club PPC-Toulouse, d'où le nom de cette ROM.
Fin 1984, un membre PPC-T (Eric Aubourg) a proposé de réaliser un module Math amélioré, le module Math de HP étant considéré par beaucoup comme d'un niveau très moyen.
Plusieurs programmes RPN ont été rapidement proposés (matrices, polynômes, statistiques, ...) au cours du premier semestre 1985.
Quelques fonctions microcode ont été développées (fonctions hyperboliques, conversion sphérique-rectangulaire), et des fonctions sur les nombres complexes étaient prévues.
Mais voilà, le module Advantage de HP est arrivé au milieu de l'année 1985, et cela rendit immédiatement plusieurs programmes obsolètes, en particulier les fonctions matricielles.
Bien que les fonctions microcodes hyperboliques et complexes restaient pertinentes, cela a donné un sérieux coup au projet TOULMATH.
J'ai mentionné Steen Petersen, il apparait en fait que Steen était impliqué dans le projet TOULMATH assez tôt (il est cité dans un compte rendu dans le numéro de mai 1985 de la revue Micro-Revue), en particulier il a écrit la partie pile complexe.
Il semble que Steen et Eric aient continué le projet TOULMATH encore pendant un temps au cours de l'année 1986, en abandonnant tout ce qui était code RPN, et en ne gardant que la partie microcode.
Le projet TOULMATH en est resté à ce stade, et pour ne rien arranger le club PPC-Toulouse s’arrêta courant 1987, empêchant toute diffusion ou reprise par d'autres du projet.
De son coté Steen devait se tourner vers le développement du fameux module HEPAX (les premiers protos sont apparus début 1987), avec un certain succès comme on le sait...
Pour plus d'information sur cette histoire juste résumée ici, j'ai rassemblé tous les articles publiés à ce sujet dans Micro-Revue:
toulmath_historique.pdf
Le TOULMATH 0C:
Cette version, provenant des archives de Steen, tient dans une seule page de 4K et est la seule version connue.
Elle est maintenant disponible au format ROM (TOULMATH.ROM) dans les archives rom_files_xxxx pour le 41CL (aussi utilisable avec tout autre émulateur utilisant les fichiers ROM):
http://www.systemyde.com/hp41/files.html
et également ici au format MOD (ainsi que TOULROM) pour utilisation dans l'émulateur V41 (merci à "Mike" pour la création des fichiers MOD):
http://www.hp41.org/LibView.cfm?Command ... temID=2140
La version 0C n'est qu'en partie documentée pour la partie pile complexe et fonctions complexes dans un article tardif de Eric paru dans Micro-Revue 15 (voir ma compilation d'articles).
En complément, j'ai réalisé une référence rapide avec une description sommaire de la totalité des fonctions du module, en attaché ici: A noter que l'article de Micro-Revue mentionne un certain nombre de fonctions qui ne sont pas présentes dans la ROM 0C de Steen !
On peut supposer que Eric (auteur de l'article) avait, ou envisageait une version plus complète, peut-être sur 8K puisque la ROM connue comporte déjà 64 entrées, soit le maximum pour une ROM 4K..
Le mode complexe est le principal apport de TOULMATH, mais on trouve aussi une fonction de générateur de nombres aléatoires RAND et ses fonctions associées STORAND et RCLRAND, clairement inspirées des équivalents du HP-15C.
Mais cela va plus loin qu'une simple ressemblance, en fait le RAND du TOULMATH est l'exact équivalent du HP-15C !
C'est très étonnant, venant d'une époque ou il n'y avait aucun moyen pour les amateurs d'explorer la ROM du 15C.
Le RAND est certainement une des réussites de ce module, après le mode complexe.
Quelques tests montrent cependant que cette version de TOULMATH n'était pas vraiment finalisée, par exemple:
- les fonctions hyperboliques SH et TH ont des performances modestes:
exemple 0.005 SH :
TOULMATH 0C ---> 0.005000020950
HP-11C/15C -----> 0.005000020833 (correct)
la cause en étant la formule utilisée SH=(e^x+e^(-x))/2 , inadéquate pour garantir la précision pour x<<1.
Le module Math HP, en RPN, fait mieux!
- les fonctions COMB et PERM apparaissent sérieusement boguées, avec une erreur importante inexplicable:
69 ENTER PERM:
TOULMATH 0C ---> 1.711224435e98
HP-11C/15C -----> 1.711224524e98
ou pire encore:
300 150 COMB:
TOULMATH ----> 9.375949000e88
HP-11C/15C --> 9.375970277e88
Là encore, un code RPN fait mieux !
Je ne peux pas penser que des développeurs n'étaient pas conscients de ces défauts, et il est très possible qu'une version déboguée ait existé quand Eric a publié son article sur la version 0C dans Micro-Revue.
Toute information à ce sujet serait la bienvenue.
Pour terminer, je suis conscient que ce forum est peu actif, mais "Le site du HP-41CX" m'a semblé le lieu le plus approprié pour publier ces quelques informations sur ce module.
J-F
Tout d'abord, ne pas le confondre avec le TOULROM (Toulouse ROM, 1982-1983) qui était une compilation d'outils pour développement micro-code.
L'histoire:
Le Toulouse Math ROM n'a jamais été un module physique, seulement au mieux un jeu d'EPROM à l'époque, ou de nos jours un fichier ROM image.
J'en avais vaguement souvenir, mais n'avais jamais réussi à en localiser une copie.
Il est réapparu il y a 2 ans de façon inattendu, dans les archives de Steen Petersen, l'un des créateurs du module HEPAX:
https://www.hpmuseum.org/forum/thread-15609-post-137919.html
Son origine est intimement lié au club PPC-Toulouse, d'où le nom de cette ROM.
Fin 1984, un membre PPC-T (Eric Aubourg) a proposé de réaliser un module Math amélioré, le module Math de HP étant considéré par beaucoup comme d'un niveau très moyen.
Plusieurs programmes RPN ont été rapidement proposés (matrices, polynômes, statistiques, ...) au cours du premier semestre 1985.
Quelques fonctions microcode ont été développées (fonctions hyperboliques, conversion sphérique-rectangulaire), et des fonctions sur les nombres complexes étaient prévues.
Mais voilà, le module Advantage de HP est arrivé au milieu de l'année 1985, et cela rendit immédiatement plusieurs programmes obsolètes, en particulier les fonctions matricielles.
Bien que les fonctions microcodes hyperboliques et complexes restaient pertinentes, cela a donné un sérieux coup au projet TOULMATH.
J'ai mentionné Steen Petersen, il apparait en fait que Steen était impliqué dans le projet TOULMATH assez tôt (il est cité dans un compte rendu dans le numéro de mai 1985 de la revue Micro-Revue), en particulier il a écrit la partie pile complexe.
Il semble que Steen et Eric aient continué le projet TOULMATH encore pendant un temps au cours de l'année 1986, en abandonnant tout ce qui était code RPN, et en ne gardant que la partie microcode.
Le projet TOULMATH en est resté à ce stade, et pour ne rien arranger le club PPC-Toulouse s’arrêta courant 1987, empêchant toute diffusion ou reprise par d'autres du projet.
De son coté Steen devait se tourner vers le développement du fameux module HEPAX (les premiers protos sont apparus début 1987), avec un certain succès comme on le sait...
Pour plus d'information sur cette histoire juste résumée ici, j'ai rassemblé tous les articles publiés à ce sujet dans Micro-Revue:
toulmath_historique.pdf
Le TOULMATH 0C:
Cette version, provenant des archives de Steen, tient dans une seule page de 4K et est la seule version connue.
Elle est maintenant disponible au format ROM (TOULMATH.ROM) dans les archives rom_files_xxxx pour le 41CL (aussi utilisable avec tout autre émulateur utilisant les fichiers ROM):
http://www.systemyde.com/hp41/files.html
et également ici au format MOD (ainsi que TOULROM) pour utilisation dans l'émulateur V41 (merci à "Mike" pour la création des fichiers MOD):
http://www.hp41.org/LibView.cfm?Command ... temID=2140
La version 0C n'est qu'en partie documentée pour la partie pile complexe et fonctions complexes dans un article tardif de Eric paru dans Micro-Revue 15 (voir ma compilation d'articles).
En complément, j'ai réalisé une référence rapide avec une description sommaire de la totalité des fonctions du module, en attaché ici: A noter que l'article de Micro-Revue mentionne un certain nombre de fonctions qui ne sont pas présentes dans la ROM 0C de Steen !
On peut supposer que Eric (auteur de l'article) avait, ou envisageait une version plus complète, peut-être sur 8K puisque la ROM connue comporte déjà 64 entrées, soit le maximum pour une ROM 4K..
Le mode complexe est le principal apport de TOULMATH, mais on trouve aussi une fonction de générateur de nombres aléatoires RAND et ses fonctions associées STORAND et RCLRAND, clairement inspirées des équivalents du HP-15C.
Mais cela va plus loin qu'une simple ressemblance, en fait le RAND du TOULMATH est l'exact équivalent du HP-15C !
C'est très étonnant, venant d'une époque ou il n'y avait aucun moyen pour les amateurs d'explorer la ROM du 15C.
Le RAND est certainement une des réussites de ce module, après le mode complexe.
Quelques tests montrent cependant que cette version de TOULMATH n'était pas vraiment finalisée, par exemple:
- les fonctions hyperboliques SH et TH ont des performances modestes:
exemple 0.005 SH :
TOULMATH 0C ---> 0.005000020950
HP-11C/15C -----> 0.005000020833 (correct)
la cause en étant la formule utilisée SH=(e^x+e^(-x))/2 , inadéquate pour garantir la précision pour x<<1.
Le module Math HP, en RPN, fait mieux!
- les fonctions COMB et PERM apparaissent sérieusement boguées, avec une erreur importante inexplicable:
69 ENTER PERM:
TOULMATH 0C ---> 1.711224435e98
HP-11C/15C -----> 1.711224524e98
ou pire encore:
300 150 COMB:
TOULMATH ----> 9.375949000e88
HP-11C/15C --> 9.375970277e88
Là encore, un code RPN fait mieux !
Je ne peux pas penser que des développeurs n'étaient pas conscients de ces défauts, et il est très possible qu'une version déboguée ait existé quand Eric a publié son article sur la version 0C dans Micro-Revue.
Toute information à ce sujet serait la bienvenue.
Pour terminer, je suis conscient que ce forum est peu actif, mais "Le site du HP-41CX" m'a semblé le lieu le plus approprié pour publier ces quelques informations sur ce module.
J-F