«Un papillon dans votre PC» avec Daniel Coulom

 

Fabrice: L'arrivée d'un émulateur d'Exelvision EXL100, voilà une nouvelle qu'attendaient avec impatience un bon nombre de passionnés de la marque au papillon et tous ceux qui désiraient la découvrir! Avant tout, je te félicite pour le travail accompli. Peux-tu nous dire ce qui a motivé le départ d'un tel projet?
Daniel: La difficulté et mon esprit de compétition.
L'équipe de Mess a essayé et renoncé
(¹). Gilles a essayé et renoncé (²). Les discussions sur internet disent qu'il n'est pas possible d'extraire la rom du TMS7041. L'émulation du TMS3556 avait été commencée mais jamais terminée. L'émulateur TMS7000 de Mess n'est pas testé. C'était donc très difficile et j'ai voulu relever le défi. Et aussi compléter ma collection d'émulateurs d'ordinateurs 8 bits français. 
Fabrice: Quand le projet a t-il débuté?
Daniel: En mai 2008. J'ai commencé par écrire un émulateur et un désassembleur TMS7020. C'était le plus facile car la documentation Texas Instrument de ce microprocesseur est disponible sur internet.
Fabrice: D'autres personnes se sont lancés dans un tel émulateur, sans succès. Quel a été à ton avis le ou les éléments qui ont contribué à cette réussite?
Daniel: Le travail acharné. Ecrire un émulateur n'est jamais simple, car la documentation est rarement complète (
3). C'est particulièrement vrai pour l'EXL100. Alors il faut deviner ce qui n'est pas écrit. Le seul moyen est de désassembler le moniteur système et le code des cartouches et cassettes. Ensuite on peut faire des hypothèses et les tester, pour finir par retrouver les principes de fonctionnement. Et cette démarche est longue, très longue. Des centaines d'heures.
Fabrice: Quelles sont les difficultés de codage majeures que tu as rencontré lors de la réalisation?
Daniel: Aucune. Je programme depuis 1967. Après 41 années de pratique je n'ai plus aucune difficulté de ce côté. J'ai quand même passé beaucoup de temps sur l'émulation du TMS3556. Ce n'est pas que ce processeur video soit vraiment compliqué. Il est beaucoup plus primitif que l'EF9345 des Alice et VG5000. Mais quand j'ai écrit le code je n'avais pratiquement pas de documentation, alors ce fût long et difficile.
Fabrice: Quel a été ton meilleur souvenir lors du processus de conception? As-tu une anecdote à nous faire partager?
Daniel: Mon meilleur souvenir est le premier écran affiché. C'est le fameux papillon d'Exelvision qui apparaît à l'allumage de l'EXL100. La première fois il n'était pas tout à fait conforme, mais c'était une étape importante. J'avais compris comment extraire le code de la rom du TMS7041, et mes hypothèses sur le fonctionnement du TMS3556 commençaient à se confirmer. J'étais tellement content que le papillon est devenu mon avatar dans certains forums de discussion.
Fabrice: A voir les améliorations que tu lui apportes régulièrement, comme la reconnaissance des périphériques Exelvision, on sent ton désir d'aller jusqu'à l'émulation totale; te sentiras également le désir ou le temps d'émuler Exeltel?
Daniel: Voici la copie de la fenêtre "A propos de dcexel" : "DCexel vX.XX - Emulateur pour Windows de tous les ordinateurs 8 bits Exelvision". Tout est dit. Aujourd'hui je n'ai pas encore assez d'éléments pour le faire. Si je peux un jour récupérer un Exeltel cela deviendra possible. 
Fabrice: Parmi les jeux et programmes Exelvision que tu as étudié, quel est celui que tu préfères? et quelles en sont les raisons?
Daniel: Aucun. Je n'aime pas du tout les jeux video, encore moins les logiciels éducatifs. Alors la production logicielle pour l'EXL100 ne m'enchante guère. Pour d'autres machines, il existe des démos merveilleuses. J'ai passé des heures à m'extasier devant le code des démos Thomson : HCL, Chinese Stack, Space Project. On ne le soupçonne pas en regardant passivement le programme se dérouler, mais en explorant chaque programme on découvre de petits bijoux, des condensés d'intelligence et d'astuce. Je ne trouve rien de cela sur Exelvision. Mais qui sait, le nouvel émulateur fera peut-être naître des vocations de demo-makers ?
Fabrice: Tu es également l'auteurs de quelques autres émulateurs de nos chères vieilles machines, quelles sont-elles? Les motivations pour les concevoir furent-elles les mêmes que pour celui d'Exelvision?
Daniel: J'ai émulé tous les 8 bits Thomson : T9000, TO7, MO5, MO5E (azerty et qwerty), TO7/70 (français et arabe), TO9 (français et allemand), MO5NR, TO8, TO8D, MO6, Olivetti PC128, TO9+. Le Tandy MC10 et tous les 8 bits Matra : Alice 4K, Alice 32K, Alice 90. Le VG5000 de Philips/Radiola/Schneider. L' Interact Family Computer et tous les 8 bits Micronique : Victor, Hector, Hector HR+, Hector HRX.
Ma motivation a été particulière pour le MO5 : c'est mon premier ordinateur personnel. Pour les autres, à part quelques Thomson, il n'y avait pas d'émulateur, alors j'ai relevé le défi. Comme pour l'EXL100 !
Fabrice: Quels outils de programmation utilises-tu pour coder tes émulateurs?
Daniel: Tout le code est en C, compilé avec gcc. Les versions Windows utilisent l'API Win32 et DirectX (DirectDraw, DirectSound). Les versions portables utilisent la bibliothèque SDL.
Fabrice: Si tu avais quelques conseils à donner à celles ou ceux qui désireraient se lancer dans une telle aventure, quels seraient-ils?
Daniel: Mieux vaut ne pas s'y lancer. C'est très ingrat, car le retour des utilisateurs n'est jamais à la hauteur des efforts déployés. La seule récompense est la satisfaction personnelle, alors il faut être un peu fou pour y consacrer autant de temps. Si malgré celà vous voulez tenter l'aventure, il faut commencer par avoir une excellente maîtrise des outils de développement, des langages de programmation et du fonctionnement du PC. Mais aussi une connaissance parfaite de la machine émulée. En particulier il faut être très à l'aise avec le code machine du microprocesseur et comprendre le fonctionnement des interfaces entre les composants du système : microprocesseur, mémoire, clavier, écran, et aussi avec les périphériques. Si vous êtes au niveau du petit programme de jeu en Basic, inutile d'insister. L'émulation n'est pas facilement accessible, ce qui en fait tout l'intérêt.
Fabrice: Quelle est ton vieux microordinateur préféré?
Daniel: Quand on a plusieurs enfants, on peut rarement désigner le préféré. Chacun a son caractère, ses particularités propres, un mélange subtil de qualités et de défauts. On les aime tous pour ce qu'ils sont, quelle que soit leur personnalité. Pareil pour les ordinateurs. Je suis admiratif devant la compétence et l'ingéniosité de tous les concepteurs, par delà les marques et les modèles. Préserver leur oeuvre par l'émulation, c'est aussi une forme d'hommage à leur savoir-faire.
Fabrice: Daniel, je te remercie d'avoir pris le temps de répondre à ces quelques questions et te souhaite beaucoup de succès dans tes projets futurs.

Interview réalisée en 2009


(1) Une équipe de MESS a repris la programmation de son émulateur EXL100/Exeltel en novembre 2009.
(2) Diverses raisons ont poussé Gilles Fétis à reporter la réalisation de son émulateur EXL100, mais il n'y a jamais renoncé. Son développement a d'ailleurs répris en juin 2009. Voir la page " Développements récents"
(3) Citons Simon Guyart, Fabien Neck, Jean-Louis Cangy, Pascal, Fabrice Montupet, Walter (Dyter) et Jérôme Vernet qui ont apporté des documents techniques et  informations sur l'EXL 100 permettant à Daniel d'avancer dans son projet.



Vous êtes ici : Divers / Développements récents / «Un papillon dans votre PC» avec Daniel Coulom

Sans accord écrit préalable de ma part, vous n'êtes pas autorisé à distribuer, modifier, transmettre, réutiliser ou rediffuser le contenu de ce site.