Émulation Thomson TO7/70 et TO8 avec MESS

Linux Essentiel HS n° 001 | juillet 2012 | Emmanuel Kasper
Creative Commons
  • Actuellement 0 sur 5 étoiles
0
Merci d'avoir participé !
Vous avez déjà noté cette page, vous ne pouvez la noter qu'une fois !
Votre note a été changée, merci de votre participation !
Je vais vous parler d'un temps que les moins de 20 ans ne peuvent pas connaître : un temps où le PC s'appelait encore micro-ordinateur, où l'on chargeait ses programmes depuis un lecteur de cassettes, et où l'on trouvait des cartes mères « made in France ». La famille la plus connue de cette micro-informatique française, les Thomson TO et MO, sont émulés par MESS, l'émulateur multiplateforme. MESS est un émulateur très proche du hardware, dont le but est d'émuler le plus finement possible le matériel sans passer par des hacks, qui rendraient l'émulation plus rapide au détriment de la compatibilité avec le hardware original.

À l'heure actuelle, mess est disponible dans les dépôts de Fedora et Debian Testing. Pour Debian Stable et Ubuntu, il est possible de créer facilement un paquet DEB, en suivant les instructions de la page suivante : http://wiki.debian.org/SimpleBackportCreation.

1. Présentation générale de MESS

MESS émule les composants matériels d'un ordinateur, mais n'émule ni le BIOS de celui-ci, ni le contenu des différentes ROM (composants électroniques) de la carte mère qui contrôlent le clavier, l'affichage graphique, le lecteur de disquettes. Pour cette raison, avant de pouvoir utiliser MESS, nous devons tout d'abord récupérer ces fameuses ROM.

La méthode fastidieuse consiste à faire un dump (une copie) des ROM de votre Thomson, ce qui requiert en général des connaissances en électronique assez poussées. La méthode simple, si vous êtes en possession de l'ordinateur original, est de télécharger un dump déjà effectué par quelqu'un d'autre. Antoine Miné, l'auteur du support Thomson dans Mess, a mis à disposition sur son site un dump des ROM des principaux ordinateurs Thomson.

De même, pour les logiciels destinés à tourner sur votre TO/MO, il vous faudra obtenir une copie de ceux-ci sur votre ordinateur. La plupart des logiciels disponibles pour Thomson ont maintenant été transférés sur PC et sont disponibles sur le site http://dcmoto.free.fr.

N'oubliez pas que légalement, vous n'êtes autorisé à télécharger qu'une copie de sauvegarde des logiciels dont vous disposez déjà.

Note

L'émulation MESS se voulant la plus près possible du matériel original, cela entraîne des à-côtés parfois inattendus. Ainsi, dans l'émulation d'un Thomson TO7/70 avec un lecteur de cassettes, il vous faudra attendre dans l'émulateur le même temps que sur un TO7/70 lors du chargement d'une cassette : c'est-à-dire 5 minutes pour un programme de 30 ko !

2. Cas pratique : cartouche Logo sur un Thomson TO7/70

2.1 Émulation du matériel

Connaissez-vous le langage Logo ? Avez-vous seulement déjà programmé avec un langage de programmation dont les mots-clés sont en français ? Une expérience intéressante !

Vérifions tout d'abord l'emplacement dans lequel MESS va chercher les ROM nécessaires :

mess -showconfig | grep rompath

rompath                   $HOME/mess/roms;/usr/share/games/mess/roms

Créons ce répertoire s'il n'existe pas :

mkdir -p $HOME/mess/roms

On récupère maintenant les ROM depuis le site d'Antoine Miné :

cd $HOME/mess/roms

wget http://www.di.ens.fr/~mine/mess/bios/thomroms2.zip

unzip thomroms2.zip

On vérifie que les ROM sont bien correctes pour MESS :

mess -verifyroms to770

romset to770 is good

1 romsets found, 1 were OK.

Créons maintenant un répertoire pour les logiciels de notre TO7/70 :

mkdir $HOME/mess/software-to770

Puis, récupérons le programme Logo, jadis distribué sous forme de cartouches Memo7 :

cd $HOME/mess/software-to770

wget http://dcmoto.free.fr/programmes/logo/logo_memo7.zip

Finalement, lançons le TO7/70 émulé :

mess to770 -cart logo_memo7.zip

Après avoir sélectionné 1 dans le menu de démarrage, vous devriez arriver à l'écran que vous pouvez observer en figure 1.

Si vous constatez des problèmes de correspondance avec votre clavier, il peut s'avérer judicieux de sélectionner une keymap (une description de l'agencement du clavier) additionnelle au lancement de MESS :

mess to770 -cart logo_memo7.zip -keymap -keymap_file /usr/share/games/mess/keymaps/km-fr.txt

Fig. 1 : L'invite de commande Logo

2.2 Coup d'œil sur Logo

Nous n'allons pas quitter notre TO7/70 sans un tour d'horizon du langage Logo. Wikipédia vous en apprendra plus sur son origine et ses parrains prestigieux (Lisp et MIT, d'où sortirent aussi le projet GNU). Logo est un excellent langage d'initiation à la programmation, de par le côté graphique de sa fameuse tortue, et permet une approche de la programmation procédurale, contrairement à la plupart des Basic des années 80.

Un manuel Logo complet est disponible sur le site http://dcmoto.free.fr, nous nous contenterons ici d'un court aperçu.

2.2.1 Bonjour tout le monde

Tout d'abord, la commande centrale de tout langage de programmation, le fameux « hello world ». Comme Logo parle français, nous allons lui demander de nous saluer en français :

ECRIS [BONJOUR TOUT LE MONDE]

Le code ci-dessus affichera la salutation habituelle. Pour afficher les crochets, vous devez entrer [Ctrl]+[A] et [Crtl]+[Z], de même que sur un TO7/70 on utilise respectivement [CNT]+[A] et [CNT]+[Z]. On efface avec [Ctrl]+[H]. [Shift]+[Espace] permet de basculer entre minuscules et majuscules, cependant Logo travaille par défaut en majuscules.

2.2.2 Dessins avec la tortue

Afin de pouvoir donner un aspect graphique à la programmation, le Logo dispose de sa fameuse tortue, que nous allons utiliser ici pour dessiner un triangle :

-Affiche la tortue (Montre Tortue) :

MT

-Tourne la tortue de 120 degrés vers la droite (Tourne Droite) :

TD 120

-Avance la tortue de 80 :

AVANCE 80

-On répète l'opération :

TD 120

AVANCE 80

TD 120

AVANCE 80

-Et on peut ensuite effacer l'écran (Vide Écran) :

VE

2.2.3 Programmation procédurale

Comment afficher notre triangle en tapant moins de commandes ?

Définissons une primitive, un nouveau mot du langage Logo, que nous appellerons « COTE », pour tracer un côté du triangle et positionner la tortue :

POUR COTE

AVANCE 80

TD 120

FIN

On tracera alors un triangle simplement en entrant :

COTE COTE COTE

On peut aussi définir une procédure « TRIANGLE », qui videra l'écran et tracera nos trois côtés :

POUR TRIANGLE

VE

COTE

COTE

COTE

FIN

On tracera alors le triangle en tapant encore moins de caractères avec :

TRIANGLE

Si cette initiation à la programmation vous a plu, vous pouvez continuer avec le module Turtle de Python, inspiré par la tortue Logo (ce module est inclus en standard dans Python).

Fig. 2 : Contrairement au Basic de la plupart des ordinateurs 8 bits des années 80, le Logo permet de s'initier à la programmation procédurale via des définitions de fonctions.

3. Cas pratique : jeu Sapiens sur TO8D

Ceux dont le premier ordinateur n'était équipé que d'un lecteur de cassettes se rappellent le progrès formidable du passage à la disquette. Un jeu qui charge maintenant en 15 secondes au lieu de 5 minutes ! Inimaginable.

On récupérera tout d'abord les ROM nécessaires pour le TO8D de la même façon que pour le TO7/70 (voir paragraphe précédent). Vérifions ensuite la validité de ces ROM :

mess -verifyroms to8d

romset to8d [to8] is good

1 romsets found, 1 were OK.

Créons maintenant un répertoire pour les logiciels de notre TO8D :

mkdir $HOME/mess/software-to8d

Puis, récupérons le programme Sapiens, sous forme de disquette :

cd $HOME/mess/software-to8d

wget http://dcmoto.free.fr/programmes/sapiens/sapiens_to8fd.zip

Finalement, lançons le TO8D émulé :

mess to8d -flop1 sapiens_to8fd.zip

Après avoir sélectionné l'option B dans le menu de démarrage et attendu une dizaine de secondes pour le chargement, vous devriez voir le soleil se lever sur le monde préhistorique de Sapiens...

Fig. 3 : Sapiens, un jeu d'aventure sur Thomson. Proférer des tombereaux d'insultes vous y attire à coup sûr des réactions agressives.

Conclusion

Si cette approche de MESS vous a plu et que vous disposez d'un vieil ordinosaure obscur, sachez que MESS émule près de 600 systèmes différents, des plus courants (IBM PC) aux plus rares (Arcadia 2001, quelqu'un connaît ?). Le choix d'une émulation la plus fidèle possible au matériel original désavantage MESS en termes de performance pour les plateformes les plus récentes (N64, Playstation), mais pour les ordinateurs et consoles 8/16 bits des années 70 et 80, MESS reste une référence.