Logicielsmoto.com
http://www.logicielsmoto.com/phpBB/

MO5 HS
http://www.logicielsmoto.com/phpBB/viewtopic.php?f=7&t=211
Page 2 sur 5

Auteur:  Daniel Coulom [ 03 Nov 2006, 11:49 ]
Sujet du message: 

whitebird a écrit:
Le bit forme émis par le 6821 indique selon son niveau si l'on veut écrire en mémoire point ou mémoire couleur. Quelq'un saurait t'il quel niveau logique correspond à quelle mémoire??

Bit 0 de $A7C0: 0=couleur, 1=forme

Daniel

Auteur:  Fool-DupleX [ 03 Nov 2006, 12:38 ]
Sujet du message: 

Ca alors on a encore repondu l'inverse l'un de l'autre :lol:

Fool

Auteur:  whitebird [ 03 Nov 2006, 14:36 ]
Sujet du message: 

Merci, moi ce qui m'arrangerait le plus c'est 1=couleur, 0=forme, sinon va falloir que je change mon décodage dans le gate array, mais c'est pas bien méchant.

Remarque: avez-vous noté cette petite confusion au niveau de l'appelation du signal forme??
Le signal forme aurait du s'appeler plutôt couleur. En effet la mémoire point contient des bits qui selon leurs valeurs indiquent si un pixel est de la couleur fond ou forme. Or les couleurs fond ou forme sont dans la mémoire couleur...

J'ai une autre question hard/soft: le 6809E est capable de lire à un instant donné la valeur des compteurs du gate array, entre autre pour la gestion du crayon optique.

Le logiciel qui est en ROM ferait-il cette lecture pour autre chose que le crayon optique?

Auteur:  Fool-DupleX [ 03 Nov 2006, 14:54 ]
Sujet du message: 

Il n'y a rien qui me vienne a l'esprit a part le crayon optique, mais plusieurs logiciels lisent ces valeurs pour synchroniser l'affichage, pour des scrollings par exemple.

L'interface incrustation influe partiellement sur le fonctionnement du gate-array, notamment par le rattrapage de la 625e ligne de balayage ecran, mais je suppose que ce n'est pas prioritaire a implementer.

A quoi penses-tu ?

Fool

Auteur:  whitebird [ 03 Nov 2006, 15:50 ]
Sujet du message: 

Citation:
Il n'y a rien qui me vienne a l'esprit a part le crayon optique, mais plusieurs logiciels lisent ces valeurs pour synchroniser l'affichage, pour des scrollings par exemple.


D'ailleurs il doit exister je pense une interuption type VBL (vertical blank) car la broche 19 du PIA reçoit un signal qui passe à '1' lors de chaque retour trame (toutes les 20ms)

Citation:
L'interface incrustation influe partiellement sur le fonctionnement du gate-array


Oui car le gate array est alors cadencé par l'horloge VCO et donc tous les timings dépendent de VCO et non plus de l'horloge 16MHz on board.

Citation:
A quoi penses-tu ?[/
Citation:

Actuellement je n'ai pas encore implémenté la gestion du crayon optique, notamment les latchs de maintient de l'adresse vidéo. Je voudrais donc savoir si le fait que cela ne soit pas implémenté ne peux pas avoir un impact sur l'initialisatoin jusqu'a l'apparition du "MO5 basic...."

Autrement dit si cela ne peux pas causer un bug de fonctionnment ex: le micro par lecture des compteurs vidéo reçoit une valeur bidon style FFFF.......

Auteur:  whitebird [ 03 Nov 2006, 15:52 ]
Sujet du message: 

Oh mince, j'ai fait une inversoin entre la citation et ma réponse...

Auteur:  Fool-DupleX [ 03 Nov 2006, 16:40 ]
Sujet du message: 

whitebird a écrit:
Oh mince, j'ai fait une inversoin entre la citation et ma réponse...


pas grave ...

Le signal d'interruption auquel tu fais allusion n'est pas reellement une VBL. c'est en fait une source de temps a 50 Hz generee a partir des signaux du gate-array par une logique a base de circuits 74, qui sert, par exemple, au clignotement du curseur.

Mais comme tout est parfaitement synchrone dans cette machine, tu peux la considerer comme une pseudo-vbl (mais elle n'est pas liee conceptuellement au retour du balayage).

L'extension incrustation fait plus que fournir le signal VCO, puisque certains compteurs du gate-array se mettent a fonctionner differemment pour rattraper la 625e ligne de l'ecran, qui n'est pas consideree lorque l'image est generee avec la clock interne. CLRG et SYNLT entre autres sont touches si mes souvenirs sont bons.

Je ne crois pas que la ROM fasse quoi que ce soit de bizarre avec le crayon optique, car je n'emule pas (ou mal) les compteurs du gate-array dans dans Emul5 et ca ne l'empeche pas de fonctionner.

Fool

Auteur:  Daniel Coulom [ 03 Nov 2006, 17:08 ]
Sujet du message: 

Fool-DupleX a écrit:
Ca alors on a encore repondu l'inverse l'un de l'autre :lol:

D'ou tiens-tu l'info ?
J'ai toujours des doutes quand on me pose ce genre de question, alors j'ai regarde dans dcmoto avant de repondre. Et je crois avoir raison, car sinon l'emulateur ne marcherait pas ;)
Mais je suis ouvert a toute discussion :)
Pour whitebird : les appellations "forme" et "couleur" ne me plaisent pas non plus, je les utilise pour garder le vocabulaire Thomson. Pour le MO5, on arrive a comprendre, mais pour les modes speciaux des machines de derniere generation ca n'a aucun sens. Je prefere parler de page 0 (bit 0 de $A7C0 = 0) et de page 1 (bit 0 de $A7C0 = 1).

Daniel

Auteur:  whitebird [ 03 Nov 2006, 17:18 ]
Sujet du message: 

Citation:
Le signal d'interruption auquel tu fais allusion n'est pas reellement une VBL. c'est en fait une source de temps a 50 Hz generee a partir des signaux du gate-array


Merci pour l'info

C'est en quelques sorte pour pallier au manque de timer du 6809E?

Mais ce signal par l'intermédiaire du 6821 génère une IT ou bien il faut scruter?

Citation:
CLRG et SYNLT entre autres sont touches si mes souvenirs sont bons


En mode vidéo incrusté les compteurs du gate array sont remis à '0' par SYCL lui-même piloté par CLRG qui provient de l'interface d'incrustation. Je pense que l'interface d'incrustation n'agit pas directement sur SYNLT mais indirectement par remise à zéro des compteurs.



Citation:
par une logique a base de circuits 74


Oui c'es le monostable 74LS221

Auteur:  whitebird [ 04 Nov 2006, 00:16 ]
Sujet du message: 

Citation:
alors j'ai regarde dans dcmoto avant de repondre. Et je crois avoir raison, car sinon l'emulateur ne marcherait pas


Alors là je ne te suis pas Daniel...

Il faut que tu m'expliques...

Whitebird.

Auteur:  Daniel Coulom [ 04 Nov 2006, 19:06 ]
Sujet du message: 

whitebird a écrit:
Il faut que tu m'expliques...

Pour afficher l'ecran, dcmoto utilise les octets de $0000-$1F3F en tant que couleurs s'ils sont ecrits avec le bit 0 de $A7C0 a zero, et sinon en tant que pixels. Si la page couleur et la page forme etaient inversees, l'ecran serait tres bizarre ;)

Daniel

Auteur:  whitebird [ 04 Nov 2006, 21:14 ]
Sujet du message: 

OK, merci pour ces renseignements, Daniel.

Citation:
Si la page couleur et la page forme etaient inversees, l'ecran serait tres bizarre


Ca c'est sûr...

Remarque: ce qui assez étonnant est l'affichage que l'on obtient en l'absence de micro par ex, c'est à dire lorsque les mémoires dynamiques ne sont pas initialisées.

On observe un motif très régulier sur l'écran avec alternance de lignes jaunes et noires. Ce motif est selon moi révélateur de la structure des mémoires dynamiques 4416.

Sur un MO5 fonctionnant normalement, le motif peut être observé pendant une fraction de seconde à la mise sous tension, le temps que le signal Reset du 6809 remonte.

Whitebird

Auteur:  Daniel Coulom [ 05 Nov 2006, 08:08 ]
Sujet du message: 

whitebird a écrit:
ce qui assez étonnant est l'affichage que l'on obtient en l'absence de micro par

C'est effectivement assez mysterieux. L'émulateur dcmoto initialise aussi la ram alternativement a $00 et $FF, en fonction du bit 7 de l'adresse, et affiche donc les memes bandes orange et noires au demarrage :
Code:
for(i = 0; i < ramsize; i++) ram[i] = -((i & 0x80) >> 7);

Daniel

Auteur:  whitebird [ 05 Nov 2006, 12:18 ]
Sujet du message: 

Intéressant, les concepteurs de l'émulateur ont donc été jusqu'à simuler cette particularité...

Cela nous fais donc une alternance de 3.2 lignes noires et 3.2 lignes jaunes. Cela colle parfaitement avec ce que j'observe sur l'écran. Moi j'ai la chance de pouvoir voir ce phénomène de manière stable car je n'ai pas de micro sur la carte :-)

D'autre part y aurait-t-il un petit bug de conception hard sur la carte du MO5??

Je veux dire un conflit hardware possible entre la sortie de la ROM et le 6809E.

En effet les broches /OE et /CE sont strappées et directement reliées au décodage d'adresse qui ne prends pas en compte le signal R/nW. Donc si dans un programme on essaye "d'écrire" en ROM, (ce qui évidemment n'a pas de sens) les sorties de cette dernière vont passer en basse impédance par décodage d'adresse et le bus de donné du 6809E sera aussi en basse impédance puisque écriture d'où conflit???

Dites moi si je me trompe.

Whitebird

Auteur:  Daniel Coulom [ 06 Nov 2006, 10:56 ]
Sujet du message: 

whitebird a écrit:
Moi j'ai la chance de pouvoir voir ce phénomène de manière stable car je n'ai pas de micro sur la carte :-)

Est-ce vraiment une chance ? :lol:

Pour voir le phénomène dans dcmoto :
- Dans les options, réglez la vitesse d'émulation à 10%
- Cliquez sur Fichier / Démarrage à froid
- Appuyez immédiatement sur la touche Pause

Petite anecdote :
Le jeu Marche à l'ombre sur MO6 a un bug, qui passe inaperçu grâce à cette initialisation de la ram. Une boucle mal programmée se termine miraculeusement car elle rencontre un octet de valeur $FF.
Faites l'expérience suivante : en Basic, écrivez et exécutez une boucle de remise à zéro de toutes les banques ram. Ensuite chargez et lancez le jeu : il se plante.
C'est aussi ce qui se passerait avec dcmoto s'il n'initialisait pas correctement la ram.

Daniel

Page 2 sur 5 Heures au format UTC + 1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/