[Exelvision] ROM du TMS7041 de l'EXL100

Couvre tous les domaines de l'émulation logicielle ou de la virtualisation ainsi que les discussions sur les divers outils associés.

Modérateurs : Papy.G, fneck, Carl

james
Messages : 109
Inscription : 19 juil. 2007 08:43
Localisation : Alsace

Re: [Exelvision] ROM du TMS7041 de l'EXL100

Message par james »

En ce qui me concerne moi qui suis un afficionados de l'émulation je dois dire que, quelque soit le principe de développement, ce que je veux c'est le résultat comme l'original. Après, les méthodes du développeur concernant sa création reste très obscure pour moi :!: Tout simplement parce-que je n'ai pas le niveau :mrgreen:
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: [Exelvision] ROM du TMS7041 de l'EXL100

Message par jester »

james a écrit : ce que je veux c'est le résultat comme l'original.
On ne veut pas, on souhaite... c'est Daniel qui fait ce qu'il veut ! :D

Pas facile cette ROM, même certains passages documentés par Daniel restent obscurs pour moi.
gatesbillou
Messages : 128
Inscription : 31 juil. 2008 14:02
Localisation : la cadiere d'azur - var (83)

Re: [Exelvision] ROM du TMS7041 de l'EXL100

Message par gatesbillou »

Alors dcexel simulateur ou emulateur :?:

Je ne comprend pas trop en quoi cette ROM qui permet (si j'ai bien compris) de gerer les entrees/sortis alourdit DCEXEL.
Si je comrpend bien , il suffit de remplacer la "boite noir" par ce code non ? C'est unpeu vague pour moi , j'ai du mal a suivre.
Daniel a simulé le comportement d'un composant dont on ne connaissait pas son programme en etudiant les reponse de ce composant (dite moi si je me trompe).
Maintenant que torlus nous a extrait ce que ce composant a dans la tête , pourquoi ne pas passer chaque entrée à ce code , en recuperer les sorties pour l'émulateur , en quoi ca peut être un désavantage ? et en quoi ca alourdit :?:
james
Messages : 109
Inscription : 19 juil. 2007 08:43
Localisation : Alsace

Re: [Exelvision] ROM du TMS7041 de l'EXL100

Message par james »

jester a écrit : On ne veut pas, on souhaite... c'est Daniel qui fait ce qu'il veut ! :D
Ca c'est clair :wink: Mais je parlais des émulateurs en règles générales :roll:
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: [Exelvision] ROM du TMS7041 de l'EXL100

Message par jester »

La ROM n'est pas juste un code "classique", elle réalise de nombreuses communications entre certains composants.
Dans la véritabe machine chaque communication via un port envoie donc des données sur un autre composant ou en reçoit... avec toutes les considérations électroniques sous-jacentes.
L'émulateur de Daniel n'est pas un simulateur qui reproduit l'ensemble des composants avec les fils qui les relie.
Son émulateur reproduit le comportement d'un ensemble de composant par exemple qui sont liés à une fonctionnalité: en entrée les données réelles, en sortie les données réelles, entre les deux le génie de Daniel.

J'ai compris par les commentaires de Daniel que son 7041 n'est pas véritablement ni simulé, ni émulé, par contre il émule les fonctionnalités liés à ce 7041.
Donc la connaissance de la ROM va permettre d'améliorer l'émulation de ces fonctionnalités (Il avait inventer pas mal de choses en fonction de ce qui lui paraissait logique, maintenant il pourra vérifier ou infirmer certains hypothèses) pour approcher le comportement véritable d'un Exl100, mais ça ne sera jamais parfait... mais comme il est déjà difficile de voir la différence dans 95% des cas, quelque part on s'en fout en fait.

Bien sur on pourra difficilement réaliser des démos sur DCexel, car en agissant sur des particularités de certains composants pour obtenir un résultat, on sera confronter aux approximations parfois grossières de l'émulateur. Mais, sérieusement, si on arrive à faire des démos qui suivent déjà ce qu'on connait vaguement des fonctionnalités de cette fulgurante machine, ça tiendra du miracle.
Daniel
Messages : 17423
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Exelvision] ROM du TMS7041 de l'EXL100

Message par Daniel »

Avez-vous déjà analysé le schéma d'un bloc d'alimentation à découpage de PC portable :?:

Il y a un filtrage du 220V secteur avec des inductances bobinées sur des tores de ferrite et des condensateurs, un fusible, un pont redresseur, un condensateur électrolytique de filtrage, un oscillateur à transistors MOS à effet de champ. Puis un transformateur, suivi d'un redresseur à diodes, des condensateurs et des selfs de filtrage. Le tout est contrôlé par plusieurs circuits intégrés, qui régulent l'oscillation des transistors du primaire en fonction de l'intensité demandée en sortie. Comme il faut isoler le secondaire du primaire, les commandes passent par l'intermédiaire de coupleurs optiques. Il y a en plus des circuits de sécurité, eux-aussi assez complexes, pour limiter la température et l'intensité. Au total plus de 50 composants.

Que fait l'alimentation : elle délivre un courant continu de 20V quand on lui applique en entrée une tension alternative entre 110V et 240V. C'est la seule chose qui nous intéresse : Vout = 20V courant continu.

Supposons que je veuille émuler une alimentation. Je peux écrire un programme de simulation de chaque composant en fonction des spécifications du fabricant, et en 10 ou 15 mois j'obtiendrai une application de 20000 ou 50000 lignes de code qui calculera Vout en fonction de trois paramètres : tension d'entrée, température extérieure, intensité en sortie. Et le résultat sera compris entre 19,9 et 20,1 V à cause de l'imprécision des calculs.

Je peux aussi écrire un programme d'une ligne : Vout = 20. Ce programme sera 50000 fois plus simple et 10 fois plus précis.

C'est pareil pour un émulateur d'ordinateur : ce n'est pas parce qu'il est plus simple qu'il est moins précis. Parfois c'est l'inverse. C'était mon quart d'heure philosophique. Je retourne maintenant à des tâches plus concrètes :wink:
Daniel
L'obstacle augmente mon ardeur.
jvernet
Messages : 2460
Inscription : 12 avr. 2007 10:59
Localisation : France 69
Contact :

Re: [Exelvision] ROM du TMS7041 de l'EXL100

Message par jvernet »

On peut regarder les émulateurs que je suis un peu, ceux pour Atari ST/Falcon. Les concepteurs de ces simulateurs ont utilisées plusieurs voies. Le ST/STe est une machine complexe, le Falcon encore plus.
- l'émulateur qui simplifie un peu les choses, sans chercher à fonctionner à 100% comme la machine originale. Sur ces emulateurs, les démos ST fonctionnent pratiquement toutes, mais certains effets ne rendent pas (du tout) comme sur une vraie machine. C'est les Steem, NoSTalgia, etc.
- les simulateurs: le but est de fonctionner "comme", et non exactement: Les programmes standards fonctionnent. Aranym est l'exemple. En gros, aucune démo/jeux Falcon ne fonctionnent.
- les emulateurs qui se veulent "parfaits". Le but est de faire fonctionner toutes les démos, jeux, et ce le plus parfaitement possible. C'est Hatari.

Et ben, dans le dernier cas, c'est un sacré merdier. Effroyable complexité, bataille à coup de poils de cycle synchronisés avec des VBL, en tenant compte de la raideur de la queue de la souris.... Les mecs, c'est des dingues... Du coup, ça prend un temps infini... Je vous dis pas les tests de non regression....
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17531
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: [Exelvision] ROM du TMS7041 de l'EXL100

Message par fneck »

Daniel, j'aime bien ta démonstration avec l'alimentation de portable. Après ça on ne peut que être d'accord 8)
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
gatesbillou
Messages : 128
Inscription : 31 juil. 2008 14:02
Localisation : la cadiere d'azur - var (83)

Re: [Exelvision] ROM du TMS7041 de l'EXL100

Message par gatesbillou »

Ok , pour "connecter" le CPU TMS7020 au reste de la "carte mere" on avait besoin du controleur 7041 , c'est lui qui fait la jonction. (Exelvision utilise un microprocesseur avec 4ko de rom comme controleur d'entrèe sortie).

En l'absence du code "comportemental" de ce composant , Daniel a réussi a comprendre en partie son fonctionnement et a fait dialoguer le "CPU" 7020 avec les péripheriques via ce que l'on appel une "boite noire". (il n'emule pas le second processeur puisqu'il n'a rien a lui donner a "manger" mais simule son comportement en gerant les sorties en fonction des entrées)

MAIS le 7041 étant un microprocesseur avec son programme , comment simplifier un microprocesseur ?

Une alimentation recoit du 240 volts et sort du 20volt , c'est simple a schematiser.
Un microprocesseur peut recevoir plusieurs parametres et répondre d'une multitude de manière.

Le problème si je comprend bien est d'integrer un autre CPU dans l'emulateur , avec un autre code , et de faire tourner tout ca harmonieusement. C'esl la que ca se complique.

Moi j'suis largué mais j'fais confiance au pro ; il ne nous a jamais deçu :wink:
OK ok , j'arrête d'être lourd sur ce sujet A+
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13297
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: [Exelvision] ROM du TMS7041 de l'EXL100

Message par Carl »

Excellent Daniel ta démonstration... :wink:
Avatar de l’utilisateur
6502man
Messages : 12329
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [Exelvision] ROM du TMS7041 de l'EXL100

Message par 6502man »

Avant tout en matiere de programmation et encore plus quand il s'agit de loisir, il faut ce faire plaisir, et souvent c'est quand il y a un défi a relever, et en la matiere, Daniel a plus que relevé un defi il a reussi l'impossible emulé une machine sans avoir toutes les roms et les docs.

Moi j'ai qu'une phrase a dire c'est: bravo et félicitations .

Et surtout programme ce que tu as envie (et je sait de quoi je parle) :wink:

La rom du 7041 est arrivé peut être trop tard, apres avoir reussi a emuler le comportement de ce composant, je comprend que tu n'ai pas envie de reecrire une partie de ton emulateur juste pour correspondre le plus fidelement possible a la vraie machine.
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Daniel
Messages : 17423
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Exelvision] ROM du TMS7041 de l'EXL100

Message par Daniel »

L'analogie avec l'alimentation à découpage peut vous paraître simpliste, mais je vais prouver le contraire.

Le TMS7041 est un microprocesseur, donc programmable, donc à priori très complexe. Mais dans l'EXL100 le programme est en rom (non modifiable), et on ne peut même pas le lire sans dessoudage et sans matériel sophistiqué. Les seules communications avec l'extérieur sont les ports d'entrées/sorties. Toutes les réactions du système sont déterminées, et seront toujours identiques, ce qui simplifie considérablement le problème.

L'alimentation à découpage a une seule fonction : transformer le 220V alternatif en 20V continu. Le TMS7041 en a plusieurs (une vingtaine), mais chacune est plus simple (et même beaucoup plus simple) qu'une alimentation. Prenons un exemple : la transmision d'un octet LPC au synthétiseur.

- A l'instant t0 le tms7020 dépose l'octet dans la boîte à lettre et envoie une interruption au tms7041. Il boucle ensuite dans l'attente de l'acknowledge.
- A l'instant t1 le tms7041 traite l'interruption et lit l'octet dans la boîte à lettre.
- A l'instant t2 le tms7041 envoie l'octet au tms5220, qui le stocke dans un buffer.
- A l'instant t3 le tms5220 envoie un signal au tms7041 pour dire qu'il a bien reçu l'octet
- A l'instant t4 le tms7041 traite le signal, constate que tout s'est bien passé, et enfin :
- A l'instant t5 le tms7041 envoie l'acknowledge au tms7020

La connaissance des temps t1, t2, t3 et t4 est parfaitement inutile. Ils sont de l'ordre de quelques microsecondes. Pour perturber le fonctionnement du synthétiseur il faudrait qu'ils soient détectables par l'oreille humaine, donc au moins 10000 fois plus longs. On peut donc les ignorer.

Seul importe le temps t5, pendant lequel le tms7020 attend l'acknowledge. Et encore le temps précis n'a pas une grande importance, seul l'ordre de grandeur compte : est-ce de l'ordre de 10, 100, 1000 microsecondes, ou plus ?
Je ne sais pas si vous avez déjà écrit un émulateur de microprocesseur, mais croyez-moi ce n'est pas simple. En revanche il est trivial d'écrire l'instruction t5 = 25; Et les risques de bug sont notablement diminués, si vous comprenez ce que je veux dire.

Donc pour moi écrire Vout = 20; pour l'alimentation ou t5 = 25; pour le tms7041, c'est pareil. Reste à déterminer la valeur exacte, mais ce n'est pas difficile en désassemblant la rom du 7041. Et même sans la rom on pourrait mesurer le temps avec un oscilloscope.

Si vous n'êtes pas convaincus, écrivez votre propre émulateur exl100 et nous comparerons les résultats obtenus. La compétition est le meilleur moyen de progresser, dans le domaine informatique comme dans le domaine sportif.
Daniel
L'obstacle augmente mon ardeur.
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: [Exelvision] ROM du TMS7041 de l'EXL100

Message par jester »

De toute manière je ne m'inquiète pas. Lorsque Daniel aura identifié les points intéressants dans cette ROM, il ne pourra s'empêcher de donner quelques coups de tournevis à DcExel pour corriger les choix et hypothèses faits avant de connaître la ROM du 7041.
Daniel
Messages : 17423
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Exelvision] ROM du TMS7041 de l'EXL100

Message par Daniel »

Voici le matériel à posséder pour émuler les processeurs.
Publicité complète sur le site dcexel à la page documentation.
Un conseil : copiez la rom sur clé usb, c'est moins encombrant que l'unité de bande magnétique de la photo :wink:

Image
Daniel
L'obstacle augmente mon ardeur.
Répondre