Emulation d'Assdesass sur To9 - l'histoire du 6846 clone

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

Modérateurs : Carl, Papy.G, fneck

nicolho
Messages : 237
Enregistré le : 10 nov. 2016 16:53

Re: Emulation d'Assdesass sur To9

Message par nicolho » 08 janv. 2017 21:57

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).
Modifié en dernier par nicolho le 09 janv. 2017 16:26, modifié 1 fois.

Tomix
Messages : 91
Enregistré le : 16 sept. 2012 15:20

Re: Emulation d'Assdesass sur To9

Message par Tomix » 09 janv. 2017 09:32

@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 :)

Tomix
Messages : 91
Enregistré le : 16 sept. 2012 15:20

Re: Emulation d'Assdesass sur To9

Message par Tomix » 10 janv. 2017 23:10

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 1116 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.

nicolho
Messages : 237
Enregistré le : 10 nov. 2016 16:53

Re: Emulation d'Assdesass sur To9

Message par nicolho » 10 janv. 2017 23:30

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 1110 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 1110 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 ?
Modifié en dernier par nicolho le 10 janv. 2017 23:32, modifié 1 fois.

__sam__
Messages : 4127
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Emulation d'Assdesass sur To9

Message par __sam__ » 10 janv. 2017 23:32

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
Modifié en dernier par __sam__ le 10 janv. 2017 23:35, modifié 1 fois.
Samuel.
A500 Vampire V2+, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8. New Teo 1.8.4 8)

nicolho
Messages : 237
Enregistré le : 10 nov. 2016 16:53

Re: Emulation d'Assdesass sur To9

Message par nicolho » 10 janv. 2017 23:33

__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... :)

Tomix
Messages : 91
Enregistré le : 16 sept. 2012 15:20

Re: Emulation d'Assdesass sur To9

Message par Tomix » 10 janv. 2017 23:35

Voila:
clone_6846.jpg
clone_6846.jpg (175.19 Kio) Vu 1108 fois

Tomix
Messages : 91
Enregistré le : 16 sept. 2012 15:20

Re: Emulation d'Assdesass sur To9

Message par Tomix » 10 janv. 2017 23:39

Je crois qu'on a des To8 bâtards mon pauvre sam... :(

nicolho
Messages : 237
Enregistré le : 10 nov. 2016 16:53

Re: Emulation d'Assdesass sur To9

Message par nicolho » 10 janv. 2017 23:42

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 ?)
Modifié en dernier par nicolho le 10 janv. 2017 23:47, modifié 1 fois.

Tomix
Messages : 91
Enregistré le : 16 sept. 2012 15:20

Re: Emulation d'Assdesass sur To9

Message par Tomix » 10 janv. 2017 23:45

@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.
Modifié en dernier par Tomix le 10 janv. 2017 23:47, modifié 1 fois.

__sam__
Messages : 4127
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Emulation d'Assdesass sur To9

Message par __sam__ » 10 janv. 2017 23:46

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
Fichiers joints
x2014-07-13 14.10.25.jpg
Pas super lisible.
x2014-07-13 14.10.25.jpg (147.24 Kio) Vu 1102 fois
Modifié en dernier par __sam__ le 10 janv. 2017 23:58, modifié 3 fois.
Samuel.
A500 Vampire V2+, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8. New Teo 1.8.4 8)

nicolho
Messages : 237
Enregistré le : 10 nov. 2016 16:53

Re: Emulation d'Assdesass sur To9

Message par nicolho » 10 janv. 2017 23:49

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
Modifié en dernier par nicolho le 11 janv. 2017 00:04, modifié 2 fois.

__sam__
Messages : 4127
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Emulation d'Assdesass sur To9

Message par __sam__ » 11 janv. 2017 00:03

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 )
Modifié en dernier par __sam__ le 11 janv. 2017 00:24, modifié 1 fois.
Samuel.
A500 Vampire V2+, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8. New Teo 1.8.4 8)

nicolho
Messages : 237
Enregistré le : 10 nov. 2016 16:53

Re: Emulation d'Assdesass sur To9

Message par nicolho » 11 janv. 2017 00:24

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 1101 fois
Bon par contre, c'est d'autres packages que le DIP40..
Modifié en dernier par nicolho le 11 janv. 2017 00:46, modifié 1 fois.

nicolho
Messages : 237
Enregistré le : 10 nov. 2016 16:53

Re: Emulation d'Assdesass sur To9

Message par nicolho » 11 janv. 2017 00:34

Autre listing Thomson : http://datasheet.datasheetarchive.com/o ... 678819.pdf
autre listing ASIC Thomson.jpg
autre listing ASIC Thomson.jpg (61.59 Kio) Vu 1100 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:

Répondre