L'émulateur Thomson TO7-70
version 1.4 (Linux/X11)
Copyright © 1996 Sylvain Huet, 1999 Eric Botcazou
Thom est un émulateur TO7-70 pour PC, i.e il reproduit aussi fidèlement que possible le fonctionnement d'un autre micro-ordinateur: le Thomson TO7-70.
Il est basé sur la version 1.5 du FunzyTO7-70 de Sylvain Huet, dont les modules d'entrées/sorties ont été réécrits et l'interface utilisateur totalement refondue.
Thom ne réalise lui-même que l'émulation matérielle du TO7-70, à savoir celle du microprocesseur Motorola MC6809E, de la carte mémoire, de la carte vidéo et des périphériques suivants: crayon optique, manettes de jeux et lecteur de cassettes; le système d'exploitation qui coordonne le tout n'est pas inclus et il faut donc utiliser une copie de la ROM d'un TO7-70 original pour faire tourner Thom.
La configuration nécessaire pour faire tourner l'émulateur est la configuration standard des distributions récentes; seule la présence obligatoire de la version 1.2 du toolkit GTK+ peut nécessiter une mise à jour du système (RedHat 5.x, SuSE 5.x), disponible ici.
Pour installer l'émulateur, il suffit de désarchiver thom-1.4-i586.tar.gz et thom-rom.tar.gz dans un même répertoire. Le programme éxécutable se nomme thom .
Le lancement du programme éxécutable provoque l'affichage de l'entête et des messages d'initialisation, puis le démarrage de l'émulation.
Thom accepte les paramètres suivants sur la ligne de commande:
[-help] | affiche l'aide en ligne |
[-m file.m7] | place la cartouche file.m7 dans le lecteur |
[-fast] | active la pleine vitesse de l'émulateur |
[-nosound] | supprime le son de l'émulateur |
[-geometry wxh+x+y] | spécifie la géométrie de la fenêtre |
[-noshm] | désactive l'utilisation de l'extension MIT-SHM |
[-display displayname] | spécifie le nom du serveur X à utiliser |
Thom peut fonctionner dans les quatres modes graphiques X11 les plus courants sur PC, à savoir 8,16,24 et 32 bits.
Il se lance par défaut dans une fenêtre 640x400 (sans compter le pourtour de l'écran). L'option -geometry autorise une unique autre taille de fenêtre: 320x200; l'affichage est alors plus rapide.
Le clavier du TO7-70 est émulé dans sa totalité, y compris les combinaisons de touches à base de CNT et de ACC.
L'émulation est (pratiquement) fidèle au clavier du PC (AZERTY), c'est à dire que le caractère affiché sur l'écran est (pratiquement) toujours celui inscrit sur la touche PC frappée, pourvu qu'il existe sur le clavier TO7-70. Les deux SHIFT jouent leur rôle naturel, et comme sur le clavier original, les dix chiffres de la première ligne de touches ne sont pas shiftés.
Néanmoins, un caractère fait exception: # est mappé sur é (SHIFT + 2).
La touche STOP est mappée sur le TAB du PC, CNT est mappée sur le CTRL gauche du PC, RAZ sur FIN, ACC sur le ALT, HOME sur HOME, les 4 flèches sur les 4 flèches, INS sur INSER, EFF sur SUPPR.
Le pavé numérique du PC émule les huit directions de la manette 0. Le bouton Fire est mappé sur le CTRL droite.
Dans le même temps, le bloc gauche clavier (A-E, Q-D, W-C) émule la manette 1, tout en continuant à renvoyer les lettres au TO7-70. Le bouton Fire est mappé sur le CTRL gauche.
Comme sur une manette réelle, seule une direction est prise en compte et c'est celle de la dernière touche appuyée.
La souris permet d'émuler le bon vieux crayon optique du TO7-70. Le bouton gauche de la souris figure le bouton du crayon. Si le pointeur est gênant, le bouton droit de la souris permet de le faire disparaître et réapparaître alternativement.
Le son du TO7-70 est émulé par le biais de la carte son du PC. Les deux générateurs sonores 1-bit interne et 6-bit externe (interface Musique et Jeux) sont émulés.
Thom utilise le périphérique sonore par défaut du système (via Open Sound System).
L'appui sur la touche ESC du clavier du PC suspend l'émulation et ouvre le Panneau de contrôle.
Ce menu permet de communiquer avec l'émulateur et d'accéder aux périphériques du TO7-70 (lecteur de cartouches et lecteur de cassettes).
Les deux premiers boutons sont à utiliser avec précaution:
- Réinitialiser le TO7-70: il correspond à l'appui sur le bouton Reset du TO7-70 (situé à droite). Comme sur le véritable TO7-70, il n'est pas toujours suffisant pour sortir d'un plantage.
- Redémarrer à froid le TO7-70: plus violent, il correspond à éteindre puis rallumer le TO7-70. A priori rien ne lui résiste.
L'option vitesse permet de régler celle de l'émulation:
- Vitesse exacte: émulation du MC6809E à 1Mhz strictement, c'est le choix normal, le seul utilisable pour les jeux et pour l'émulation sonore.
- Vitesse maximale: émulation du MC6809E à la vitesse maximale atteinte par le PC (à titre d'exemple un P200 émule un MC6809E à 10Mhz). C'est utilisable pour les utilitaires, c'est même assez agréable d'avoir un TO7-70 rapide, mais le son est alors désactivé.
Ce menu permet de sélectionner un fichier au format Mémo7 (extension .m7) et de le charger comme cartouche (bouton "Parcourir..."). L'intitulé de la cartouche apparaît dans la zone de gauche. A noter que Thom effectue alors un redémarrage à froid afin que la cartouche soit effectivement prise en compte et apparaisse sur l'écran de démarrage.
Il est conseillé de mettre tous les fichiers Mémo7 dans un même sous-répertoire memo7 du répertoire de l'émulateur pour une sélection plus aisée.
Vous pouvez ici non seulement sélectionner le fichier au format K7 (extension .k7) qui joue le rôle de cassette (bouton "Parcourir...") mais aussi choisir de protéger son accès en écriture (case "prot.") ou encore rembobiner la cassette, i.e revenir au début du fichier (bouton "Rembobiner la cassette"). Attention, tout changement de protection d'accès en écriture provoque automatiquement le rembobinage.
Là encore, il est conseillé de mettre tous les fichiers K7 dans un même sous-répertoire k7 du répertoire de l'émulateur pour une sélection plus aisée.
Aucune pour le moment.
Merci d'utiliser le mail pour toute remarque, suggestion et pour signaler les inévitables bugs.
- Sylvain Huet qui a bâti l'architecture et le coeur de l'émulateur,
- The GTK+ Team pour leur toolkit souple et performant.
Copyright © 1999 Eric Botcazou (ebotcazou@multimania.com) Dernière modification: dimanche 17 décembre 2000 |
|