Gamoover

Vous aimez GAMOOVER ? Vous avez trouvé la perle rare grâce à notre forum ?
Alors pourquoi pas nous soutenir en effectuant un petit don Paypal sur : contribution@gamoover.net
C'est peut être un détail pour vous, mais nous, ça nous aiderait beaucoup !

Menu

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.

Voir les contributions Menu

Messages - spectroman

#113
salut,

il est bizarre ce boot ce boot circus charlie. 1 pcb, en jamma... Je n'ai jamais vu de boot comme ça.

Tu l'as mis dans le bon sens.
#114
Bravo, t'as vraiment la foi ^-^ c'est tellement merdique à réparer ces cinematronics.

Du coup toutes tes bornes fonctionnent ?
#115
Racecabs & Simulateurs / Wip Outrun Deluxe
Dimanche 10 Mai 2020, 17:17:54 PM
Aujourd'hui levier de vitesse.

Pour mémoire il était comme ça :






Démontage :







Brasage de la rainure creusée par l'action du levier (Marco en action) :





Ponçage et peinture :






Remontage :

Le ressort est cassé :



Mon pote Marco (encore lui, il m'a été très précieux tout le long de ce WIP) a une idée de génie, j'y croyais pas :



Et pourtant, il est à peine plus long et à peine moins raide que l'ancien ressort. Je n'ai même pas besoin de le couper :-)=



C'est mieux que la ficelle à rôti de Chelnov :D






Cerise sur le gateau, juste avant le confinement, je fouillais dans le bordel à jeter d'un exploitant et qu'est ce que j'ai trouvé...
Levier et plaque de DX NOS, il 'y a encore le film dessus :spectro:



C'est beau, c'est presque comme neuf, ça fait bien le click quand on passe la vitesse, je suis heureux 8)

#116
Racecabs & Simulateurs / Wip Outrun Deluxe
Samedi 09 Mai 2020, 17:10:26 PM
Nettoyage des pièces en fibre :


















#117
Racecabs & Simulateurs / Wip Outrun Deluxe
Samedi 09 Mai 2020, 17:04:04 PM
block secteur remonté :



J'ai rentré la borne dans la GR :






une bonne gagneuse cette borne, à 5 Fr la partie... :



monté 2 3 parties :








#118
Règles ton pcb en mode Up Right à l'aide des switch de config.
#119
Merci beaucoup gc339,

Je vais essayer de mettre à jour mes tableaux.

Même si ça à l'air fastidieux.
#120
Oui, je l'ai fait une fois, je me suis dit c'est bizarre elle s'allume.

Puis après elle était HS  :'(
#121
Avant d'attaquer la partie timer des RIOT, qui est très particulière, je termine le décodage de l'adressage d'un system 80A



U2 (2332)
S1=BAB13
S2=/BAB12

il faut que BAB13 soit à 1 et BAB12 à 0.
Les plages d'adresse sont :
[0x2000 : 0x2FFF]  : 4Ko
[0x6000 : 0x6FFF]  : 4Ko
[0xA000 : 0xAFFF]  : 4Ko
[0xE000 : 0xEFFF]  : 4Ko


Z5 (5101)
Il y'a une erreur sur le schema de gottlieb, c'est /CE1 et non CE1
/CE1=0 <=> //(/BAB11|/BAB12) = 0 <=> /BAB11 | /BAB12 = 0
CE2=1 <=> /BAB13 = 1 <=> BAB13 = 0

il faut que BAB13 soit à 0 et BAB12 à 1 et BAB11 = 1
Les plages d'adresse sont :
[0x1800 : 0x1FFF] : 2Ko
[0x5800 : 0x5FFF] : 2Ko
[0x9800 : 0x9FFF] : 2Ko
[0xD800 : 0xDFFF] : 2Ko

Mais Z5 ne fait que 256 mots, elle est donc adressée 8 fois sur chaque plage, car elle ne traite pas les bits A8, A9 & A10



U3 (2332)
S1=BAB13
S2=BAB12
il faut que BAB13 soit à 1 et BAB12 à 1.
Les plages d'adresse sont :
[0x3000 : 0x3FFF]  : 4Ko
[0x7000 : 0x7FFF]  : 4Ko
[0xB000 : 0xBFFF]  : 4Ko
[0xF000 : 0xFFFF]  : 4Ko


PROM1 (2716)
/OE=SEL1 = 0 <=>  /(/BAB11 & /BAB13) = 0 <=> BAB11 | BA13 = 0
/CE=0 <=> /BAB12 = 0 <=> BAB12 = 1
il faut que BAB13 soit à 0 et BAB12 à 1 et BAB11 = 0

Les plages d'adresse sont :
[0x1000 : 0x17FF] : 2Ko
[0x5000 : 0x57FF] : 2Ko
[0x9000 : 0x97FF] : 2Ko
[0xD000 : 0xD7FF] : 2Ko


PROM2
Je n'ai pas d'info sur le type de composant. Je ne sais pas quand elle est sélectionnée.
De mémoire elle est non montée.


En résumé, l'adressage complet du 6502 sur un system 80A est :

Plage d'adresseChip selectionné
0x0000 : 0x007FU4 RAM
0x0080 : 0x00FFU5 RAM
0x0100 : 0x017FU6 RAM
0x0180 : 0x01FFNU
0x0200 : 0x027FU4 PERIPHERIQUES
0x0280 : 0x02FFU5 PERIPHERIQUES
0x0300 : 0x037FU6 PERIPHERIQUES
0x0380 : 0x03FFNU
0x0400 : 0x07FFidem 0x0000 : 0x03FF
0x0800 : 0x0BFFidem 0x0000 : 0x03FF
0x0C00 : 0x0FFFidem 0x0000 : 0x03FF
0x1000 : 0x17FFPROM1 2716
0x1800 : 0x1FFFZ5 5101
0x2000 : 0x2FFFU2 2332
0x3000 : 0x3FFFU3 2332
0x4000 : 0x4FFFidem 0x0000 : 0x0FFF
0x5000 : 0x57FFPROM1 2716
0x5800 : 0x5FFFZ5 5101
0x6000 : 0x6FFFU2 2332
0x7000 : 0x7FFFU3 2332
0x8000 : 0x8FFFidem 0x0000 : 0x0FFF
0x9000 : 0x97FFPROM1 2716
0x9800 : 0x9FFFZ5 5101
0xA000 : 0xAFFFU2 2332
0xB000 : 0xBFFFU3 2332
0xC000 : 0xCFFFidem 0x0000 : 0x0FFF
0xD000 : 0xD7FFPROM1 2716
0xD800 : 0xDFFFZ5 5101
0xE000 : 0xEFFFU2 2332
0xF000 : 0xFFFFU3 2332

HELP: quelqu'un connait il la syntaxe pour afficher les bords sur un tableau? gc339 avait fait un post, mais je ne le retrouve plus.

Tilowil, est ce que j'ai assez détaillé pour que tu puisses décrire le mapping du system 80B pour ton projet?
#122
Citation de: tilowil le Mercredi 06 Mai 2020, 15:10:02 PM
[EDIT] Et zut j'ai pas compris.  >:D bon on va tout reprendre calmement  :D :-((
Déjà je ne comprends pas pourquoi tu parles de AB11 et AB12.
Quand je suis le schema SEL2 <- Z9-3 <- Z9-1 & Z9-2. Z9-1<-Z7-10<-Z7-11=AB12. Z9-2<-Z7-12<-Z7-13=AB13. En suivant le schema je comprends que SEL2 vient d'une combinaison de AB12 et AB13, sauf erreur de ma part, mais dans ce cas je ne vois pas le lien entre SEL2 et AB11.

C'est normal, a 6h00 du matin j'étais pas bien réveillé, c'est bien A12 & A13, tu as raison. Je vais le corriger dans mes posts précédents.

Citation de: tilowil le Mercredi 06 Mai 2020, 15:10:02 PM
Pour U4 ok j'ai trouvé la même chose, la ou je ne comprends pas c'est pour U5. Si AB7 et AB8 donne le debut de l'adresse (U4 : AB7=0 et AB8=0 -> 0x00.., U6 : AB7=0 et AB8=1 -> 0x01.., dans ma logique de 'pisseur de code', U5 : AB7=1 et AB8=0 -> 0x10.. [les .. representant la valeur lié à AB11 et AB12, même si je ne comprends pas  comme dit plus haut])
Et la en lisant ta reponse boum, explosion nucléaire sous mon crane U5 ce n'est pas 0x1000-0x107F, mais 0x0080-0x00FF. Même si dans la logique des choses c'est normal car ainsi on a les plages ainsi
U4 [0x0000:0x007F]
U5 [0x0080:0x00FF]
U6 [0x0100:0x017F]
XX [0x0180:0x01FF]   
U4 [0x0200:0x027F]
U5 [0x0280:0x02FF]
U6 [0x0300:0x037F]
Quel est le lien dans ce cas entre les CS1 et /CS2 et les adresses ? Comment as tu determiné le debut des plages d'adresses

Les CS1 et /CS2 sont décodés à partir du bus d' adresses. Si l'adresse est bonne, ils sont activés.

Le décodage d'adresse n'est pas complet sur un system 80, comme sur beaucoup de PCB. Sur ce systeme les bits d'adresse 15 & 14 sont inutilisés. Les bits 10 & 11 ne sont pas non plus utilisés pour accéder aux RIOT.


ChipA15A14A13A12A11A10A9 A8 A7A6..0
U4 X X 0 0 X X RS 0 0 YY
U5 X X 0 0 X X RS 0 1 YY
U6 X X 0 0 X X RS 1 0 YY

Quand il y a des X ca veut dire que tu peux mettre n'importe quelle valeur et que ca sera sélectionné. c'est pour ça que je dis qu'il y a plusieurs plages.

Par exemple sur U5 (si le bit RS est a 1, il faut ajouter 0x200) :

ChipA15A14A13A12A11A10A9 A8 A7A6..0Adresse
U5 X X 0 0 X X RS 0 1 YY
U5 0 0 0 0 0 0 RS 0 1 YY0x0080
U5 0 0 0 0 0 1 RS 0 1 YY0x0480
U5 0 0 0 0 1 0 RS 0 1 YY0x0880
U5 0 0 0 0 1 1 RS 0 1 YY0x0C80
U5 0 1 0 0 0 0 RS 0 1 YY0x4080
U5 0 1 0 0 0 1 RS 0 1 YY0x4480
U5 0 1 0 0 1 0 RS 0 1 YY0x4880
U5 0 1 0 0 1 1 RS 0 1 YY0x4C80
U5 1 0 0 0 0 0 RS 0 1 YY0x8080
U5 1 0 0 0 0 1 RS 0 1 YY0x8480
U5 1 0 0 0 1 0 RS 0 1 YY0x8880
U5 1 0 0 0 1 1 RS 0 1 YY0x8C80
U5 1 1 0 0 0 0 RS 0 1 YY0xC080
U5 1 1 0 0 0 1 RS 0 1 YY0xC480
U5 1 1 0 0 1 0 RS 0 1 YY0xC880
U5 1 1 0 0 1 1 RS 0 1 YY0xCC80

Toutes ces valeurs sélectionnent U5. par habitude on utilise celle ou les bits non fixés sont à 0.

le passage des bits aux adresses se fait en concatenant tous les bits de A15 à A0 et en convertissant en hexadécimal

A15A14A13A12A11A10A9 A8 A7A6..0binairehexa
0 0 0 0 0 0 0 0 10000000 00000000100000000x0080

Citation de: tilowil le Mercredi 06 Mai 2020, 15:10:02 PM
et comment sais tu que la plage que j'ai attribué à XX n'est pas utilisée ?

La combinaison ou A13 = 0, A12 = 0, A8 = 1, A7 = 1 ne sélectionne aucun chip d'après le schéma, le bus reste en haute impédance.
#123
Le signal /CS2 est le même sur les RIOT en U4 et U5 qu'en U6, la condition est donc identique AB13 = 0 et AB12 = 0

Pour le CS1 de U4 :
CS1 = 1 <=> Z8-4 = 1 <=> /(//AB8 + //AB7) = 1 <=> /(AB8 + AB7) = 1 <=> /AB8 & /AB7 = 1 <=> AB8 = 0 et AB7 = 0

Deux des plages d'adresse sont : [0x0000 : 0x007F] et [0x0200 : 0x027F]


Pour le CS1 de U5 :
CS1 = 1 <=> Z8-1 = 1 <=> /(//AB8 + /AB7) = 1 <=> /(AB8 + /AB7) = 1 <=> /AB8 & AB7 = 1 <=> AB8 = 0 et AB7 = 1

Deux des plages d'adresse sont : [0x0080 : 0x00FF] et [0x0280 : 0x02FF]


Maintenant, on s'intéresse à la broche 36 des RIOT (/RS) :



Si elle est à 0, c'est la RAM du RIOT qui est sélectionnée, sinon c'est les périphériques (PIO et Timer).

Cette broche est connectée au signal BAB9. Ce signal suit AB9, le bit d'adresse 9 du 6502 va donc sélectionner ou la RAM ou les périphériques.

On trouve ce plan d'adressage mémoire :
[0x0000 : 0x007F] : RAM du RIOT U4
[0x0080 : 0x00FF] : RAM du RIOT U5
[0x0100 : 0x017F] : RAM du RIOT U6

[0x0200 : 0x027F] : Périphériques du RIOT U4
[0x0280 : 0x02FF] : Périphériques du RIOT U5
[0x0300 : 0x037F] : Périphériques du RIOT U6

Le choix de Gottlieb au niveau du décodage d'adresse, permet d'avoir une RAM de 384 Octets continue (du point de vue du 6502) de l'adresse 0x0000 à 0x017F.


Concernant les périphériques internes au RIOT, un décodage d'adresse interne au chip, crée ce plan d'adressage :
Adresse interne 0: valeur des E/S en lecture ou en écriture du PIOA
Adresse interne 1: Configuration du sens (0 = Entrée, 1 = Sortie) des GPIO du PIOA
Adresse interne 2: valeur des E/S en lecture ou en écriture du PIOB
Adresse interne 3: Configuration du sens (0 = Entrée, 1 = Sortie) des GPIO du PIOB
Adresses interne suivantes : c'est le timer, non détaillé pour l'instant.

Un exemple sur l'adressage des périphériques : rendre active la sortie SOL9 d'un system 80A.

il faut configurer PA7 de U6 en sortie :
Mettre le bit 8 de l'adresse 0x0300 à 1

Piloter PA7 de U6 à 1 :
Mettre le bit 8 de l'adresse 0x0301 à 1

N'hésite pas à demander des explications complémentaire, si je n'ai pas été assez clair.

[edit2] corriger erreur A11 => A13
#124
Super boulot  ^-^

Il va être comme neuf.
#125
Citation de: Little_Rabbit le Mardi 05 Mai 2020, 22:06:38 PM
Je te pose la question car ce que tu cherches à faire existe déjà : je n'arrive pas à retrouver le lien mais spectroman m'a déjà parlé d'un montage à base d'Arduino que tu plug à la place d'un processeur et qui va t'analyser les composants de tel ou tel PCB (il faut rédiger un petit "driver" pour chaque pcb). Je vais tâcher de remettre la main sur le lien !...

[edit : ah voilà, je pense avoir trouvé : sur cette page d'UKVAC ! ]

[edit 2 : le site de l'auteur Paul Swan ]

Pour être plus précis, je t'ai même donné les 4 pcb pour le réaliser quand je t'ai amené le xenon ;)
#126
Ah ces informaticiens, quand ils n'ont pas de SDK/DLL... :D

Le 6532 (RIOT) est un chip trois en un. Dans ce chip, il y'a :
- une ram de 128 Octets
- deux PIO
- un timer

La communication entre le 6502 et le 6532 se fait par l'intermédiaire d'un bus de donnée, d'un bus d'adresse et d'un bus de signaux de contrôle.



Quand le 6502 veut communiquer avec un 6532, il faut qu'il le sélectionne, c'est généralement fait par un décodage du bus d'adresse.

Sur un system 80A, le décodage d'adresse est fait comme cela :




Par exemple, si tu veux sélectionner le RIOT SOLENOID et LAMP (U6) :



Il faut regarder attentivement les broches 37 (/CS2) , 38 (CS1) de U6. Elles sont connectées respectivement aux signaux SEL2 et Z8-10.

Les conditions de selections sont /CS2 = 0 et CS1 = 1. Pour quelles soient vraies, il faut :
/CS2 = 0 <=> SEL2 = 0 <=> /(/AB13 & /AB12) = 0 <=> AB13 | AB12 = 0 <=> AB13 = 0 et AB12 = 0
CS1 = 1 <=> Z8-10 = 1 <=> /(/AB8 + //AB7) = 1 <=> /(/AB8 + AB7) = 1 <=> AB8 & /AB7 = 1 <=> AB8 = 1 et AB7 = 0

Conclusion quand toutes les conditions suivantes sont vraies : AB13 = 0, AB12 = 0, AB8 = 1, AB7 = 0 le RIOT U6 est sélectionné.

Par exemple lorsque le 6502 va lire ou écrire dans la plage d'adresse [0x0100 : 0x017F] le RIOT U6 est sélectionné. Idem pour la plage [0x0300:0x037F], et il y en a plein d'autre.

Voila c'est tout pour le petit déjeuner, la suite plus tard.

[edit] : tilowil pour approfondir, essaye de trouver des plages d'adresse qui sélectionnent les RIOT en U4 et U5
[edit2] : corriger erreur A11 => A13
#127
J'ai celui la en 600 x 155 mm :


#128
Racecabs & Simulateurs / Wip Outrun Deluxe
Dimanche 03 Mai 2020, 07:42:45 AM