[Exelvision] dcexel 2009.02

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

Daniel
Messages : 17417
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

[Exelvision] dcexel 2009.02

Message par Daniel »

DCexel 2009.02 est une étape importante : l'émulation de l'EXL100 est terminée :D
Reste à l'améliorer, en fonction des remarques des utilisateurs. Je mettrai à jour ce post avec la liste des anomalies et des suggestions.
Le 15/02/2009 Daniel a écrit :Anomalie: Le son à l'affichage du logo exelvision n'est pas émulé.
Le 15/02/2009 Daniel a écrit :Anomalie: En cas d'appui simultané sur plusieurs touches, le code envoyé par le TMS7041 au TMS7020 n'est pas toujours correct.
Le 16/02/2009 dyter a écrit :Anomalie: Quelques problèmes de timing et de son
Cause de l'anomalie : le tms7020 est piloté par un quartz à 4,91 MHz, son timer décompte à 4,91 MHz, mais les instructions ne sont exécutées qu'à 2455 kHz. DCexel 2009.02 n'a pas le bon timing : si on règle la bonne fréquence pour le processeur, le timer est faux, et réciproquement. La correction est en cours et la prochaine version sera bonne sur ce point. Corrigé le 17/02/2009 version 2009.02 SP1
Le 18/02/2009 jester a écrit :Anomalie: En Basic lorsque j'ai une erreur de lecture cassette, le clavier devient fou + pas de répétition de touche 9 fois sur 10
Le 19/02/2009 jester a écrit :Anomalie: blocages aléatoires (en particulier sous wizord), mais cela m'est arrivé aussi sous le basic ou exelmax
Le 20/02/2009 gabenn a écrit :Anomalie: ya toujours VEGAX 4 qui marche pas chez moi
Cause de l'anomalie : il y a une subtilité de plus dans la mise à jour des pointeurs ACMP et ACMPXY du TMS3556 : le SWAP et le MOVP P36 ne sont pas strictement équivalents. Après une initialisation des deux pointeurs, un SWAP incrémente le pointeur de lecture alors que MOVP P36 ne l'incrémente pas. Correction prévue dans dcexel 2009.03
Le 05/03/2009 jester a écrit :Anomalie: J'ai remarqué que l'accès à l'exelmémoire était beaucoup plus lent que la RAM de base
La version 2009.02 met à jour le fichier .cram en temps réel, ce qui rend l'accès à la cmos ram plus long que prévu. C'est corrigé pour la prochaine version : le fichier .cram est écrit uniquement en cas de déchargement de l'exelmémoire ou de sortie de l'émulateur
Le 06/03/2009 Daniel a écrit :Anomalie: la grille et le soulignement ne sont pas programmés.
Corrigé pour la prochaine version
Le 20/03/2009 Daniel a écrit :Anomalie: l'option /S de la commande FORMAT ne fonctionne pas


Prochaine étape: l'émulation de l'exeltel. Il manque trop d'informations pour commencer immédiatement, mais je n'abandonnerai pas...
Dernière modification par Daniel le 20 mars 2009 14:51, modifié 9 fois.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
Rhod
Messages : 12146
Inscription : 09 avr. 2007 09:54
Localisation : Orléans
Contact :

Message par Rhod »

Bonne nouvelle, cool
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13296
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Message par Carl »

Bravo Daniel pour tout ce travail !

Carl
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17517
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Message par fneck »

Je viens de l'essayer, dans sa version finale si j'ai bien compris, et je ne sais pas quoi ajouter à tout ce qui a déjà été dit au long des différents post concernant cet émulateur.

Félicitations pour cette réalisation et encore merci pour le travail énorme que cela représente 8)
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Avatar de l’utilisateur
6502man
Messages : 12319
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Message par 6502man »

Superbe travail.

Felicitations.
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
dyter
Messages : 43
Inscription : 28 sept. 2008 14:22
Localisation : Rhône

Message par dyter »

Super travail Daniel, j'ai donc essayé cette nouvelle version, à part quelques problèmes de timing et de son, tout semble fonctionner correctement comme avant.
J'ai mis la fréquence du processeur à 2800Khz, c'est la que j'obtient les meilleurs résultats.
Walter (Alias Editions PUSSY)
http://miniordi.free.fr/EXL100.htm
Daniel
Messages : 17417
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Message par Daniel »

Ces anomalies ne sont pas surprenantes, car faute de documentation beaucoup de paramètres ont été estimés au hasard. De mon côté j'ai constaté aussi quelques problèmes de synchronisation de la synthèse vocale, en particulier dans La Ferme et les Animaux. J'ai pu les résoudre, comme dyter, en diminuant la vitesse du processeur, mais il faut trouver une solution plus élégante. J'ajoute l'anomalie à la liste du premier post.

[Edit]
A l'instant j'ai fait un test de vitesse en Basic. Il confirme le mauvais paramétrage de dcexel :

Code : Tout sélectionner

FOR I=0 TO 32767: NEXT 
Sur EXL100 : 57 secondes
Sur DCexel : 28 secondes
La fréquence du processeur est annoncée partout à 4910 kHz. Je n'ai pas de doute là-dessus et je ne pense pas m'être trompé dans les calculs de nombre de cycles. Alors la différence peut s'expliquer par le temps d'accès à la mémoire VDP, où est stocké le programme Basic. Je vais tenter de mettre des temporisations pour rétablir la bonne vitesse.
Une remarque en passant : sur le même test le MO5 est 30% plus rapide que l'EXL100. Je m'en doutais un peu, mais sans preuve je n'osais pas le dire :wink:
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17517
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Message par fneck »

28 secondes pour 57, à une erreur près ça fait un rapport de 2, il n'y aurait pas quand même quelque chose avec l'horloge?
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Daniel
Messages : 17417
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Message par Daniel »

Autre boucle en mémoire CPU, tout en langage machine donc sans accès à la mémoire VDP :

Code : Tout sélectionner

10 CALL POKE(15,255,255,255)
20 CALL POKE(51184,142,253,219,218,17,250,10)
30 CALL EXEC(51184) 
EXL100: 76 secondes
DCexel: 38 secondes

Fabien, tu as deviné juste. Bravo :!:
Et pourtant, dans la base de données, on peut lire :
Référence : EXL 100
Processeur : TMS 7020 à 4,91 MHz
Alors il faudrait m'expliquer cette fréquence, avec de solides preuves à l'appui :wink:
En attendant, tous les utilisateurs peuvent régler dcexel à 2455 kHz.
Finalement dyter n'était pas loin du compte avec ses 2800 kHz :D
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17517
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Message par fneck »

Je n'ai pas plus d'explication. La fréquence de 4,9 MHz on la retrouve partout, je ne pense pas qu'il faille la remettre en cause, par contre il y a peut être un diviseur quelque part. Ou c'est la fréquence du quartz et pas celle du processeur...?

Si quelqu'un à une carte mère sous la main, il peut essayer de nous lire ce qu'il y a sur le quartz?
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13296
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Message par Carl »

la frequence est bien de 4.91 Mhz

extrait de maitriser votre EXL...

Image
Daniel
Messages : 17417
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Message par Daniel »

Je suis un nul :wink: C'est écrit dans la documentation officielle de Texas Instruments :

Image

Et moi, comme un idiot, j'ai cru ce que j'ai lu sur internet. On ne m'y reprendra plus :!: Vous pouvez noter ceci :

Le processeur TMS7020 de l'EXL100 est cadencé à 2455 kHz

Merci à Fabien de m'avoir mis sur la bonne piste :D
De la part d'Exelvision, c'est une belle arnaque d'avoir fait croire que leur machine tournait à 4,91 MHz. Honte à eux :twisted:
Mon MO5 à 1 MHz est 30% plus rapide :D :D :D Et il a un quartz à 16 Mhz, lui :!:
Dernière modification par Daniel le 16 févr. 2009 21:44, modifié 1 fois.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17517
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Message par fneck »

Je venais également de trouver l'information page 64 du bouquin du TMS 7000 :D

La pub est un peu mensongère, mais pas forcément fausse. Je m'explique, la fréquence externe est bien de 4,91 MHz, c'est le processeur en interne qui la divise...
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Avatar de l’utilisateur
fneck
Site Admin
Messages : 17517
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Message par fneck »

En tout cas c'est une grande découverte que nous avons fait ce soir :D
J'ai corrigé la base de donnée en conséquence.
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Daniel
Messages : 17417
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Message par Daniel »

Ma montre a un quartz à 32768 Hz mais il lui faut 24 heures pour faire un tour. Le MO5 a un quartz à 16 MHz et son processeur ne tourne qu'à 1 MHz. C'est pour dire que la fréquence du quartz n'a aucune importance. Seule compte la fréquence du processeur, c'est à dire la vitesse à laquelle il exécute les instructions.
fneck a écrit :En tout cas c'est une grande découverte que nous avons fait ce soir
Le plus incroyable est de l'avoir découvert 25 ans après. Ah, si j'avais eu un exl100 à l'époque, la supercherie n'aurait pas duré si longtemps.

Pour répondre à Carl : le timer est effectivement piloté par le quartz à 4,91 MHz. Le processeur est piloté par le même signal après division par deux de sa fréquence. Mais ta remarque est très judicieuse : dans dcexel, si on divise par deux la fréquence du processeur, le timer ne décomptera plus à la bonne vitesse. Je dois donc corriger le programme, mais pour une fois ce n'est pas difficile : une simple division.
Dernière modification par Daniel le 16 févr. 2009 22:17, modifié 6 fois.
Daniel
L'obstacle augmente mon ardeur.
Répondre