Emulateur exl100

J’ai toujours trouvé cette machine étrange, et n’ai jamais été particulièrement attiré par elle… Maintenant je sais pourquoi…
Émuler cette chose reste un exercice intéressant, d’une part les documents Texas Instrument sont globalement bien réalisés, et d’autre part, l’absence d’information fiable oblige à investiguer et à pratiquer le reverse-engineering. Pour autant cette machine reste limitée, et assez bancale… La médiocrité extrême du clavier achève le tout…

Cet émulateur dérive partiellement du driver MESS initialement écrit par R.Nabet.

Le module d’émulation TMS 7xxx a été codé par T.Linder pour l’émulation du TI CC40.

Un petit screenshot d’un jeu célèbre de cette machine …

wizord

Cet émulateur est à ce jour incomplet… Mais il avance doucement…

Correctif sur la gestion du timer et gestion synchro video R0.8d

En streaming audio et passage a la librairie Allegro 4.4 R0.8

Correctif sur la gestion des pointeurs VDP R0.8b (VERSION STABLE)

La version WX widget devient la plus à jour, gestion de tout le clavier et des attributs du 3556 R0.8 (version MACOS)

Mise à niveau de la version WX Widget, correction de l’absence des touches de pavé numérique et entrée R0.7b

Correction de la gestion des trames 5220, synthèse vocale pour la version Allegro, Debugger pour la version WX R0.7

Merge des versions allegro et Wxwidget (WIN32)   R0.6 (aussi pour MACOSX)

Ajout de la lecture des K7 au format WAV   R0.5b

Une version apte à faire tourner la majorité des ROMS   R0.5

Une version qui commence à faire des choses   R0.4b 🙂

Une version intermédiaire   R0.3

La préversion à télécharger…R0.1

Les news

  • 01/08/2010 Ajout des outils de gestion des K7, il est maintenant possible de convertir (outil séparé) des fichiers .K7 de dcexel pour les relire ici
  • 21/06/2010 Gestion des bits de Synchro VBL, correction du timer
  • 07/06/2010 Correction du son avec passage en mode streaming pour Allegro (qui passe en 4.4 DLL)
  • 29/05/2010 Correctif sur la gestion des pointeurs VDP pour compatibilité avec le sokoban de Jester
  • 01/03/2010 Pré-version pour la gestion du son 1 bit... avec quelques cliquetis… 
  • 16/02/2010 Grace à la publication du manuel du TMS3556 par Jean Louis, les attributs de caractères sont enfin gérés.
  • 10/02/2010 Enfin compris pourquoi les touches n’étaient pas toutes mappées sur wxwidget (question de style par défaut sur l’objet wxPanel…)
  • 09/02/2010 Intégration puis optimisation de la gestion de la synthèse vocale par Olivier pour la version Wx/SDL, bientôt en ligne 🙂 
  • 06/02/2010 Ajout du debugger pour la version wxwidget.
  • 05/02/2010 Et maintenant, il parle (mais mal), en préversion ici (WIN32, Allegro)
  • 27/01/2010 Fusion des sources Allegro et wxWidget (contribution d’OlivierP, forum system-cfg). A compiler avec devcpp et les devpacks Allegro4.2 ou Wxwidget2.8 et SDL 1.2
  • 23/01/2010 Ajout de la lecture des K7 au format WAV. Gestion la plus simple possible, le sample est lu à sa fréquence normale. La valeur du bit A4 est positionné à 0 ou 1 sur dépassement de seuil.
  • 21/01/2010 Correction du principal bug résiduel, l’opcode JPZ (jump if positive OR zero) est incorrectement documenté dans la spécification Texas Instrument. La véritable condition est N=0. Z=1 est absurde… Tim Linder a lu cette doc… J’ai contrôlé 10 fois en relisant cette doc… Ce soir j’ai oublié la doc pour me demander ce que devait faire un JPZ…
  • 20/01/2010 Compilation sous Linux sans trop de difficulté (1 chemin d’accès à un fichier à modifier…), correctifs sur des blocages de clavier…
  • 16/01/2010 Correctifs sur l’occupation du CPU à 100% et la régulation de vitesse. R0.4b
  • 14/01/2010 La refonte du module de 7041 est maintenant achevée, l’émulation est (beaucoup) plus stable. Wizord fonctionne sans blocage. L’embryon d’émulation du 5220 reste imparfait car les séquence LPC ne vont généralement pas jusqu’à la fin. L’émulation du 7020 est corrigé petit à petit… 
  • 04/01/2010 Refonte du module d’émulation du 7041, qui reste basé sur un automate d’état. Il n’y a plus de patch de la ROM 7020, tous les échanges sont relativement conformes au code du 7041. Pas de release pour le moment (mais les fichiers sont sur CVS) car il est nécessaire d’émuler partiellement le 5220, en effet il faut détecter les fins de commande Speech pour générer les events corrects.
  • 17/12/2009 L’émulation du 7041 par automate d’état est trop éloignée de l’original et ne traite pas bien les commandes dans lesquelles le 7041 reçoit des données. Le désassemblage et commentaire de la rom 7041 (extraite par Torlus) avance. Peu de surprises pour le moment, juste quelques précisions par rapport à la documentation. Le support du clavier et surtout la communication avec le 5220 devraient enfin être satisfaisants bientôt…

Le code source

Le projet est hébergé sur sourceforge.

L’essentiel des ressources concernant l’exelvision est sur l’excellente page de Fabrice : www.exelvision.fr

L’émulateur exelvision le plus abouti à ce jour est l’oeuvre de Daniel, son site DCexel est également une référence (malgré l’adoption de ce format de document tellement mieux que tout… mais si difficile à relire sur 99% des PC 🙂 )