Incompéhension EF9345

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
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer »

merci 6502man. J'étais resté sur 41 pour R1 car je pensais qu'il donnais le code caractere soit un "A" ! :mrgreen:
Je vais mettre de l'ordre je pense que ça peut avoir des consequences... :lol: 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
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Incompéhension EF9345

Message par 6502man »

C'est pas évident au début, mais après quelques programmes ca seras simple :wink:

Prend le temps de bien relire mon PDF :EF9345
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 »

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
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Incompéhension EF9345

Message par 6502man »

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 :roll:

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 :roll:
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 »

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
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: Incompéhension EF9345

Message par 6502man »

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 :roll:

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 :wink:
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 »

Je n'y arrive pas, il me faudrait un exemple pour vg5000µ avec la routine tampon siouplais ... :oops:
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 »

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 ...
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 »

Oui 6502man j'ai ça c'est tout ce que j'ai pu faire ! :mrgreen: 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
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Incompéhension EF9345

Message par joaopa »

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
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer »

Image

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
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer »

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 ! :roll:
Je ne suis qu'un utilisateur pas un pro
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 »

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
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 »

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.
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer »

N'oublies pas que je débute en asm Z80 joaopa ! merci pour tout. :cry: je vais tenter de comprendre ton script ...
Je ne suis qu'un utilisateur pas un pro
Répondre