Page 7 sur 9

Re: Emulation d'Assdesass sur To9

Posté : 08 janv. 2017 21:57
par nicolho
Tomix a écrit :Très sérieusement, je ne connais pas le 6840, et je n'étais pas sûr d'avoir bien compris ton histoire de flip flop sur le diviseur par 8. Si ma reformulation veut dire la même chose, c'est tant mieux. ;)
Oui c'est ça, reformulé assez différemment, mais ça revient au même. Et je ne connais aucunes de ces puces (jamais eu de TO, seulement un MO5 depuis septembre, mais je m'intéresse à ces Thomson en général et contrairement à vous, mes connaissances sont pour l'instant principalement théoriques, entre autres grâce à la documentation exhaustive mise à disposition par Daniel ).

La démarche c'était de compléter vos tests pratiques en essayant de trouver une explication quant au fonctionnement interne du timer et en étudiant (vaguement) le circuit logique du 6840 puisque tout porte à croire que leur "timer avec prescaler" sont quasi identiques (on retrouve mot pour mot les même explications dans leurs documentations respectives, et celle du 6846 a même un petit paragraphe qui détaille ses quelques différences avec le 6840, page 14).

Le schéma est plutôt imbitable (sans une référence de tous les sigles dessinés, et une représentation pas usuelle des flip-flops :? ) et comme mes notions en circuits logiques sont encore très sommaires, je serais vraiment gêné aux entournures pour donner des explications certaines dans ce domaine (il nous faudrait l'avis de nos connaisseurs en FPGA et compagnie).
En attendant que ça se précise, et pour qu'on se comprenne mieux, voici mon idée du déroulement des opérations côté timer (edit: qui contrairement aux autres hypothèse formulées, s'appuie donc sur les documents du constructeur, et pas sur du vent, voire en complète contradiction avec eux...) :

-2 : écriture dans le buffer du MSB (première écriture du STD avec la valeur N)
-1 : (passage du MSB + écriture du LSB) dans le "latch 16 bits du preset" (seconde écriture du STD)
0 : "relâchement" du contenu du "latch preset" dans les différentes "portes logiques" du timer (+ premier des 3 cycles du "délai horloge")
2 : dernier des 3 cycles du "délai horloge" (celui que nous annonce la documentation pour /CTC et /CTG mais dont nous présumons qu'il concerne aussi l'utilisation du prescaler avec /E comme horloge du timer, je n'y reviens pas...)
3 : première décrémentation du compteur (même chose dans la doc)
4 + N (le compteur a atteint zéro au cycle précédent et a "chargé" le latch de sortie) : relâchement du contenu de ce latch qui abaisse /IRQ sur la patte de sortie...

Si N=0, alors théoriquement, on doit obtenir l'interruption de sortie 4 cycles après le fin du STD (c'est à dire à partir début de l'instruction qui suit immédiatement)

Pour le désassemblage, c'était plus histoire de savoir ce que vous utilisiez en général comme outils et pour bosser sur TO/MO, désolé pour ma question, j'aurais dû penser à ton émulateur évidemment (sauf cas non géré, ça semble le plus pratique).

Re: Emulation d'Assdesass sur To9

Posté : 09 janv. 2017 09:32
par Tomix
@nicholo
En tout cas, c'est sympa d'apporter tes lumières. Surtout que t'as un Mo5 et que celui-ci n'est pas concerné par notre problème. :)

On va quand même aller jusqu'au bout des théories car je suis sûr qu'une vérité apparaîtra de nos conjectures. Peut-être même via un raisonnement par l'absurde.

Pour l'instant, ce qui m'intéresse c'est le 6846 sur le To9. J'ai fait pas mal de bidouilles sur ce matos, et je n'ai fait qu'utiliser Assdesass. Je pense qu'avec ces expériences, on a déjà matière à approcher la solution du problème.

Donc, je suis ok pour les 3 cycles de lag en mode prescale (div par 8 ). Comme je l'ai dit, ça a du sens électroniquement parlant, et ça va dans le sens des tests avec assdesass.
Pour le 4 ème cycle, je vois 3 hypothèses de départ:
- soit il est consommé lors du lag cité ci-avant (donc il y aurait 4 cycles et pas 3)
- soit il n'existe pas et on se trompe quelque part dans nos calculs. Je n'y crois pas
- soit il est consommé lors de l'abaissement du drapeau IRQ

Maintenant, si je fais une synchro VBL en mode prescale et en "continuous", je mets donc la valeur $9BF (=($9BF+1*8)=19968 cycles). Bien entendu, on désactive toutes les autres IRQ. J'attends l'IRQ avec l'instruction SYNC du cpu. Voici ce qui est constaté et ce que je suppose:
- la synchro se fait toujours au même moment sur To9. On a donc un timing équivalent à 1 VBL pleine et entière (19968 cycles). Tout le monde est content.
- ceci suppose que le 4 ème cycle ne peut être consommé au moment de l'IRQ, sinon on aurait 19969 cycles de consommés entre le début du décomptage et la fin.
- comme on est en "continuous" et que $9BF correspond bien au nombre de cycles d'1 VBL, on peut conclure que les 4 cycles consommés au début ne sont plus consommés au moment du recyclage du timer.

Le fonctionnement du 6846 qui collerait avec les tests serait le suivant (en mode prescale):
- on place $9BF dans le latch
- que ce soit via le CR ou via l'écriture sur le latch, le lancement du décompte prend 4 cycles de plus à cause de la multiplication par 8 que fait le 6846 en interne.
- à la fin du décompte, le 6846 déclenche l'IRQ sans cycle sur-consommé
- au recyclage, le 6846 ne re consomme pas 4 cycles. Il reprend la valeur pré calculée au démarrage et tout se joue normalement.

Ce mécanisme est semble t-il conforme aux constatations.

S'il n'y a pas d'objection, on passe au problème du To8 :)

Re: Emulation d'Assdesass sur To9

Posté : 10 janv. 2017 23:10
par Tomix
Des news.

En faisant le tour de mes vieilles disquettes, j'ai retrouvé un source de type synchro vbl avec timer.
Il s'agissait d'un source compatible entre le To8 et mon To9, que j'avais mis au point il y a longtemps sur un autre To8D que le mien.
Je viens de le tester sur mon To8D et... ça ne fonctionne pas bien. Normal, puisque j'avais mis $9BF. Sauf que, à l'époque, sur le To8D de développement, ça fonctionnait!

Conclusion: il y a To8 et To8.

Mais qu'est-ce que c'est que ce binz?! Et pourquoi ça fonctionne bien en mode normal avec $4DFF?

Petit résumé des épisodes précédents:
- Sur mon To8D (idem sur celui de sam), en mode prescale, il faut mettre $9C0 au lieu de $9BF pour cycler autant de cycles qu'1 VBL. Problème: ça fait donc 8 cycles de plus qu'une VBL.
- Sous assdesass, quand on lance un mode pas à pas, le timer déclenche une interruption plus tôt que sur mon To9, laissant penser que les 4 cycles de lag nécessaires sur le 6846 de mon To9, n'existent pas sur le 6846 de mon To8D.

Pour en avoir le coeur net, j'ai donc démonté mon To8, à la recherche de la version de mon 6846. Voici la photo:
carte_mere_to8d.jpg
carte_mere_to8d.jpg (290.84 Kio) Vu 1154 fois
Problème: je ne vois pas le 6846. Je vois le 6809 qui n'est pas de marque Motorola (sic!), les 6821 de marque Motorola, les EPROM, la ram etc. mais pas le 6846.
Est-ce qu'il y aurait un chip compatible à la place? Où bien est-ce que j'ai mal regardé?
A noter qu'il y a un chip de l'autre coté de la carte mère, au niveau du losange blanc à gauche, mais je n'ai pas relevé la référence.

Re: Emulation d'Assdesass sur To9

Posté : 10 janv. 2017 23:30
par nicolho
Euh... sur dcmoto.free.fr, y'a les toutes les docs techniques de tous les MO/TO. Je viens de charger celle du TO8D, voici la page 5 :
schema_to8d.jpg
schema_to8d.jpg (296.91 Kio) Vu 1148 fois
Donc c'est censé être cette puce sur ta carte mère :
cm_to8d_tomix.jpg
cm_to8d_tomix.jpg (298.14 Kio) Vu 1148 fois
On voit la marque ST (comme pour ton PIA d'ailleurs), probablement un clone, mais la photo n'est pas assez définie pour arriver à lire la référence. Pour information, tu peux nous dire ce qui est précisément inscrit dessus, ou nous faire une photo ?

Re: Emulation d'Assdesass sur To9

Posté : 10 janv. 2017 23:32
par __sam__
J'ai +/- la même carte-mère que toi Tomix, mais en bas à droite ce sont des composants Moto et pas ST chez moi.
Image

Re: Emulation d'Assdesass sur To9

Posté : 10 janv. 2017 23:33
par nicolho
__sam__ a écrit :J'ai +/- la même carte-mère que toi Tomix
Effectivement, ton 6846 n'a pas le même logo constructeur, c'est un Thomson chez toi. On avance, on avance... :)

Re: Emulation d'Assdesass sur To9

Posté : 10 janv. 2017 23:35
par Tomix
Voila:
clone_6846.jpg
clone_6846.jpg (175.19 Kio) Vu 1146 fois

Re: Emulation d'Assdesass sur To9

Posté : 10 janv. 2017 23:39
par Tomix
Je crois qu'on a des To8 bâtards mon pauvre sam... :(

Re: Emulation d'Assdesass sur To9

Posté : 10 janv. 2017 23:42
par nicolho
EDIT : oups, la fatigue, j'ai pas regardé le bon sur la photo :roll: désolé

(Sam, tu pourrais nous faire la photo du tien aussi, ou nous recopier les inscriptions ?)

Re: Emulation d'Assdesass sur To9

Posté : 10 janv. 2017 23:45
par Tomix
@nicholo
Je ne crois pas. Ce 6804 doit être le clone du 6804 dédié au clavier (en plus c'est marqué dessus).
Je pense plutôt que le timer est le ST 8821 2

Pour info, ST appartient à thomson. Tout du moins, à l'époque.

Re: Emulation d'Assdesass sur To9

Posté : 10 janv. 2017 23:46
par __sam__
Je crois que le EF6804P2P est le mauvais composant: c'est le micro qui s'occupe de la scrutation clavier. Je recherche les sources de la photo d'il y a 3 ans... [edit] trouvé, mais c'est pas super visible, mais je crois reconnaitre les même lettres que chez Tomix: (8737 9 ==> semaine 37 de 1987?) TSG801 017ACP

Re: Emulation d'Assdesass sur To9

Posté : 10 janv. 2017 23:49
par nicolho
oui, désolé vous avez raison, j'ai pas regardé le bon, pardon

edit : je trouve des références à un TSGB01 (avec un B au milieu) de chez ST/Thomson (je savais pas, pour le rapprochement entre les deux marques, merci de la precision), mais rien de plus... :
https://www.usbid.com/parts/TSGB01

Re: Emulation d'Assdesass sur To9

Posté : 11 janv. 2017 00:03
par __sam__
D'après ce message (http://forum.system-cfg.com/viewtopic.p ... 009#p96009) de Fabrice Montupet, ce serait TSGB01 017ACP, donc bien avec un "B". C'est un composant militaire ?

Sur cette page: http://perfectpartsearch-env.elasticbea ... asheet.php on trouve aussi TSGB01 sous la catégorie ASIC (GATE-ARRAY HCMOS). Ce serait donc un circuit complexe dédié. Peut-être un clone militiare et spatial du 6846? Ca expliquerait des choses si le clone n'est pas 100% compatible.

J'ai un autre TO8 (pas D, et qui ne boot plus), j'ai vachement envie de l"ouvir pour voir cce qu'il y a dedans, mais ce soir il est trop tard (suspens :D )

Re: Emulation d'Assdesass sur To9

Posté : 11 janv. 2017 00:24
par nicolho
oui, je pense aussi... je suis tombé sur le même je crois (mais ton lien marche pas, alors je mets celui-ci : http://datasheet.datasheetarchive.com/o ... 122592.pdf)
Thomson ASIC Products.jpg
Thomson ASIC Products.jpg (43.33 Kio) Vu 1139 fois
Bon par contre, c'est d'autres packages que le DIP40..

Re: Emulation d'Assdesass sur To9

Posté : 11 janv. 2017 00:34
par nicolho
Autre listing Thomson : http://datasheet.datasheetarchive.com/o ... 678819.pdf
autre listing ASIC Thomson.jpg
autre listing ASIC Thomson.jpg (61.59 Kio) Vu 1138 fois
et en plus d'autres packages pour le TSGB01, on voit du DIP40 pour les modèles supérieurs avec plus de portes.

Alors (d'accord avec toi Sam) possible qu'ils aient programmé un "pseudo 6846" là-dedans, donc sans contrainte de compatibilité parfaite, (comme tu le disais) ça expliquerait la différence d'implémentation par rapport aux Motorola... Il y aurait pas un ancien de chez Thomson sur le forum qui pourrait nous trouver une fois pour toute la doc interne des gate-arrays de nos chers ordis ?? :mrgreen: