TUTO: programmation du [ EF-9345 ] ALICE/VG/MINITEL

Cette catégorie traite de développements récents destinés à nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3051
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: TUTO: programmation du [ EF-9345 ] ALICE/VG/MINITEL

Message par Papy.G »

C'est en R7 que tu indique la colonne adressée, R6 pointe la ligne et une partie de l'adresse de bloc.
Pour R6, le bit de valeur 32 est celui qui va pointer vers le bloc 4 (D0=Z3 de l'adresse de bloc, selon la doc de l'EF9345)
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Avatar de l’utilisateur
6502man
Messages : 12312
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: TUTO: programmation du [ EF-9345 ] ALICE/VG/MINITEL

Message par 6502man »

Tu veux utiliser les commandes longues par rapport à certaines fonctionnalités ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: TUTO: programmation du [ EF-9345 ] ALICE/VG/MINITEL

Message par joaopa »

J'utilise les commandes longues car ce sont elles qui sont utilsées dans le livre Les astuces d'Alice :oops:

Pas de raison particulière à part ca....
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: TUTO: programmation du [ EF-9345 ] ALICE/VG/MINITEL

Message par joaopa »

Papy.G a écrit :C'est en R7 que tu indique la colonne adressée, R6 pointe la ligne et une partie de l'adresse de bloc.
Pour R6, le bit de valeur 32 est celui qui va pointer vers le bloc 4 (D0=Z3 de l'adresse de bloc, selon la doc de l'EF9345)
Exact. J'ai inversé R6 et R7. Sinon, dans les astuces d'Alice, il ne parlait pas des bits de poids haut de R6 pour changer de blocs....
C'est ca qui me confusait. En plus faut avouer que dans la doc de Thomson, l'info est bien cachèe :roll:
Avatar de l’utilisateur
6502man
Messages : 12312
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: TUTO: programmation du [ EF-9345 ] ALICE/VG/MINITEL

Message par 6502man »

Personnellement j'utilise que les commandes courtes et ca fonctionne très bien.

Après chacun pratique l'EF-9345 comme il veux :D

En faite avec ce VDP je pense que le plus dur est de bien comprendre le système de bloc et après le reste parait très clair :roll:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3051
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: TUTO: programmation du [ EF-9345 ] ALICE/VG/MINITEL

Message par Papy.G »

Salut, je remonte ce topic car je commence à coder un truc pour tâter le minitel, (Je me suis fait un programmeur d'EEproms avec un breadboard et des bouts de fil.), et j'ai des questions concernant l'init du VDP.

Je ne vois nulle part de détails, je vais vous sembler bête, mais le 9345 ne peut afficher que 20+1l en 60Hz, et 24+1 en 50Hz, ce sont respectivement les modes 312 et 362 lignes, on ne peut donc pas afficher 24+1l en 60 Hz, ni 20+1l en 50Hz (sauf à changer la fréquence du quartz).

Comment fonctionne ce bit 2 de R0 en lecture, le status Vsync?
Est-il à un ou à zéro pendant le Vblanking?
VSM et VRM permettent bien simplement d'activer cette fonction du bit d'état précité?
En fait, je veux attendre la fin de scan, pour envoyer une quantité donnée d'octets entre balayages, sans avoir à subir les tempos de lectures mémoires de l'affichage et me simplifier le codage côté µC. :mrgreen:

Par ailleurs, suite aux sujets sur le son 1bit que j'ai suivi avec le plus grand intérêt, j'ai cherché, et j'ai cru voir que l'on peut activer l'insertion pendant le Bulk, mais aussi pendant les blankings. 8)
Quel rapport, me direz-vous? Eh bien le buzzer sur le M1b étant câblé sur la broche I du 9345, et je désepérais ne pouvoir rien en sortir de bon s'il avait du subir systématiquement un battement de 50Hz, ce qui n'est à priori pas le cas! :mrgreen:
Elvis, fais chauffer tes foutues godasses bleues! :twisted:
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Avatar de l’utilisateur
6502man
Messages : 12312
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: TUTO: programmation du [ EF-9345 ] ALICE/VG/MINITEL

Message par 6502man »

La j'ai pas les réponses avec moi.

Qu'est ce qu'ils disent dans le datasheet au sujet de Vsync ?
Dernière modification par 6502man le 29 janv. 2015 17:59, modifié 1 fois.
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Patrick
Messages : 2019
Inscription : 16 mai 2009 09:30
Localisation : Clermont-Ferrand

Re: TUTO: programmation du [ EF-9345 ] ALICE/VG/MINITEL

Message par Patrick »

VRM and VSM respectively reset and set a vertical synchronization status mask. When the mask is set, status bit S2 remains at 0. When the mask is reset, status S2 follows the vertical sync. state : it is reset for 2 TV lines per frame and stays at 1 during the remaining period. It becomes readable by the microprocessor form the status register. After power on, the mask state is undetermined.
Patrick
Daniel
Messages : 17397
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: TUTO: programmation du [ EF-9345 ] ALICE/VG/MINITEL

Message par Daniel »

Le livre "Les Mystères d'Alice" dit exactement la même chose. Ce fameux bit VS est à 0 pendant 2 lignes du VBL, et à 1 pendant le reste du temps (sauf s'il est masqué par une commande VSM). Sous-entendu : il n'est pas à 0 pendant tout le VBL, mais uniquement pendant la durée de 2 lignes.

J'ai consulté la datasheet de l'EF9345 sur le site http://alice32.free.fr/ . Le schéma de la page 9/38 donne la position exacte du signal VS par rapport au début et à la fin du VBL : 3 lignes après le début et 23 lignes avant la fin en non entrelacé.
ef9345.png
ef9345.png (30.08 Kio) Consulté 5129 fois
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3051
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: TUTO: programmation du [ EF-9345 ] ALICE/VG/MINITEL

Message par Papy.G »

Merci les gars, je pensais que Vs, comme HVS, faisait référence à une des broches de synchro selon la configuration HV/Sync.
Ce Timing ne m'arrange pas tellement, mais je devrais arriver à envoyer les paramètres et une ligne en 2496µs, pour commencer.
Si je fais mes envois à ce moment-là, et que je prends garde à respecter la durée de réalisation des différentes commandes, je n'ai pas besoin de tester le Busy?
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Avatar de l’utilisateur
6502man
Messages : 12312
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: TUTO: programmation du [ EF-9345 ] ALICE/VG/MINITEL

Message par 6502man »

Si tu est sur de ton timing entre chaque envoi de commande, le BUSY n'est pas nécessaire mais ca va être serré :D

Pourquoi choisi tu ce moment précis pour envoyer les données au VDP ?

Ne pourrais tu pas envoyer simplement les données à n'importe quel moment, pour dans un premier temps valider l'accès au VDP par ton programme ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3051
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: TUTO: programmation du [ EF-9345 ] ALICE/VG/MINITEL

Message par Papy.G »

Parce-que c'est à ce moment-là que le VDP est le moins susceptible de délayer, voire dumper, les commandes/données que je lui envoie.
Faut que je vérifie aussi sur la CM le câblage des broches de synchro/composite, pour configurer correctement. :roll:
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Avatar de l’utilisateur
6502man
Messages : 12312
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: TUTO: programmation du [ EF-9345 ] ALICE/VG/MINITEL

Message par 6502man »

Okay je comprend mieux, mais c'est étrange qu'il n'ai pas prévu une autre solution, car quand il faut remplir entièrement l'écran cela va demander plus de µs, et le délai ne le permet pas !!!

EDIT: en faite si je pense qu'il devait dans ce cas envoyer qu'une ligne par VBL (supposition) !
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3051
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: TUTO: programmation du [ EF-9345 ] ALICE/VG/MINITEL

Message par Papy.G »

PC/VS non câblé, c'est donc composite sync, j'aurais dû parier.

Je pense qu'on doit arriver à remplir un écran entre ce temps dispo et celui pendant les scans (page de moins de 1,5ko, à la louche, cependant)

Je n'ai pas avancé dans la décompilation, mais je ne pense pas qu'ils se contentent d'une ligne par vbl dans la rom d'origine, bien que cela ne se serait probablement pas vu.

Edit: Il y a une erreur dans la doc, d'où ma confusion passée sur VS et VSM/VRM:
P34: R0 S2: Gives the vertical synchronization signal state, This is maskable by the VRM command.
Il faut lire: maskable by the VSM command.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3051
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: TUTO: programmation du [ EF-9345 ] ALICE/VG/MINITEL

Message par Papy.G »

Bonsoir, étant encore en réflexions sur les modes de fonctionnement de ce passionnant composant, et le moyen de lui faire sortir des trucs spectaculaires, j'ai une petite question pour les gourous du 9345:

Lorsque l'on active, via le registre MAT, le mode double hauteur (pour tout l'écran, donc) n'affiche-t'on alors que les douze premières lignes de la page-écran? Du coup, a-t'on un vrai double hauteur avec toutes les lignes doublées, contrairement au double hauteur en attribut de caractère (qui décale les lignes, et ne double donc pas la dernière)?

En fait, le but, c'est pour faire un scrolling horizontal en mode quadrichromie en 160x120, si l'on n'utilise que quatre couleurs pour tout l'écran, on n'a pas à bouger les attributs, et si en plus, on n'a plus que douze lignes à scroller, au lieu de vingt-quatre, c'est encore mieux (au lieu d'utiliser les quad en basse résolution, on laisse en normal, mais on double la hauteur dans l'attribut de page).
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Répondre