À la recherche de documentation

Par Sylvain Glaize.

La recherche

Le projet de restauration du Micral N est lancé et au vu de son état, l’objectif de le redémarrer semble tout à fait faisable. Mais comment fonctionne-t-il ? De quoi est composée la machine ? Ne pourrait-on pas trouver un peu de documentation ?

Ce que l’on sait, c’est que la machine est architecturée autour du tout nouveau, à l’époque, Intel 8008. Et la documentation du 8008 est disponible, que ce soient les spécifications d’Intel ou quelques pages sur Internet.

Quand il s’agit de passer au Micral N, les choses se corsent. Les sites web qui traitent du 8008 sont centrés sur d’autres machines : SCELBI, Mark-8,… Le seul document que l’on trouve est un « Users Manual » (Manuel de l’utilisateur) préservé par le projet Bitsavers. Il est accompagné de quelques photos noir et blanc de cartes, accompagnées de légendes.

C’est maigre, mais cela suffira pour le moment. Et puis une centaine de pages techniques, ça reste un bon morceau de lecture.

Le 8008

La lecture des spécifications du 8008 est assez rapide. La documentation est globalement claire et assez détaillée, présentant le détail des opérations à chaque état pour chaque instruction.

Sans rentrer trop dans les détails, le 8008 est un processeur cadencé à 500 kHz (oui, cinq cents kilo Hertz) dans un boitier 18 broches, qui traite des données sur 8 bits et a une plage d’adressage de 14 bits. Comme 18 broches, c’est peu, les données sont multiplexées, ce qui se révèle important pour l’architecture du Micral N.

À l’intérieur, sept registres dont un accumulateur et une pile d’appels à 8 niveaux, non accessible programmatiquement. Et enfin un système rudimentaire d’interruption. Là, le Micral N va pouvoir apporter une solution d’un peu plus haut niveau, comme on le verra plus tard.

C’est tout petit mais c’est normal ; c’est le premier micro-processeur 8 bits.

Intel 8008 vue de dessus

Le Micral N

Le manuel du Micral N se révèle un peu plus ardu à la lecture, et ce à cause de plusieurs facteurs. Le premier est l’âge de la documentation. On ne décrit pas une machine de 1974 avec les termes de 2021.

Les autres facteurs sont plus ennuyeux. Ce que l’on peut mettre en premier lieu sur le compte d’une lecture inattentive se révèle de plus en plus évident : il y a des erreurs dans le manuel.

Les erreurs sont de plusieurs natures : des erreurs de copie, comme des confusions entre les 1 (un) et les I (i majuscule), sur l’emplacement de signaux, des explications qui contredisent les schémas…

Et il y a des manques, comme certains signaux non décrits. Ou bien des pièges, comme des signaux traduits en anglais dans le texte mais en français dans les schémas.

Cependant, la documentation reste un formidable outil pour démarrer.

Couverture du manuel de l'utilisateur du Micral N, en anglais

Une image mentale

Grâce à ces lectures, il est possible de commencer à se faire une image mentale du fonctionnement du Micral N : une série de cartes qui communiquent entre elles à travers un bus en fond de panier.

Ces cartes sont variées : une carte processeur, des cartes mémoires, des cartes de communication avec des périphériques. Certaines des cartes de l’exemplaire de l’association sont référencées dans le manuel, d’autres non. À l’inverse, certaines cartes du manuel ne sont pas présentes dans le Micral N étudié.

La conclusion est néanmoins claire : cet exemplaire a les cartes nécessaires pour faire tourner un programme.

L’émulation

L’un des objectifs de l’étude est de produire un moyen virtuel d’opérer un Micral N. De plus, nous voulons opérer une démarche parallèle : l’étude électronique et l’étude virtuelle de la machine peuvent se compléter.

Par exemple, certaines cartes communiquent entre elles directement, sans passer par le bus général. Mais nous n’avons initialement aucune idée de la manière dont elles sont connectées, nous n’avons pas ces câbles. L’émulation va permettre d’essayer certaines hypothèses et avec des aller retours avec le hardware réel, nous permettre de résoudre ces inconnues.

Une rapide passe chez les plateformes d’émulation généralistes, comme MAME ou SimH, montre qu’il n’existe pas de travail sur cette machine, même si des émulateurs du 8008 existent.

La question se pose aussi : faut-il se greffer à une de ces plateformes et profiter de leurs outils ? La question est pertinente et il y a du pour et du contre. Après réflexion, c’est l’émulateur externe qui l’emporte.

En effet, nous n’en connaissons que trop peu sur la machine, et nous ne sommes pas alors des spécialistes du 8008. Un bon moyen de s’imprégner de tout ça est de faire une implémentation de zéro.

Un autre choix est celui d’opérer au niveau des signaux et des états du 8008. Les émulateurs 8008 trouvés et analysés alors se situent tous au niveau des instructions. Ça a l’avantage de la rapidité, mais cela nécessite souvent de connaitre assez bien le fonctionnement de la machine pour adapter le reste de l’émulation. Or, nous ne connaissons pas la machine.

Émuler les signaux, cela devrait permettre à nos hypothèses d’être assez fines, et de comprendre les cartes de la machine en détail.

Et c’est ainsi que les travaux d’émulation démarrent, plein de tâtonnements. Mais cela est une histoire pour un futur article.

Illustrction d'une fonction main() simplifié

N’oubliez pas de participer à la campagne pour soutenir nos travaux ! https://micral.mo5.com