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

Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

Message par rendomizer »

Oui joaopa ! c'est tout a fait ce que je cherche a faire !
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 »

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

Re: Incompéhension EF9345

Message 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/ ?
Je ne suis qu'un utilisateur pas un pro
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Incompéhension EF9345

Message 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.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

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

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

Re: Incompéhension EF9345

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

Quels octets $28 et $0 ?
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: Incompéhension EF9345

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

Excuse joaopa je me suis planté tu n'as pas fait d'erreur.
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 »

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

Re: Incompéhension EF9345

Message par rendomizer »

merci pour les précisions Papy G et a joapa qui m'a bien éclaircie :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 »

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

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

Re: Incompéhension EF9345

Message 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...
Je ne suis qu'un utilisateur pas un pro
Répondre