background

John Boring Diffusion

     Strasbourg | France

Le temps des dinosaures… (presque fin ?)

samedi 6 mai 2017 18:09

Pour mon année de terminale, j'avais acheté un ordinateur de poche SHARP PC-1211, machine étonnante pour l'époque qui introduisait la programmation en BASIC dans un encombrement de calculatrices. Je me suis très vite senti à l'étroit avec cette machine si bien que l'année suivante j'ai investi dans son grand frère lorsqu'il est apparu en France à savoir le PC-1500. Il faut savoir que j'ai toujours cette machine qui a été une révolution à son époque. Son processeur, le LH 5801, est un dérivé du Z80 et la qualité de construction de cette machine est tout simplement incroyable ce qui fait qu'elle fonctionne encore, 35 ans plus tard.

J'avais aussi investi dans son module CE-150 à savoir imprimante/minitraceur et interface pour magnétocassette afin de sauvegarder/importer les logiciels ainsi que le CE-158, interface RS-232 et parallèle plus quelques modules de mémoire additionnelle. Bref, cela composait un micro-ordinateur BASIC très complet.

Le langage BASIC n'était pas le seul point intéressant de cette machine : il était aussi possible de jouer avec le langage machine et j'avais pu me procurer au Japon le manuel technique détaillant l'architecture de la machine et de son processeur. A cette époque, je me suis lancé dans ce que je pense être le projet de programmation le plus complexe que j'ai pu mener à terme à savoir la création d'un compilateur de mnémonique totalement écrit en langage machine.

Bon, dit comme ça, vous devez vous demander ce que je raconte. Voici quelques explications : quand on programme un processeur en langage machine, la façon la plus naturelle de faire est de "parler" dans son langage ce qui peut donner par exemple ce genre de chose :  FC A1 03 B2 etc. C'est sympathique, mais pas très parlant pour un humain. Alors on a "inventé" les mnémoniques qui sont simplement la traduction en langage humain (enfin plus humain) de ce qu'on demande au processeur. Ça pourrait ressembler à quelque chose comme ADD B,2 ; JMP +10… (additionner 2 au registre B, sauter à l'adresse courante plus 10…). Donc mon compilateur permettait d'écrire en mnémonique et de traduire le logiciel ainsi écrit en langage machine… Une belle pièce de logiciel en fait qui m'a demandé quelques mois d'efforts (parce qu'il a fallu que je cause "processeur" moi ;-) ), mais qui s'est avérée parfaitement fonctionnelle en fin de compte : une grande satisfaction.

Je vois que je n'en n'ai pas encore fini avec l'histoire de ce petit ordinateur. Je ferai un autre billet pour compléter cette "aventure”.

4 photos : la bestiole au complet avec ses modules externes, le diagramme de l’électronique interne, le début du code du compilateur et la première page du mode d’emploi avec la syntaxe à utiliser.