Gamoover

[move]Vous vous épilez le maillot et collectionnez les bornes d'arcade avec des hommes musclés dessus ? Alors soyez les bienvenus sur Gamoover ! [/move]

midway sea wolf

Démarré par phil36, Dimanche 29 Novembre 2015, 16:36:08 PM

Little_Rabbit

Re,

Je ne dirais pas qu'on a fait un bon en arrière, ni que le test ne se lance pas puisque nous avons quelque chose de nouveau à l'écran ;).

Peux-tu nous faire une petite vidéo qui démarre quand la borne est allumée, mais que le RESET n'a pas encore été pressé (on doit donc avoir une bouillie de pixels à l'écran) puis tu appuies sur RESET, afin de bien voir la transition entre la bouillie et ce nouvel écran ? Bien sûr, il faut que la caméra/appareil photo reste bien face à l'écran, avec une mise au point nette, durant toute la vidéo :D.

A+
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

jack_burton

la voila:


reset manuel au bout d'une dizaine de secondes juste avant la fin de la vidéo

Little_Rabbit

Re,

Merci pour la vidéo, c'est parfait !  ^-
(t'as trouvé un assistant pour t'aider à la faire ?! :D ;) )

Mais j'ai du mal à suivre : sur cette vidéo, on voit à nouveau les lignes, celle qu'on doit avoir SANS EPROM de test.

Or sur ton précédent test, tu nous disais que tu obtenais ça avec l'EPROM de test :
Citation de: jack_burton le Dimanche 31 Janvier 2021, 16:59:49 PM


Ta vidéo ne montre pas cette image : elle a pourtant bien été prise AVEC l'EPROM de test ?

Dans quelles circonstances avais-tu obtenu cet écran ?

A+
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

jack_burton

#99
effectivement, je n'avais pas compris ta demande, la 1ère vidéo a bien été faite sans l'eprom de test
et oui, j'ai trouvé une assistante  ;)

en voici une avec l'eprom de test:
 

jack_burton

au cas ou, comme j'ai lu que f4brice dans la remise en route de son Gun Fight avait changé la résistance du reset par une 1k ohm, j'en ai fait de même (c'est bien le seul truc que j'ai compris dans ce qu'il faisait, lol), mais ça n'a strictement rien changé.

Little_Rabbit

Salut,

Oui, ça ne mange pas de pain, ça peut permettre d'éviter d'autres problèmes peut-être :).

Quant à la panne, je n'ai pas fini de réfléchir à sa cause, et étudier le code source de l'EPROM de test... Mais on voit déjà que l'alternance de pixel allumé/éteint montre que le programme s'exécute bien. Par contre le résultat du test n'est guère lisible : je pencherais pour un problème d'adressage de RAM au niveau des multiplexeurs 74LS157... Il faut que j'affine l'analyse pour pouvoir être plus précis.

A+
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

Little_Rabbit

Salut,

Comme je le disais hier, la photo que tu as postée après avoir lancé l'EPROM de test nous renseigne sur plusieurs choses.

On va commencer par les deux les plus évidentes :

L'EPROM de test s'exécute bien, validant le fait que le CPU et l'EPROM sont opérationnels. En effet, en examinant sommairement le code source de l'EPROM de test, on voit que les premiers tests mémoire consistent à remplir la RAM de la valeur hexadécimale $55 :

            ;---------------------------------------
            ;Store #0x55 in all memory 0x2000 - 0x4000
            ;---------------------------------------
ramtest1:   mvi     b,0x55
            lxi     h,0x2000
rmtst1:     mov     m,b
            inx     h
            mov     a,h
            cpi     0x40
            jnz     rmtst1


Sur une borne comme Sea Wolf, à l'affichage noir et blanc, sans nuances de gris, chaque pixel fonctionne en tout ou rien : soit il est éteint et apparaît noir à l'écran, soit il est allumé et il apparaît blanc à l'écran. 1 bit suffit donc à coder la valeur d'un pixel, ce qui fait qu'un octet en mémoire écran va définir l'état de 8 pixels consécutifs.

Par quoi se traduit cette valeur 0x55 ? Voyons ce que cela donne en binaire, et en pixel :



on voit donc que 0x55 revient à avoir une alternance de pixel éteint, puis pixel allumé, puis à nouveau pixel éteint, puis pixel allumé, etc.

C'est exactement ce que nous montre ta photo, ce qui est plutôt positif :).

La deuxième chose que l'on apprend, c'est que le résultat du test ne s'affiche pas correctement. Comme on la vu précédemment, normalement les valeurs des 16 RAM s'affichent sur une seule ligne, verticalement au milieu de l'écran environ.

Dans ton cas, nous n'avons qu'un morceau du résultat semble-t-il, et il se répète plein de fois !

Observons dans le détail la répétition :



On voit donc que tous les 16 lignes de balayage, le motif se répète.

Lors du précédent test, celui sans EPROM qui affiche des lignes verticales, le motif étant identique sur toute la hauteur de l'écran, le défaut ne pouvait pas apparaître :).

Sea Wolf, Space Invaders et compagnie, possède un affichage en 256 x 224 pixels. Nous savons qu'un octet stocke 8 pixels, une ligne de balayage consomme donc :

256 pixels / 8 = 32 octets

Ici notre motif se répète toutes les 16 lignes, soit tous les 16 x 32 octets = tous les 512 octets !

Pour adresser 512 octets, il faut 9 bits. Quand le 10ème bit d'adresse passe à 1, il nous permettrait normalement d'accéder aux 512 octets suivants, ceux allant de l'adresse 512 à 1023. Or ici, on retombe inlassablement sur les mêmes 512 octets sans pouvoir aller plus loin.

On peut donc supposer que le 10ème bit d'adresse est défaillant. Où se trouve-t-il sur le PCB ?



Le multiplexage du 10ème bit d'adresse, c'est à dire A9 (puisque le 1er est A0 ;) ) se situe sur la broche 4 du multiplexeur 74157 situé en F7. Regarde avec ton oscilloscope ce qui se passe sur cette broche. J'aurais tendance à penser qu'elle est fixe, constamment à 1 ou à 0, alors qu'elle devrait régulièrement changer au fil du balayage écran, et au fil de l'écriture faite sur toute la RAM par le programme de test. Si ce signal est fixe, c'est que le 74157 en F7 est défaillant : il faut le changer.

Une autre chose qui me semble anormale, c'est que le résultat est affiché au milieu de l'écran, alors qu'il devrait commencer en début de ligne, à gauche de l'écran, comme si l'écriture s'était faite 16 octets trop loin : cela voudrait dire cette fois que le bit d'adresse A4 serait toujours à 1.



Regarde donc voir à quoi ressemble ce bit A4 : si lui aussi ne bouge pas, ce n'est pas normal, il faudrait alors remplacer le 74157 situé en F5.

Voilà les 2 pistes d'investigation que je peux te proposer pour progresser dans ce dépannage :).

A+
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

jack_burton

Salut

alors j'ai pas tout compris (une fois n'est pas coutume) mais j'ai essayé de suivre les instructions  ;)
première surprise, je n'ai pas des 74157 de F4 à F7, mais des 9322. Mais bon, comme c'est d'origine, je suppose que c'est compatible  ::)



pour ce qui est des mesures, pour le 9322 en F7, j'ai pris les photos dans l'ordre des sorties: 4, 7, 9, 12










pour le 9322 en F5:










du coup, je dirais que le F5 n'est pas trop mal, mais le F7 c'est moins bien, non?

j'ai des 74157 en stock, c'est bon ou il me faut des 9322?

A+

f4brice

Citation de: Little_Rabbit le Lundi 01 Février 2021, 23:11:25 PM
on voit donc que 0x55 revient à avoir une alternance de pixel éteint, puis pixel allumé, puis à nouveau pixel éteint, puis pixel allumé, etc.

C'est exactement ce que nous montre ta photo, ce qui est plutôt positif :).

La deuxième chose que l'on apprend, c'est que le résultat du test ne s'affiche pas correctement. Comme on la vu précédemment, normalement les valeurs des 16 RAM s'affichent sur une seule ligne, verticalement au milieu de l'écran environ.

Un détail avec lequel je ne suis pas d'accord, c'est que le test de RAM ne se termine pas.
Dans la ROM de test, on remplit avec des 0x55 puis des 0xAA puis une valeur incrémentale puis ensuite et seulement après on affiche le résultat.
Je ne vois pas sur la vidéo le pattern du remplissage avec la valeur incrémentale.
Je pense pour ma part que le test s'exécute mal et ne va pas jusqu'au bout.
A un moment donné, le CPU reçoit du caca en lisant la ROM et exécute à peu près n'importe quoi.

A mon avis, il ne faut pas interpréter ce qu'on voit à l'écran tant qu'on est pas sûr que le CPU est bien capable d'aller lire toute la ROM de test.
Le test "Midway" qui consiste à démarrer le PCB sans aucune ROM est intéressant mais très sommaire vis à vis du code exécuté par le CPU.
Ce dernier ne va lire que 2 octets dans la zone d'adressage de la ROM : celui en 0x0000 et celui en 0x0038.

A mon avis, il faut continuer de se pencher sur l'accès à la ROM par le CPU, ce n'est pas encore clean à ce niveau.
Ensuite, il faudra se préoccuper du test de la RAM.

Little_Rabbit

Salut,

@F4brice : oui, tu as possiblement raison, mais vérifier le bon état de ces multiplexeurs me semblait une étape simple à exécuter compte tenu des moyens d'investigation dont dispose jack-burton.

Citation de: f4brice le Mardi 02 Février 2021, 09:05:34 AM
A mon avis, il faut continuer de se pencher sur l'accès à la ROM par le CPU, ce n'est pas encore clean à ce niveau.
Ensuite, il faudra se préoccuper du test de la RAM.

Que suggères-tu pour vérifier si l'exécution d'un programme contenu dans l'EPROM se déroule bien ou pas ?

@jack_burton : merci pour les photos. Mais en l'état, il n'est pas aisé de se rendre compte de ce que tu mesures avec ton oscillo. Il faudrait que tu fasses toutes les mesures avec le même calibre, et en positionnant la trace toujours au même endroit. Comme nous mesurons actuellement des valeurs comprises entre 0V et 5V, tu pourrais positionner la trace "au repos" (c'est à dire quand la pointe est à la masse) en bas de l'écran, par exemple sur la graduation -3 par rapport au centre, et te mettre en calibre 1V/division. Ainsi on verra bien mieux les valeurs mesurées. Le point important c'est de toujours rester sur le même calibre tant qu'on parle de niveau en sortie d'une circuit TTL (tu peux par contre ajuster la base de temps ou le type de syncrho).

Quant au 9322, je ne sais pas, il faut que je trouve sa datasheet.

Mais comme F4brice suggère que c'est une mauvaise piste, nous allons attendre ses suggestions d'investigation ;).

Disposes-tu d'un effaceur et programmateur d'EPROM 2716 ?

A+
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

f4brice

Il faut vérifier que le CPU accède correctement à la ROM :


  • voie 1 sur pin /CS de l'EPROM
  • voie 2 sur un des bits d'adresse du CPU
  • voie 3 sur le bit d'adresse correspondant sur l'EPROM

On doit avoir voie 3 = voie 2.

Ensuite, vérifier que les données qui sortent de l'EPROM arrivent bien dans le CPU :

  • voie 1 sur pin /CS de l'EPROM
  • voie 2 sur pin DBIN du CPU
  • voie 3 sur un des bits de données de l'EPROM
  • voie 4 sur le bit de données correspondant sur le CPU

Quand /CS et à 0 ET DBIN est à 1, on doit avoir voie 4 = voie 3.
A faire 8 fois pour chacun des 8 bits de données.

jack_burton

#107
Salut

bon, là, ça va un peu vite  :o

pour les trucs simples, oui j'ai un effaceur d'eprom, oui j'ai un programmateur, mais non, il ne sait pas faire les 2716, c'est un Wellon VP-390 (on en a parlé en page 3  ;) )

par contre, pour l'oscilo, ça se complique pour moi, je crois que je ne peux pas régler 1V/div car pour les voies 3 et 4 il me semble que je n'ai que 2 possibilités, 0.1 ou 0.5
donc je pourrais partir sur du 0.5?
mais pas sur de savoir regarder les 4 en même temps, mais je vais essayer.

pour les prises de mesure, CS sur l'eprom, je ne sais pas ou c'est:


pour le DBIN sur CPU, ok, c'est la borne 17


mais les bits d'adresse du CPU??? et les bits d'adresse correspondants sur l'EPROM???

jack_burton

bon, pour le CS, j'ai trouvé, c'est la borne 20

jack_burton

#109
et pour les adresses, je suppose qu'il s'agit de cette partie?



bon, c'est un pour flou par endroit, mais si j'arrive un peu à lire, je dirai que ça donne ça:
AD0=>8
AD1=>7
AD2=>6
AD3=>5
AD4=>4
AD5=>3
AD6=>2
AD7=>1
et
AD8=>23
AD9=>22

et d'ailleurs pourquoi uniquement 8 et pas 10 puisque il y a aussi AD8 et AD9 qui vont sur l'eprom?

Golgoth33

Vous lire est un peu comme consulter un manuel de magie. Je ne comprends rien, mais qu'est ce que c'est passionnant! Si j'étais plus jeune, je m'inscrirais à un cursus d'électronique. Bonne chance dans cette rénovation, j'adorais cette borne!
Flipper: heureux possesseur d'un Riverboat Gambler que j'adore, et d'un Genesis en rénovation.
Également d'une chouette borne sur Pandora thème Iron Maiden.

jack_burton

Salut
bon, je crois que je n'avais pas bien compris les mesures à faire, du coup, en relisant, j'ai réalisé que c'était avec le 8080 qu'il fallait que je compare l'eprom.
je ne sais toujours pas si je dois me mettre sur les les D ou les A du 8080
alors j'ai fait une mesure comme suit:
voie 1 => CS borne 20 eprom
voie 2 => DBIn borne 17 CPU
voie 3 => A0 borne 8 eprom
voie 4 => A borne 25 CPU

j'ai la même chose en voie 3 et voie 4, par contre, la voie 4 a une tension bien plus basse.
pour y voir quelque chose, j'ai décalé la référence de chaque mesure, la plus basse est la voie 1



la voie 4 ne se voit pas bien à cause de l'échelle, mais elle suit bien la 3
j'ai du coup fait la même manip en mettant la voie 4 à la place de la 2 pour pouvoir changer l'échelle (donc DBin n'est pas connecté sur cette photo) et on voit bien que c'est pareil mais pas avec la même tension:



bon, je ne sais pas si j'ai fait la bonne manip, donc merci de me corriger si besoin ou de me dire si c'est bon pour que je le fasse sur les différentes adresses.  ;)