Cosmac 1802

Introduction

Ce processeur est un truc que j'ai toujours regretté de ne pas avoir connu dans ma jeunesse. Je ne vais pas refaire son historique ici, je vous propose de consulter cette page qui semble bien résumer la chose. De temps à autre, j'ai regardé son actualité, je suis même tombé sur ce genre de document. Mais je n'ai jamais fait quoi que ce soit de concret.

Emulation

Par ce weekend salement gris, pour me changer les idées, j'ai décidé de tenter d'installer cet émulateur de 1802 dans un OpenBSD4.2 tout neuf. Et je vais raconter mes tribulations.

D'après le site, il y a deux tarballs à utiliser: librcs.tgz et elf.tgz. On va commencer par le premier: pas de README, mais un Makefile. Même constat pour le second. J'ai probablement raté quelque chose sur la page web. Comme convenu à l'avance, ma démarche sera empirique.

librcs

Premier souci: make gauffre comme une limace. Premier remède: installer gmake. Affaire réglée. Deuxième écueil: awlib.c:2:22: X11/Xlib.h: No such file or directory. Solution: modifier dans le Makefile la variable INCPATH en changeant le -I/usr/X11/include en -I/usr/X11R6/include. Ouais, ça y est, c'est compilé, modulo un certain nombre de warnings que je traiterais plus tard.

elf

Ce coup-ci, c'est aussi un problème de chemin d'inclusion. Le fichier librcs.h n'est pas trouvé. C'est un peu normal, il est placé dans ../librcs/ qui n'est pas dans le chemin de recherche. Et on retrouve la même chose pour X11/Xlib.h, donc Q'DH sur la ligne de commande: C_INCLUDE_PATH=../librcs:/usr/X11R6/include gmake et la compilation se termine, toujours avec son lot de warnings.

C'est donc à l'édition de liens que nous allons faire la pause suivante: /usr/bin/ld: cannot find -lX11 qui pourtant doit bien se trouver quelque part, m'enfin. Et elle est bien là: /usr/X11R6/lib/libX11.so.10.0 mais le Makefile ne le sait pas, donc correction de la variable LIBPATH de celui-ci. Ensuite, la bibliothèque libRcs.so.1 construite à l'étape précedente n'est pas trouvée. J'ai pas trouvé (pas trop cherché non plus) comment dire à ld où trouver l'objet de ses désirs. Méthode bourin, je copie le .so en cause dans le répertoire courant. On avance, on avance...

Et ensuite ?

Ben, il va d'abord falloir finir ce petit parcours du combattant compileur lieur... Ensuite on passera à ça.