Incompéhension EF9345
Modérateurs : Papy.G, fneck, Carl
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Incompéhension EF9345
merci 6502man. J'étais resté sur 41 pour R1 car je pensais qu'il donnais le code caractere soit un "A" !
Je vais mettre de l'ordre je pense que ça peut avoir des consequences... Sinon, j'arrive pas a comprendre le tampon et le numero de caractere dans le tampon dans R1 c'est sur 2 bit du poids faible !
Je vais mettre de l'ordre je pense que ça peut avoir des consequences... Sinon, j'arrive pas a comprendre le tampon et le numero de caractere dans le tampon dans R1 c'est sur 2 bit du poids faible !
Je ne suis qu'un utilisateur pas un pro
Re: Incompéhension EF9345
C'est pas évident au début, mais après quelques programmes ca seras simple
Prend le temps de bien relire mon PDF :EF9345
Prend le temps de bien relire mon PDF :EF9345
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Incompéhension EF9345
Ok, les caractères sont groupés par 4 dans le tampon que l'on sélectionne de entre 0 puis 8------->31 x 4 numéro de caractère = 128 !
Je ne suis qu'un utilisateur pas un pro
Re: Incompéhension EF9345
Par contre il faut bien faire attention quand tu redéfinis un caractère à bien préciser le numéro de bloc qui doit correspondre avec celui défini dans DOR
DOR bit 3 à 0 (DCBA) = numéro de bloc ou sont stockés les caractères redéfinis
puis pour la redéfinition de caractère :
R4 -> bit 5 = A
R5 -> bit 7 et 6 = CB
D inutilisé sur ALICE et de même sur VG5000 il me semble.
Je ne sais pas si j'ai été clair dans mon explication
DOR bit 3 à 0 (DCBA) = numéro de bloc ou sont stockés les caractères redéfinis
puis pour la redéfinition de caractère :
R4 -> bit 5 = A
R5 -> bit 7 et 6 = CB
D inutilisé sur ALICE et de même sur VG5000 il me semble.
Je ne sais pas si j'ai été clair dans mon explication
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Incompéhension EF9345
moi je pense qu'un petit exemple serait un plus car je buche pas mal encore. par exemple si on veux redéfinir un caractère numéro 4 bloc 2 quel serait le contenu de DOR ? R1=$13 ? R4=$24 ? r5=numero de tranche +$3 ?
Je ne suis qu'un utilisateur pas un pro
Re: Incompéhension EF9345
Il faut bien comprendre que DOR est utilisé pour configurer les blocs réservé aux caractères redéfinis, mais il faut tenir compte aussi des bloc occupés par l'affichage de l'écran et des attributs géré par ROR
Donc en faite ROR te permet de définir les BLOCS réservé pour l'affichage de l'écran, par simplicité tu part sur les premiers blocs 0,1,2 réservé pour l'affichage, les attributs et les couleurs donc on est bien en bloc pair (0)
Ensuite pour DOR tu prend le bloc 3 pour le G'0
Il ne faut pas mélanger les BLOCS réservés pour l’affichage et ceux réservé pour la redéfinition des caractères sinon ca fonctionne pas et tu auras un résultat inattendu et imprévisible
Donc en faite ROR te permet de définir les BLOCS réservé pour l'affichage de l'écran, par simplicité tu part sur les premiers blocs 0,1,2 réservé pour l'affichage, les attributs et les couleurs donc on est bien en bloc pair (0)
Ensuite pour DOR tu prend le bloc 3 pour le G'0
Il ne faut pas mélanger les BLOCS réservés pour l’affichage et ceux réservé pour la redéfinition des caractères sinon ca fonctionne pas et tu auras un résultat inattendu et imprévisible
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Incompéhension EF9345
Je n'y arrive pas, il me faudrait un exemple pour vg5000µ avec la routine tampon siouplais ...
Je ne suis qu'un utilisateur pas un pro
Re: Incompéhension EF9345
Tu arrives à afficher des caractères standards (non redéfinis) ?
Si oui, peut-on voir le source en mnémonique Z80 ou Hexa (format texte ASCII) ?
En partant de cette base je vais essayer de t'aider ...
Si oui, peut-on voir le source en mnémonique Z80 ou Hexa (format texte ASCII) ?
En partant de cette base je vais essayer de t'aider ...
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Incompéhension EF9345
Oui 6502man j'ai ça c'est tout ce que j'ai pu faire ! le systeme de routine tampon c'est le plus simple.
Code : Tout sélectionner
0 SETET 65,"186F6DB4D1471E79F924"
10 CLEAR 200:A=&"7000"
20 REM MACHINE CODE
21 P$="220E70211470CDEF02C3007000000000000000"
22 P$=P$+"202081412820820E28208367282084132820870828"
23 P$=P$+"214122C1231326002727280000"
30 REM EXE BASIC
31 FORI=1TOLEN(P$)STEP2
32 POKEA,N:A=A+1
90 REM HEX TO DEC
91 N1=ASC(MID$(P$,I,1))-48
92 IF N1>9 THEN N1=N1-7
93 N2=ASC(MID$(P$,I+1,1))-48
94 IF N2>9 THEN N2=N2-7
95 N=16*N1+N2
96 NEXT I
99 CALL&"7000"
- Pièces jointes
-
- setet.rar
- (72 octets) Téléchargé 126 fois
Dernière modification par rendomizer le 24 août 2016 19:45, modifié 1 fois.
Je ne suis qu'un utilisateur pas un pro
Re: Incompéhension EF9345
Entre le code en hexa et un fichier joint qui fait 0 octet, on peut dire que tu ne fais aucun effort pour que l'on t'aide
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Incompéhension EF9345
bah ! il n'y a que ça en asm... le reste c'est du pure code pour l'EF9345 Joaopa ! si joint la nouvelle k7 que j'ai cette fois ci.
- Pièces jointes
-
- new setet save.rar
- (431 octets) Téléchargé 129 fois
Dernière modification par rendomizer le 23 août 2016 23:22, modifié 2 fois.
Je ne suis qu'un utilisateur pas un pro
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Incompéhension EF9345
Sinon la ou je coince c'est avec les fonctions krf,krv,oct... Je ne sais pas comment elles fonctionnent dans la sequence et leurs validations dans la routine qui charge tous ces codes !
Je ne suis qu'un utilisateur pas un pro
- Papy.G
- Modérateur
- Messages : 3051
- Inscription : 10 juin 2014 13:40
- Localisation : Haute-Garonne/Gers
Re: Incompéhension EF9345
Tout est décrit dans le datasheet, à la fin "microprocessor access commands", une des rares sections à être assez concise dans ce livret, notamment le tableau récapitulatif des commandes.
Par contre, il est déconseillé d'utiliser KRV, car l'instruction est lente, et tu te compliques le mappage mémoire, tu n'en es pas encore à avoir besoin du moindre bloc mémoire libre.
Si tu sais afficher un caractère, tu dois savoir utiliser KRF, sinon, il est temps de t'affranchir de la routine de la rom.
Pour KRF, charger en R6 et R7 les pointeurs principaux, puis C en R1, B en R2, A en R3, en dernier, tu envoies un octet formé comme inscrit dans le tableau "command" vers R0 avec le bit d'exécution (XQR) à 1.
Imprimes le datasheet en livret A5 et gardes-le sous le coude. :p
Par contre, il est déconseillé d'utiliser KRV, car l'instruction est lente, et tu te compliques le mappage mémoire, tu n'en es pas encore à avoir besoin du moindre bloc mémoire libre.
Si tu sais afficher un caractère, tu dois savoir utiliser KRF, sinon, il est temps de t'affranchir de la routine de la rom.
Pour KRF, charger en R6 et R7 les pointeurs principaux, puis C en R1, B en R2, A en R3, en dernier, tu envoies un octet formé comme inscrit dans le tableau "command" vers R0 avec le bit d'exécution (XQR) à 1.
Imprimes le datasheet en livret A5 et gardes-le sous le coude. :p
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Demandez-en plus, ou faites-le vous-même.
Re: Incompéhension EF9345
Tu peux me dire à quoi sert l'instruction LD (700EH),HL à l'adresse 7001H ? On n'atteint jamais l'adresse 700EH avec ton code.
Pour l'EF9345, tu n'as toujours pas compris les bases de son fonctionnement. Si cela est trop difficile pour toi, contente-toi de faire des caractères bichromes en Basic. Tu n'auras pas besoin d'initialiser l'EF9345. Même ça, tu ne sais pas le faire.
Le premier principe est d'initialiser l'EF9345 (TGS,PAT,MAT,DOR et ROR si tu veux des changements de pages, mais tu es bien loin de ça)
Va voir le code que j'ai mis ici http://forum.system-cfg.com/viewtopic.p ... 75#p120550
En plus, tu n'as pas désactivé les interruptions (instruction DI). Autrement dit, à intervalle régulier, le Z80 envoie le contenu de la mémoire situé entre 4000H et 47D0H à l'EF9345.
Pour l'EF9345, tu n'as toujours pas compris les bases de son fonctionnement. Si cela est trop difficile pour toi, contente-toi de faire des caractères bichromes en Basic. Tu n'auras pas besoin d'initialiser l'EF9345. Même ça, tu ne sais pas le faire.
Le premier principe est d'initialiser l'EF9345 (TGS,PAT,MAT,DOR et ROR si tu veux des changements de pages, mais tu es bien loin de ça)
Va voir le code que j'ai mis ici http://forum.system-cfg.com/viewtopic.p ... 75#p120550
En plus, tu n'as pas désactivé les interruptions (instruction DI). Autrement dit, à intervalle régulier, le Z80 envoie le contenu de la mémoire situé entre 4000H et 47D0H à l'EF9345.
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Incompéhension EF9345
N'oublies pas que je débute en asm Z80 joaopa ! merci pour tout. je vais tenter de comprendre ton script ...
Je ne suis qu'un utilisateur pas un pro