Page 5 sur 8

Re: Incompéhension EF9345

Posté : 26 mars 2017 00:12
par rendomizer
Oui joaopa ! c'est tout a fait ce que je cherche a faire !

Re: Incompéhension EF9345

Posté : 26 mars 2017 04:46
par joaopa
Un exemple de code. On pourrait encore optimiser, mais on perdrait en clarté. Pour un début, c'est suffisant

Code : Tout sélectionner

              .org $7000
              .write "random.bin"
              

          ld bc,$5100-$4A0A
          ld de,$4A0A
_boucle:
          ld hl,_motif
          ldi
          ldi
          ld a,b
          or c
          jr nz,_boucle
          
  
_debut:            ;--------------construit setet--------------------
          ld hl,_ef9345 ;initialisation de l'EF93 à ne faire qu'une fois
          call $00AD
          ld hl,$4A0A
          ld a,31
_boucle2:                             
          inc a
          jr z,_suite           ;---------------dernier caractere----------------
          cp 128
          jr nz,_carac_non_gr:
          set 6,a
_carac_non_gr:          
          push af
          call $001B ; routine $1B incremente HL de 10
          pop af
          jr _boucle2

_suite:
          ld a,31
_boucle3:        ;---------------------affichage à l'écran -----------------------
          call $00A4
          ld hl,_sequence_caractere
          call $00AD
          ld hl,_caratere
          inc (hl)
          jr z,_fin
          ld a,(_cursorx)
          inc a
          ld (_cursorx),a
          cp 39
          jp z,_resetcursorx
          jr _boucle3
_suitey:         
          ld a,(_cursory)
          inc a
          ld (_cursory),a         
          jr _boucle3
_resetcursorx:
          xor a
          ld (_cursorx),a
          jr _suitey
_fin:     
          jr _fin


_ef9345:
        .db $10,$20,$81,$29,$00,$20,$82,$29,$00,$20,$83,$29,$67,$20,$84,$29,$13
_sequence_caractere:
        .db $0C, $21               
_caratere:       
        .db $20,$22,$D8,$23,$5A,$26
_cursory:       
        .db $08,$27
_cursorx:       
        .db $00,$28,$00
_motif:        
        .db $00,$ff

Re: Incompéhension EF9345

Posté : 26 mars 2017 08:44
par rendomizer
Un grand merci joaopa. C'est du jedi encore pour moi mais je vais essayer de comprendre... :mrgreen:

je buche sur 1 points:

A quoi sert : .write "random.bin" et comment le rendre compatible avec l'éditeur http://clrhome.org/asm/ ?

Re: Incompéhension EF9345

Posté : 26 mars 2017 08:47
par __sam__
rendomizer a écrit :A quoi sert : .write "random.bin" et comment le rendre compatible avec l'éditeur http://clrhome.org/asm/ ?
J'y connais rien, mais mon intuition me dit que ca sert à définr le nom du binaire produit par l'assembleur. Tu peux remplacer ca par l'équivalent pour ton assembleur.

Re: Incompéhension EF9345

Posté : 26 mars 2017 09:59
par rendomizer
Il y a cependant une erreur à: _sequence_caractere: .db $0c, $21 puisqu'il y a 14 et non 12 octets dans la sequence !

donc on devrait avoir: _sequence_caractere: .db $0e, $21

mais je me dit que tu l'as fait volontairement pour que je cherche un peu ... non ?

Re: Incompéhension EF9345

Posté : 26 mars 2017 11:57
par joaopa
La routine $AD est

Code : Tout sélectionner

02ef 46        ld      b,(hl)        longueur de la sequence       
02f0 23        inc     hl
02f1 cd8602    call    0286h <---    attente EF9345 pret
02f4 0e8f      ld      c,8fh     |
02f6 eda3      outi              |   adresse
02f8 0ecf      ld      c,0cfh    |   
02fa eda3      outi              |   données
02fc 20f3      jr      nz,02f1h -
02fe c9        ret   
Donc il faut compter exactement le nombre de commandes à envoyer à l'EF9345. Dans mon code, je lis 12, soit $0C

Re: Incompéhension EF9345

Posté : 26 mars 2017 12:31
par rendomizer
Effectivement il y en a 12 dans ton code mais tu as oublié les deux octets de finalisation de la sequence joaopa ! ($28,$00)

Re: Incompéhension EF9345

Posté : 26 mars 2017 19:08
par joaopa
Quels octets $28 et $0 ?

Re: Incompéhension EF9345

Posté : 27 mars 2017 08:08
par rendomizer
C'était la fin de _sequence_caractere: dans ton 1er jet mais tu l' as corrigé depuis j'avais pas vue loool. Il manquait $28 du (Registre R0 + 8 pour l’exécution) et $00 dit à l'ef9345 d'exécuter les commandes qu'on a définies plus tôt !

Re: Incompéhension EF9345

Posté : 27 mars 2017 11:55
par rendomizer
Excuse joaopa je me suis planté tu n'as pas fait d'erreur.

Re: Incompéhension EF9345

Posté : 27 mars 2017 15:15
par Papy.G
Il me semble que l'on peut mettre le bit d'exécution au remplissage du dernier registre, ainsi, on gagne du temps processeur. 8)
Par ailleurs, l'envoi de 00 en R0, c'est l'instruction KRF sans incrémentation, pas une supposée demande d'exécution de commande. :wink:

Re: Incompéhension EF9345

Posté : 28 mars 2017 14:34
par rendomizer
merci pour les précisions Papy G et a joapa qui m'a bien éclaircie :D !

Re: Incompéhension EF9345

Posté : 10 avr. 2017 21:48
par rendomizer
il 'y a pas le même nombre de setet que de seteg en changent r2 $d8 en $c8...Au total j'en compte 168 comment acceder au 8x100 caracteres ?

Re: Incompéhension EF9345

Posté : 10 avr. 2017 22:13
par Papy.G
Tu n'as que 8ko sur le VG5000, comme une page prend trois blocs (de 1ko), quand tu veux les attributs permettant d'afficher les sets Q, il ne te reste que maximum cinq blocs pour les caractères Quadrichromes. De façon régulière et sans ruse, mais contentons-nous de cela pour l'instant. :wink:

Re: Incompéhension EF9345

Posté : 11 avr. 2017 18:06
par rendomizer
merci Papy G. Mais j'ai vraiment besoins d'aller plus loin pour mon projet de space invader version VG5000...merci pour votre aide, cela ma bien servi et je sais que vous avez les connaissances nécessaires au développement sur l'ef9345. Jaopa aussi un grand merci pour ta patience car je reconnais que je t'ai donné du fil a retordre avec mes codes a deux balles mais je vais progresser...