Incompéhension EF9345

Cette catégorie traite de développements récents pour 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

Répondre
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Incompéhension EF9345

Message par joaopa »

Bonjour,

une petite question sur l'EF9345. Disons que je suis en mode en mode 40 colonnes et que je veux afficher un A à la ligne 10 colonne 10

Dans R6, je mets 18. J'envoie ca à l'EF9345. Dois-je attendre qu'il soit prêt ou je peux immédiatement envoyer 10 dans R7 (pour la colonne) et 'A' dans R1. A ce moment la j'attends que l'EF9345 et je demande l'exécution.

Ou a chaque étape je dois attendre qu'il soit prêt?
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3047
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: Incompéhension EF9345

Message par Papy.G »

Attention, tu as un temps d'exécution des instructions, indiqué à la fin du datasheet, il faut attendre lorsqu'il y a un transfert à faire. Pour le remplissage des registres à accès direct, c'est… direct.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Incompéhension EF9345

Message par joaopa »

C'est la théorie. Mais dans mon programme Télécran, si je n'attends pas lors des remplissage des registres directs, il y a des problèmes (vérifié sur un vrai VG5000). Si je mets un temps d'attente, tout se passe bien.
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3047
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: Incompéhension EF9345

Message par Papy.G »

Effectivement, selon la notice, du moment que l'EF9345 n'est plus "busy" pour commencer à remplir les registres, et que tu respectes les timings sur le bus d'entrée, il n'est pas mentionné d'autre temps d'attente que la durée d'exécution des instructions, ajoutée éventuellement aux délais dûs au chargement des buffers. :?

Mes problèmes de timing pourraient aussi venir de là. :lol:
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
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer »

Bon, je suis quand même en difficulté je n'arrive pas a trouver l'adresse de R0 ! j' ai seulement 8f et cf les coordonnées x dans le registre L et y dans le registre H ainsi que la couleur et la forme dans E et le caractère dans D mais en ce qui concerne R0 R1 R2... c'est le mystere total :shock: si quelqu'un a le courage de m'expliquer ça serait bien :oops:
Je ne suis qu'un utilisateur pas un pro
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Incompéhension EF9345

Message par Daniel »

L'EF9345, comme cela a déjà été dit, est un circuit complexe. Pour pouvoir l'utiliser, il est indispensable de commencer par lire et comprendre la documentation du fabricant :
- EF9345 Datasheet
- EF9345 Application Note

Voir en particulier, dans le deuxième document, le paragraphe intitulé "INTERFACE WITH A NON-MULTIPLEXED BUS MICROPROCESSOR", page 2/38.

Image Image
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer »

Bon finalement j'ai trouver comment adresser l'EF9345 . Il faut passer par la routine qui ce trouve en bas de la page 77 du livre (clefs pour vg5000) " . Adresse commençant a $00AD qui renvoie a un jump vers l'adresse $02EF ! tout est dans une table pointé par HL au prealable ...
Je ne suis qu'un utilisateur pas un pro
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer »

Daniel a écrit :(...) EF9345 Application Note
Bonsoir Daniel.

Je n'arrive pas a télécharger l' EF9345 Application Note !!! Est-ce que vous pouvez me l'envoyer svp ? je rame...
Je ne suis qu'un utilisateur pas un pro
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Incompéhension EF9345

Message par Daniel »

Malheureusement, dans Windows 10 avec Firefox 64 bits, le plugin DjVu 64 bits ne semble pas bien fonctionner. Je m'en suis aperçu hier. Il faut installer Firefox 32 bits et le plugin 32 bits. En cas d'échec avec le plugin on peut aussi utiliser la fonction "accès à une URL" de DjView4, elle est indépendante du navigateur et fonctionne dans tous les systèmes, y compris Mac OS, et dans tous les cas de figure.
rendomizer a écrit :Image

Voila ou j'en suis avec l"EF9345 mais je n'arrive pas a acceder aux registres indirect ror,tgs,pat,mat et encore moins krf ! un coup de main serait la bienvenue !
Pour faciliter le dialogue, il vaudrait mieux poster les sources en assembleur.
Personne ici ne lit couramment les programmes Z80 en hexadécimal :wink:
Daniel
L'obstacle augmente mon ardeur.
Xavier

Re: Incompéhension EF9345

Message par Xavier »

@Daniel :shock:
Personne ici ne lit couramment les programmes Z80 en hexadécimal.
Si, 6502man !!!
N'oublie qu'il est capable de lire les codes assembleur dans toutes les unités connues à ce jour.
Hexa, décimal... en chiffre Arabes, romain, grecques, cyrilliques, cunéiforme et égyptien.

Nous ne devons pas le sous-estimer car la légende dit qu'il peut aussi lire des codes rien qu'en léchant la surface d'une disquette ou en suçant le ruban d'une cassette!

... Ha non, c'est pour l'assembleur Motorola... j'm'ai trompé!!!
:?

Donc, oui... la phrase de Daniel est correcte pour le Z80.
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer »

Je me demande comment on affiche les caractères redéfini ... si quelqu'un peut m’éclairer !
Je ne suis qu'un utilisateur pas un pro
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Incompéhension EF9345

Message par 6502man »

Désolé de ne pas avoir put intervenir sur le forum, mais pas dispo ...

Donc :
Ca fait longtemps que je n'ai pas programmé l'EF9345, je ne sait plus trop mais cela doit être expliqué dans le post que j'avais consacré au EF9345:
http://forum.system-cfg.com/viewtopic.php?f=25&t=5731
Et n'oublie pas de consulter mon petit résumé en pdf :
http://forum.system-cfg.com/download/file.php?id=1730

Peut être n'est il pas facilement trouvable sur le forum :(


Cette partie concerne les caractères redéfinis :

Code : Tout sélectionner

DOR: en mode 40 colonnes

Code: 
    BITS: 7 6 5 4 3 2 1 0
          a b b b c c c c

a = numéro du bloc des caractères quadrichrome Q0 => emplacement dans la VRAM ou sont stockés les caractères redéfinis en mode quadrichrome.
bbb = numéro du bloc des caractères semi-graphiques G10' et G11' => emplacement dans la VRAM ou sont stockés les caractères redéfinis en mode semi-graphiques.
cccc = numéro du bloc des caractères alphanumériques G0' => emplacement dans la VRAM ou sont stockés les caractères redéfinis en mode alphanumériques
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer »

merci 6502man, c'est bien utile, car je peux dire que des éclaircissements j'en ai bien besoin ! :D
Je ne suis qu'un utilisateur pas un pro
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer »

Je ne sais pas si j'ai compris mais j'ai fais ce petit exercice pour afficher un caractère redéfini en mode bichrome mais ça ne s'affiche pas. Pouvez vous m’éclaircir svp ?

Y a t'il un ordre pour initialiser le L'EF9345 ?

Comment choisit-on le caractère redéfini ?

Code : Tout sélectionner

****   initialisation de l'EF9345 mode bichrome + retour BASIC ****
7000           NOP
7001           LD       (700E),HL
7004           LD        HL,7011
7007            CALL   02EF
700D           RET
**** debut données tampon EF9345 ****
7011  80                    longueur du tampon
7012  20                     IND R0
7013  87                     ROR
7014 29                      EXEC
7015  08                      YOR 8
7016  20                     
7017  81                    TGS
7018 29
7019  00                     40 COLONNES
701A  20
701B  83                  PAT
701C  29
701D  67
701E   20
701E   82                MAT
701F   29
7020   0E                COULEUR MARGE
7021   20
7022   84                DOR
7023   29
7024   13             
7025   21     R1  
7026  41     donnée  R1 n° de caractere chr$(65)
7027  22       R2
7028   81      donnée R2 redefini,  G'0, incustation normal
7029  23       R3
702A  67       donnée R3 couleur de caractere
702B   26       R6
702C   8          donnée   R3  ligne
702D   27        R7
702E    27       donnée R7 colonne
702F   28     EXEC
7030  00  donnée execution
                                            ****  definition du caractere ****      
7031    20    R0
7032    34
7033   21      R1
7034   FF
7035    24      R4
7036    3F
7037    25      R5
7038    41
7039    28    EXEC
703A  00
703B  20      R0
703C   34
703D  21      R1
703E   00
703F    24    R4
7040    3F
7041    25    R5
7042    45
7043    28    EXEC
7044   00
7045  20      R0
7046   34
7047   21    R1
7048    FF
7049   24    R4
704A   3F
704B   25   R5
704C   49
704D  28    EXEC
704E  00
704F  20    R0
7050   34
7051   21    R1
7052   00
7053   24   R4
7054  3F
7055   25   R5
7056  4D
7057  28   EXEC
7058   00
7059   20    R0
705A   34
705B   21  R1
705C   FF
705D   24  R4
705E   3F
705F  25   R5
7060  51
7061 28  EXEC
7062  00
7063 20  R0
7064  34
7065  21  R1
7066  00
7067 24   R4
7068  3F
7069   25  R5
706A  55
706B  28  EXEC
706C  00
706D 20  R0
706E  34
706F  21  R1
7070  FF
7071 24  R4
7072  3F
7073  25  R5
7074  59
7075  28 EXEC
7076  00
7077 20  R0
7078  34
7079   21  R1
707A   00
707B   24   R4
707C   3F
707D  25   R5
707E   5D
707F  28  EXEC
7080  00
7081   20   R0
7082  34
7083  21  R1
7084 FF
7085  24  R4
7086  3F
7087  25  R5
7088  61
7089 28  EXEC
708A  00
708B  20  R0
708C  34
708D  21   R1
708E  00
708F  24  R4
7090  3F
7091  25  R5
7092  65
7093  28  EXEC
7094  00

Je ne suis qu'un utilisateur pas un pro
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Incompéhension EF9345

Message par 6502man »

Pour choisir le caractère redefini il suffit de mettre le bit7 à 1 de R2 et de bien indiqué la position du caractère et le numéro de tampon dans R1 !

L'ordre d'initialisation je ne sait plus mais je pense pas que c'est de l'importance, il faut juste bien demander l’exécution de la commande et peut être attendre quelle soit exécuter par l'EF9345 ???

Si je prend ton exemple et que je vérifie sur mon PDF récapitulatif:

Code : Tout sélectionner

7025   21     R1  
7026  41     donnée  R1 n° de caractere chr$(65)
7027  22       R2
7028   81      donnée R2 redefini,  G'0, incustation normal
41 pour R1 ca donne : 16 (10h) pour le numéro de tampon, 01 pour le numéro de caractère dans le tampon.
81 pour R2 ca donne: caractère redefini, G'0, le reste en normal.

Par contre tu devrais redéfinir le caractère dans la VRAM du EF9345, avant de l'afficher, ca me parait plus naturel :roll:
Après je connais absolument pas le VG5000 :(
Peut être ne pas faire un retour au BASIC mais une boucle sans fin pour être sur que les pointeurs du EF9345 ne soit pas écrasé par le BASIC (supposition je ne sait pas trop comment travail le BASIC du VG5000) ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Répondre