Auteur Sujet: [WIP 90%] Borne vectorielle : Sega Space Ship  (Lu 93856 fois)

Hors ligne f4brice

  • ✌(◕‿◕)✌ Donateur 2018
  • Arcade Kingmaster
  • *
  • Messages: 4052
  • « Matériel inconnu ? Touche à ton cul ! »
    • Voir le profil
[WIP 20%] Borne vectorielle : Sega Space Ship
« Réponse #160 le: Mercredi 24 Février 2010, 08:15:53 am »
Précision pour les tests : il ne faut pas tester les lignes mémoire individuellement les unes après les autres mais faire le test en globalité
[couic sur la description précise de l'algo de test]

Bonjour.

Merci pour cette information.  ^-

Je partais mal pour mon algo de test car il ne sollicitait qu'une seule cellule mémoire à la fois, sans se préoccuper des autres.
Un problème lié au bus d'adresse n'aurait pas pu être détecté, si tant est que le problème se manifeste à l'identique entre les phases de lecture et d'écriture.
Je n'avais écrit que 25% du programme, donc je vais le reprendre à 0.
De même, je n'avais pas utilisé le fait que les 3 puces mémoires de 256 x 4 bits chacunes sont indépendantes.
L'algo s'en trouvera simplifié.

Le CCPU ne permet d'accéder à la RAM qu'à travers la notion de page.
Les 256 mots de 3 x 4 bits sont organisés en 16 pages de 16 mots de 3 x 4 bits.
Il n'est possible de sélectionner qu'une seule page à la fois (en écrivant dans le registre P, qui ne peut pas être relu).
D'ailleur, il n'existe qu'une et une unique instruction pour écrire dans le registre P :
  • LDP #n
Il n'est possible d'utiliser qu'une constante "n" pour cette instruction, donc définie au moment de l'écriture du programme.
Impossible d'incrémenter, décrémenter P, de copier un accumulateur dans P, etc...
Le jeu d'instructions du CCPU est particulièrement réduit.
Il y a 2 accumulateurs de 12 bits chacun. Tous les autres registres ont une utilité spécifique et ne peuvent être qu'écrits, jamais lu.
Par exemple, le registre "J" contient l'adresse du prochain JUMP réalisé.
Plusieurs instructions permettent de l'écrire, mais aucune ne peut le relire.
Il est lu en interne lorsque justement un JUMP est effectué.
De même, le registre "I" (registre d'indirection mémoire) peut être écrit grâce à plusieurs instructions, mais il n'est jamais lisible.
Il est utilisé en interne pour toutes les opération mémoires qui peuvent utiliser l'indirection :
  • STA [ I ]
  • ADD [ I ]
  • ...

À suivre...

Hors ligne f4brice

  • ✌(◕‿◕)✌ Donateur 2018
  • Arcade Kingmaster
  • *
  • Messages: 4052
  • « Matériel inconnu ? Touche à ton cul ! »
    • Voir le profil
[WIP 90%] Borne vectorielle : Sega Space Ship
« Réponse #161 le: Jeudi 25 Mars 2010, 01:06:53 am »
Bonsoir.

Après des semaines où je n'ai pas touché terre et une semaine d'absence, j'ai enfin pu reprendre le dépannage de ce PCB Sega Space Ship.

La dernière fois, je l'avais laissé dans l'état suivant :
  • le watchdog aboie et reset périodiquement le PCB
  • des commandes aléatoires sont envoyées dans la partie audio pendant quelques secondes
  • aucune image

La 3e puce de RAM (qui était encore d'origine) était très fortement soupçonnée.
J'avais écris un compilateur de code assembleur pour pouvoir réaliser mon propre programme de test de RAM.
Ce programme devait être flashé dans une EPROM standard et j'aurais adapté cette EPROM à la place des 8 PROM Sega qui contiennent le jeu.
N'ayant pas encore d'effaceur d'EPROM, j'avais apporté chez mes parents tout mon stock d'EPROM pour les effacer sur l'insoleur UV (outil pour faire les circuits imprimés) de mon Pôpa.
Malheureusement, j'ai oublié chez mes parents tout ce stock d'EPROM, et je me retrouve donc pour quelques semaines sans aucun de ces composants, jusqu'à ma prochaine visite chez eux !

Donc en attendant, j'ai décidé de continuer quand même le dépannage du PCB avec la méthode "traditionnelle" :
  • suppression de l'oscillateur à quartz du PCB
  • mise en place d'un bouton poussoir pour faire du pas à pas
  • flicage au microscope à l'oscilloscope de toutes les instructions

Ayant plusieurs petits composants optiques "TIL311" qui m'ont été donnés par gc339, j'en ai profité pour les mettre en action :


5 composants TIL311 en action

  • 2 d'entre eux affichent l'instruction en cours d'exécution ; c'est une information essentielle
  • 3 autres affichent la valeur de l'accumulateur principal du PCB ; c'est une autre information majeure
Ainsi, je suis quitte de promener la sonde de l'oscillo à ces endroits.
J'ai 2 infos très importantes en un seul coup d'oeil. Le confort et le gain de temps sont nettement améliorés.


L'instruction en cours d'exécution

Pour le branchement, je ne me suis pas pris la tête comme la dernière fois.
Les composants TIL311 sont branchés directement sur les bus à observer.
J'ai vérifié à l'oscillo et leur présence n'affaiblit pas les niveaux TTL.
J'ai vérifié également qu'ils étaient tous correctement câblés et qu'ils indiquaient tous la valeur qu'ils doivent mesurer.


C'est reparti pour un débuggage électronique du PCB...


Parmi les premières instructions, le jeu lit une entrée et récupère la valeur opposée (le PCB est ainsi conçu) dans l'accumulateur :


L'entrée n'est pas activée, 0x001 est écrit dans l'accumulateur

L'instruction d'après demande un décalage de 1 bit vers la gauche de l'accumulateur.
Il passe donc comme prévu de la valeur 0x001 à 0x002.
C'est grosso-modo l'équivalent d'une multiplication par 2.


Décalage de 1 bit vers la gauche

L'instruction suivante est elle aussi un décalage de 1 bit vers la gauche.
L'accumulateur passe donc de 0x002 à 0x004 comme il est prévu :


2e décalage de 1 bit vers la gauche

Puis l'instruction d'après est encore un décalage vers la gauche (ça fait le 3e).
J'ai vérifié, et le code du jeu est bel et bien réalisé comme ça.

Sauf que là, c'est le drame :


Patatra !

L'accumulateur passe de 0x004 à 0x000 au lieu de 0x008. Pas glop...
En plus, le changement se fait sur un front descendant de la clock.
D'après la doc technique du 74LS194 (le composant qui stocke la valeur de l'accumulateur et qui réalise aussi les décalages binaires), le changement aurait dû se faire sur le front montant de la clock, et j'aurai dû avoir 0x008 et non pas 0x000.
J'ai bien sûr vérifié à l'oscillo et le petit afficheur TIL311 affiche la valeur réelle (une erreur de câblage de ma part aurait pu m'enduire d'erreur et me faire croire à une erreur à l'insu de mon plein gré).


Demain matin, je ferai escale chez le crémier pour acheter un composant de remplacement...


À suivre...

Hors ligne maldoror68

  • Dieu de l' Arcade
  • *
  • Messages: 7819
  • voui, c'est moi ki l'ai fait ^^allez voir mon blog
    • Voir le profil
    • pixels points morts
[WIP 90%] Borne vectorielle : Sega Space Ship
« Réponse #162 le: Jeudi 25 Mars 2010, 11:03:42 am »
c'est toujours aussi passionant a suivre, et surtout détaillé  :-* :-* ^-

Hors ligne the_vidy

  • Scotché
  • *
  • Messages: 454
    • Voir le profil
[WIP 90%] Borne vectorielle : Sega Space Ship
« Réponse #163 le: Jeudi 25 Mars 2010, 16:17:25 pm »
Ca a l'air trop facile pour toi d'acheter des composants. Je trouve ça trop galere, il n'y a plus de magasin d'electronique par chez moi et faire une commande electronique diffusion coute plus cher en transport (en plus je me goure souvent dans les ref).

Hors ligne Iro

  • Alias le Rouston Masqué
  • Staff
  • Dieu de l' Arcade
  • *****
  • Messages: 17420
  • Iro, chevalier Judaï
    • Voir le profil
[WIP 90%] Borne vectorielle : Sega Space Ship
« Réponse #164 le: Jeudi 25 Mars 2010, 16:22:43 pm »
Ca a l'air trop facile pour toi d'acheter des composants de dépanner.
... tout cours !!
Je suis admiratif devant ce travail !!!
HS : Gti Club Minifiesta est sorti sur WII. Sympa mais pas transcendant.
"Jet set 2, c'est avec Robert Garcia ?" Kaneda, Lapsus de sac Vol.1
Peter Shou Owner' Club

WIPs : Naomi - SEGA Rally - AB Cop - Lethal Enforcers - COMPUMI - Terminator 2 - Space Invaders - Artworks pour Boitiers K7 Naomi CF

LES TUTOS DE GAMO   

Hors ligne f4brice

  • ✌(◕‿◕)✌ Donateur 2018
  • Arcade Kingmaster
  • *
  • Messages: 4052
  • « Matériel inconnu ? Touche à ton cul ! »
    • Voir le profil
[WIP 90%] Borne vectorielle : Sega Space Ship
« Réponse #165 le: Jeudi 25 Mars 2010, 19:49:26 pm »
Ca a l'air trop facile pour toi d'acheter des composants. Je trouve ça trop galere, il n'y a plus de magasin d'electronique par chez moi et faire une commande electronique diffusion coute plus cher en transport (en plus je me goure souvent dans les ref).

Sur Besançon, il y a 2 magasins d'électroniques assez bien fournis.
EDIT : http://www.microprocessor-fr.com/ et http://www.reboul.fr/

Ce matin, je suis passé dans le magasin habituel (situé à 2 min de mon boulot, je passe devant tous les jours).
Ils n'avaient pas de 74LS194 référencés (pourtant ils ont des trucs largement plus exotiques).
J'ai passé un coup de fil au 2e magasin qui l'avait en référence et en stock.

C'est vrai que c'est extrêmement pratique de ne pas à avoir à tout commander par correspondance.
« Modifié: Jeudi 25 Mars 2010, 19:52:12 pm par f4brice »

Hors ligne f4brice

  • ✌(◕‿◕)✌ Donateur 2018
  • Arcade Kingmaster
  • *
  • Messages: 4052
  • « Matériel inconnu ? Touche à ton cul ! »
    • Voir le profil
[WIP 95%] Borne vectorielle : Sega Space Ship
« Réponse #166 le: Jeudi 25 Mars 2010, 20:20:43 pm »
Bonsoir.

Mise à jour de ce WIP.

Hier soir, j'avais déterminé avec certitude qu'un composant était bel et bien grillé.
À midi, je suis passé chez le 2e crémier et j'ai donc acheté 3 circuits intégrés 74LS194 (1 pour remplacement, 2 pour avoir un peu de stock).

Ce soir, j'ai donc dessoudé celui d'origine qui avait pris sa retraite trop tôt à mon goût :


Toi, tu sors !

J'ai déjà constaté à l'oscillo sa panne ; mon flasheur-testeur confirme mon diagnostic :


Ca môrche pô !

Je mets en place (sans utiliser de support) son remplaçant, fraichement acheté :


Bienvenue au p'tit nouveau

Ensuite, il me faut confirmer que le p'tit nouveau a un avenir prometteur.
Je déroule donc à nouveau les instructions assembleur du jeu en pas à pas.
Cette fois, lorsqu'il s'agit de faire le 3e décalage binaire, le nouveau composant assure :


Well done, Jim !

Je continue de suivre l'exécution de nombreuses instructions.
Tout semble correct, il est temps de déconnecter mon bouton poussoir de pas à pas, et de remettre en service le quartz de la clock d'origine...


Back to 19,968 MHz (ok, c'est divisé derrière)

Les afficheurs TIL311 affichent "8" car l'œil n'a pas le temps de voir les changements (persistance rétinienne) si toutefois les afficheurs ont bien le temps de commuter, ce qui n'est pas sûr. Bref, c'est normal.

Un petit coup d'oscillo sur le signal "RESET" du watchdog, et... c'est le calme plat !
Le PCB n'est plus reseté par le watchdog !
 :-)= :-)= :-)= :-)=

Je jette un oeil à l'une des sorties qui pilote l'écran vectoriel :


Miam !

Ça, c'est très très (...) très bon signe, ça veut dire que le PCB envoie des ordres de tracé vectoriel à l'écran !  :-)=

Je teste donc le PCB dans la borne, et...





.




.




.




.




.




.





Ça maaaaaaaaaaarche !


Mon PCB Sega Space Ship est donc réparé pour la 2e fois ! :-)=  :-*  8)


Hors ligne zebassprophet

  • Fuse Killer
  • Dieu de l' Arcade
  • *
  • Messages: 10269
  • T'as pas 30 deniers?
    • Voir le profil
    • Rock'N'Concept
[WIP 90%] Borne vectorielle : Sega Space Ship
« Réponse #167 le: Jeudi 25 Mars 2010, 21:00:32 pm »
you're the best^^

Hors ligne AsPiC

  • Admin
  • Dieu de l' Arcade
  • *****
  • Messages: 7907
  • Present pour Koh Lanta Retrogaming Party 2069 !
    • Voir le profil
    • Mon compte Instagram !!
[WIP 90%] Borne vectorielle : Sega Space Ship
« Réponse #168 le: Jeudi 25 Mars 2010, 22:11:33 pm »
Good Job ^-^

Sinon pas tout jeune le remplaçant :D


Recherche tout élément de Jeutel Galaktron - "AsPiC c'est : no WIP but just RIP" - kos71 2014

Hors ligne Sir Kayne

  • Arcade Druid
  • *
  • Messages: 3858
    • Voir le profil
    • Le monde de Shanarah
[WIP 90%] Borne vectorielle : Sega Space Ship
« Réponse #169 le: Jeudi 25 Mars 2010, 22:39:35 pm »
C'est le genre de post qui me redonne du courage pour reparer mes pcb défectueux (en particulier une turbo outrun qui me reste à dépanner)  8)

En tout cas bravo pour la réparation, mais aussi pour les explications, ce n'est peux être pas limpides pour tout le monde, mais en tous cas ca donne une certaine démarche logique à suivre (pas bête le coup des TIL) ^-
Cherche : pédale d'accélération d'une Outrun Upright, Une Racingcab (outrunner ou Daytona), pcb RaveRacer, PCB Missile Command (he oui), une Spacegun et le pcb Kabuki Z (on peut toujours rêver :)) et puis un flipper Raven (je l'aurais un jour...)
"Ne me dite pas que je ne peux pas faire quelque chose!" J.Locke

Hors ligne f4brice

  • ✌(◕‿◕)✌ Donateur 2018
  • Arcade Kingmaster
  • *
  • Messages: 4052
  • « Matériel inconnu ? Touche à ton cul ! »
    • Voir le profil
[WIP 90%] Borne vectorielle : Sega Space Ship
« Réponse #170 le: Jeudi 25 Mars 2010, 22:44:19 pm »
pas bête le coup des TIL

L'idée des TIL311 est de gc339<:)
C'est lui aussi qui m'a donné 6 de ces composants !  :-*

Hors ligne jujusl

  • Grand Pilier
  • *
  • Messages: 793
  • Arcadomane Tuxophile
    • Voir le profil
[WIP 90%] Borne vectorielle : Sega Space Ship
« Réponse #171 le: Jeudi 25 Mars 2010, 23:24:22 pm »
J'adore ces WIPs de PCB ! :-*

Hors ligne HerosSuperMan

  • Donc!!
  • Dieu de l' Arcade
  • *
  • Messages: 6081
  • Let's Pump It Up
    • Voir le profil
[WIP 90%] Borne vectorielle : Sega Space Ship
« Réponse #172 le: Vendredi 26 Mars 2010, 08:44:02 am »
yeahhh encore une super action des dieux de l'électronique  ^-^
(on peut dire "des" pour une personne ???  :D)

et mdr pour la signature de ton pseudo
« Matériel inconnu ? Touche à ton cul ! »
 ^-
Mes Wip, mes RT... la vie quoi ^^
Mes recherches\échanges (bornes, PCB, pièces ...)
Recherche .. non..rien rien rien..le problème c'est que l'on fini toujours par trouver... >:D

Hors ligne speedsterharry

  • Pratiquement VIP
  • *
  • Messages: 1261
    • Voir le profil
[WIP 90%] Borne vectorielle : Sega Space Ship
« Réponse #173 le: Vendredi 26 Mars 2010, 15:54:45 pm »
F4brice, l'homme qui avait le pouvoir de vie et de mort sur les PCBs  ^-

Hors ligne maldoror68

  • Dieu de l' Arcade
  • *
  • Messages: 7819
  • voui, c'est moi ki l'ai fait ^^allez voir mon blog
    • Voir le profil
    • pixels points morts
[WIP 90%] Borne vectorielle : Sega Space Ship
« Réponse #174 le: Vendredi 26 Mars 2010, 20:05:17 pm »
f4brice, le chuck norris des pcb  ^-^ :D

Hors ligne f4brice

  • ✌(◕‿◕)✌ Donateur 2018
  • Arcade Kingmaster
  • *
  • Messages: 4052
  • « Matériel inconnu ? Touche à ton cul ! »
    • Voir le profil
[WIP 90%] Borne vectorielle : Sega Space Ship
« Réponse #175 le: Vendredi 26 Mars 2010, 20:46:32 pm »
F4brice, l'homme qui avait le pouvoir de vie et de mort sur les PCBs  ^-

f4brice, le chuck norris des pcb  ^-^ :D

Ne vous emballez pas, les poulettes !
Cette réparation-là était assez simple :
  • problème constaté dès les 1ères instructions du jeu
  • 1 seul composant était malade

En plus, je n'ai même pas fini d'écrire le programme de test mémoire dont je pensais avoir besoin...

 :?  ;)