Auraient-ils recyclé dans les TO8 des 6846 dont la ROM est mauvaise ?
C'est une possibilité, mais peut-être que plus simplement, il y a un décalage d'adresse (due a une version differente de la ROM), etant donné que les 4 Ko ROM supérieurs restent ceux de ta machine ?
Comment est-ce que ca se reverse un gate-array ? On découpe le boitier puis on fait des photographies au microscope [...]
Oui c'est une manière de faire ; d'ailleurs ça se fait, mais c'est un chemin semé d'embuches, c'est loin d'être simple.
Dans le cas du gate-array du MO5, nous avons simplement rassemblé toute la doc connue (le manuel technique du MO5 est un bon point de départ), fait quelques hypothèses et beaucoup d'analyse logique en boîte noire, jusqu'à ce que ca fonctionne.
WhiteBird a tout d'abord réimplémenté le contrôleur de DRAM et le décodage d'adresse a partir des informations connues. L'analyse logique du bus du MO5 a permis de verifier que la ROM était exécutée correctement et la RAM lue et écrite correctement. Pas d'image a l'ecran, puisque la partie video n'etait pas encore implémentée ! Processus itératif : on code, on charge la CPLD, on analyse, on compare, on recommence. Cette partie a été longue a mettre au point. On peut aussi utiliser le simulateur dans l'outil de dev avec des scénarii logique connus.
Le guide technique du mo5 expliquant de manière très détaillée comment fonctionne la vidéo, cette partie a été un peu plus simple à implémenter.
A ce stade, WhiteBird avait déjà un MO5 essentiellement fonctionnel.
La partie la plus pénible pour lui a été l'incrustation vidéo et le crayon optique. C'est sur ce dernier aspect que j'ai le plus travaillé, notamment en reversant cycle par cycle les routines assembleurs de l'interruption FIRQ pour reconstituer le fonctionnement des compteurs internes du gate-array. Ca a permis au passage de s'assurer que chaque cycle tombe au bon moment.
Le seul aspect du gate-array MO5 (v2) qui n'a pas été exploré, c'est la commutation 50-60 Hz pour la video (pour l'export). Tout le reste fonctionne incroyablement bien.
Le pire c'est qu'au final, le code VHDL du gate-array est plutôt simple, autrement dit, ce composant custom qui a l'air si mystérieux de l'extérieur, ne contient en fait pas grand chose. On peut le réimplémenter dans un Xilinx XC95 ou à l'époque, dans une Altera Max, qui sont des CPLD low-cost avec très peu de cellules (en comparaison des FPGA).
Cette approche est a mon avis tout à fait réalisable pour tous les gate-arrays Thomson, hormis celui de Théodore, qui est vraiment complexe et dont la doc manque cruellement.