Index du forum




Un petit coup de main... Vous pouvez nous aider à mettre ce site à jour: n'hésitez pas à me contacter !!!

* Connexion   * Inscription

* FAQ
Nous sommes actuellement le 29 Nov 2025, 16:08

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


design patterns

Modérateur: poulette73



Publier un nouveau sujet Répondre au sujet  Page 3 sur 4
 [ 58 message(s) ]  Aller vers la page Précédent  1, 2, 3, 4  Suivant
  Aperçu avant impression Sujet précédent | Sujet suivant 
Auteur Message
TOUKO
 Sujet du message : Re: design patterns
Message Publié : 15 Juil 2010, 20:26 
Hors-ligne
Rulezz
Rulezz
Avatar de l’utilisateur

Inscription : 12 Juil 2010, 13:36
Message(s) : 169
Excellent merci pour les infos, et le code :goodpost:


Haut
 Profil  
 
Demoniak
 Sujet du message : Re: design patterns
Message Publié : 03 Août 2010, 11:50 
Hors-ligne
VIP
VIP

Inscription : 15 Oct 2009, 18:07
Message(s) : 236
Localisation : Dunkerque
Une petite astuce, il y avait longtemps :D

Code :
SUB xx
NEG

peut être remplacé par
Code :
SUB xx+1
CPL


Biensur à condition que xx soit compris entre 1 et 126 :)

_________________
http://demoniak-contrib.forumactif.com/


Haut
 Profil  
 
norecess
 Sujet du message : Re: design patterns
Message Publié : 03 Août 2010, 18:17 
@demoniak quel est l'avantage? de visu ca semble prendre le meme temps machine.


Haut
  
 
Demoniak
 Sujet du message : Re: design patterns
Message Publié : 03 Août 2010, 18:52 
Hors-ligne
VIP
VIP

Inscription : 15 Oct 2009, 18:07
Message(s) : 236
Localisation : Dunkerque
Le neg prends 2 opcodes (#ED #44) et dure 2 nops, alors que le cpl ne prends qu'un opcode (#2F) et un nop.

_________________
http://demoniak-contrib.forumactif.com/


Haut
 Profil  
 
norecess
 Sujet du message : Re: design patterns
Message Publié : 03 Août 2010, 20:42 
Ah ! Puisqu'on y est ! J'ai un "pattern" assez degueu en ce moment dans mon code, pour switcher 2 valeurs d'une frame a l'autre :

Code :
   ld a, (IsFlipped)
   or a
   jp z, setBitplan2
   ld hl, ( stackBitplan1 )
   jp endSetBitplan
setBitplan2:
   ld hl, (stackBitplan2 )
endSetBitplan:
   ld ( bitplanStack_Start + 1 ), hl


Comment tu ferais pour rendre le truc plus.... elegant ?


Haut
  
 
norecess
 Sujet du message : Re: design patterns
Message Publié : 03 Août 2010, 20:45 
PS. Les LD HL, (NN) pourrait etre remplaces par des LD HL, NN


Haut
  
 
norecess
 Sujet du message : Re: design patterns
Message Publié : 03 Août 2010, 23:53 
apres reflexion, il y aurait bien un truc du genre .. (j'ecris de tete)
Code :
sla a
ld b, 0
ld c, a
ld hl, table
add hl, bc
ld a, (hl)
inc hl
ld h, (hl)
ld l, a
...
table:
 dw ptr1
 dw ptr2


Un meilleur pattern que ca ?


Haut
  
 
AsT
 Sujet du message : Re: design patterns
Message Publié : 04 Août 2010, 00:39 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 29 Août 2007, 08:04
Message(s) : 751
Localisation : Impact Hq
Si tu mets ta table à une adresse du type : #2000 par exemple, un simple

inc l suffit au lieu d'un inc hl... Par contre, ta table ne pourras contenir que 128 adresses différentes, ce qui n'est déjà pas si mal, non ?

Ah oui, dernière chose, utilise plutot add a,a (qui prends 1 nop) que sla a (qui prends 2 nops).

J'aurais plutôt écrit :

Code :



add a,a
ld h,#20    ; hl=20xx
ld l,a
ld e,(hl)     ; récupère poids faible
inc l
ld d,(hl)     ; et ici poids fort / de=adresse de la table
....

org #2000
table
defw adr1
defw adr2



9 Nops contre 17... ça devrait aller maintenant !
Si tu préfères avoir dans hl à la place de de un simple ex de,hl (1 nop) fera l'affaire.

_________________
AsT / iMP4CT

Retrouvez nous sur le forum Amstrad Plus
"Call &bb06"


Haut
 Profil  
 
AsT
 Sujet du message : Re: design patterns
Message Publié : 04 Août 2010, 00:54 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 29 Août 2007, 08:04
Message(s) : 751
Localisation : Impact Hq
On peut faire encore plus rapide, je pensais à :

Code :

add a,a  ; 1 nop
ld h,#20  ; 2 nops
ld l,a       ; 1 nop
jp (hl)     ; 1 nop

org #2000
defw adresse1
defw adresse2
....



ce qui nous fait 5 nops... le compte est bon ! ^^

_________________
AsT / iMP4CT

Retrouvez nous sur le forum Amstrad Plus
"Call &bb06"


Haut
 Profil  
 
norecess
 Sujet du message : Re: design patterns
Message Publié : 04 Août 2010, 00:59 
Bien vu pour ADD A,A vs. SLA A !
Pour le coup de la table en &256, un peu inutile pour le peu de fois que c'est utilise dans une frame.


Haut
  
 
AsT
 Sujet du message : Re: design patterns
Message Publié : 04 Août 2010, 01:00 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 29 Août 2007, 08:04
Message(s) : 751
Localisation : Impact Hq
Le meilleur exemple reste le 2ème à mon avis...

Concernant la table de 256 octets, tu n'es pas obligé d'utiliser les 256 octets... mais ça te permet de gagner 1 nop grace à inc l au lieu de inc hl.
^^

_________________
AsT / iMP4CT

Retrouvez nous sur le forum Amstrad Plus
"Call &bb06"


Haut
 Profil  
 
markerror
 Sujet du message : Re: design patterns
Message Publié : 04 Août 2010, 07:07 
Hors-ligne
VIP
VIP

Inscription : 04 Sep 2007, 19:43
Message(s) : 739
Bonjour,

Tu peux aussi te débrouiller pour que la valeur du registre A représente directement celle à mettre dans L (si ta table est en &2000, ça fera &00 ou &02). Bon, après, si tu dois décaler ton code, ça te fera une belle petite migraine pour retrouver ce =@# bug si tu n'as pas commenté ton source :-) ).
Mais au final, un NOP de gagné.

T&J/GPA


Haut
 Profil  
 
AsT
 Sujet du message : Re: design patterns
Message Publié : 04 Août 2010, 22:05 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 29 Août 2007, 08:04
Message(s) : 751
Localisation : Impact Hq
bien vue herve... ca fait encore 1 nop de gagne...

_________________
AsT / iMP4CT

Retrouvez nous sur le forum Amstrad Plus
"Call &bb06"


Haut
 Profil  
 
norecess
 Sujet du message : Re: design patterns
Message Publié : 05 Août 2010, 00:39 
Vous etes des tarés. Et on vous aime pour ca :P


Haut
  
 
AsT
 Sujet du message : Re: design patterns
Message Publié : 05 Août 2010, 07:27 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 29 Août 2007, 08:04
Message(s) : 751
Localisation : Impact Hq
@NoRecess : Pourquoi ? Tu trouves que 4 nops ça fait trop ?

_________________
AsT / iMP4CT

Retrouvez nous sur le forum Amstrad Plus
"Call &bb06"


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  Page 3 sur 4
 [ 58 message(s) ]  Aller vers la page Précédent  1, 2, 3, 4  Suivant

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 36 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Aller vers :  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduit en français par Maël Soucaze.