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 : Carl, Papy.G, fneck

Avatar du membre
rendomizer
Messages : 224
Enregistré le : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer » 26 mars 2017 00:12

Oui joaopa ! c'est tout a fait ce que je cherche a faire !
le mot de passe c'est quoi ? quoi.

joaopa
Messages : 400
Enregistré le : 14 sept. 2013 12:17

Re: Incompéhension EF9345

Message par joaopa » 26 mars 2017 04:46

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

Avatar du membre
rendomizer
Messages : 224
Enregistré le : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer » 26 mars 2017 08:44

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/ ?
le mot de passe c'est quoi ? quoi.

__sam__
Messages : 4121
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Incompéhension EF9345

Message par __sam__ » 26 mars 2017 08:47

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.
Samuel.
A500 Vampire V2+, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8. New Teo 1.8.4 8)

Avatar du membre
rendomizer
Messages : 224
Enregistré le : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer » 26 mars 2017 09:59

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 ?
le mot de passe c'est quoi ? quoi.

joaopa
Messages : 400
Enregistré le : 14 sept. 2013 12:17

Re: Incompéhension EF9345

Message par joaopa » 26 mars 2017 11:57

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

Avatar du membre
rendomizer
Messages : 224
Enregistré le : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer » 26 mars 2017 12:31

Effectivement il y en a 12 dans ton code mais tu as oublié les deux octets de finalisation de la sequence joaopa ! ($28,$00)
le mot de passe c'est quoi ? quoi.

joaopa
Messages : 400
Enregistré le : 14 sept. 2013 12:17

Re: Incompéhension EF9345

Message par joaopa » 26 mars 2017 19:08

Quels octets $28 et $0 ?

Avatar du membre
rendomizer
Messages : 224
Enregistré le : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer » 27 mars 2017 08:08

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 !
le mot de passe c'est quoi ? quoi.

Avatar du membre
rendomizer
Messages : 224
Enregistré le : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer » 27 mars 2017 11:55

Excuse joaopa je me suis planté tu n'as pas fait d'erreur.
le mot de passe c'est quoi ? quoi.

Avatar du membre
Papy.G
Modérateur
Messages : 1755
Enregistré le : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: Incompéhension EF9345

Message par Papy.G » 27 mars 2017 15:15

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:
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.

Avatar du membre
rendomizer
Messages : 224
Enregistré le : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer » 28 mars 2017 14:34

merci pour les précisions Papy G et a joapa qui m'a bien éclaircie :D !
le mot de passe c'est quoi ? quoi.

Avatar du membre
rendomizer
Messages : 224
Enregistré le : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer » 10 avr. 2017 21:48

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 ?
le mot de passe c'est quoi ? quoi.

Avatar du membre
Papy.G
Modérateur
Messages : 1755
Enregistré le : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: Incompéhension EF9345

Message par Papy.G » 10 avr. 2017 22:13

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:
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.

Avatar du membre
rendomizer
Messages : 224
Enregistré le : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer » 11 avr. 2017 18:06

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...
le mot de passe c'est quoi ? quoi.

Répondre