CPC Rulez
https://cpcrulez.fr/forum/

design patterns
https://cpcrulez.fr/forum/viewtopic.php?f=4&t=4252
Page 3 sur 4

Auteur :  TOUKO [ 15 Juil 2010, 20:26 ]
Sujet du message :  Re: design patterns

Excellent merci pour les infos, et le code :goodpost:

Auteur :  Demoniak [ 03 Août 2010, 11:50 ]
Sujet du message :  Re: design patterns

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

Auteur :  norecess [ 03 Août 2010, 18:17 ]
Sujet du message :  Re: design patterns

@demoniak quel est l'avantage? de visu ca semble prendre le meme temps machine.

Auteur :  Demoniak [ 03 Août 2010, 18:52 ]
Sujet du message :  Re: design patterns

Le neg prends 2 opcodes (#ED #44) et dure 2 nops, alors que le cpl ne prends qu'un opcode (#2F) et un nop.

Auteur :  norecess [ 03 Août 2010, 20:42 ]
Sujet du message :  Re: design patterns

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 ?

Auteur :  norecess [ 03 Août 2010, 20:45 ]
Sujet du message :  Re: design patterns

PS. Les LD HL, (NN) pourrait etre remplaces par des LD HL, NN

Auteur :  norecess [ 03 Août 2010, 23:53 ]
Sujet du message :  Re: design patterns

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 ?

Auteur :  AsT [ 04 Août 2010, 00:39 ]
Sujet du message :  Re: design patterns

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.

Auteur :  AsT [ 04 Août 2010, 00:54 ]
Sujet du message :  Re: design patterns

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 ! ^^

Auteur :  norecess [ 04 Août 2010, 00:59 ]
Sujet du message :  Re: design patterns

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.

Auteur :  AsT [ 04 Août 2010, 01:00 ]
Sujet du message :  Re: design patterns

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

Auteur :  markerror [ 04 Août 2010, 07:07 ]
Sujet du message :  Re: design patterns

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

Auteur :  AsT [ 04 Août 2010, 22:05 ]
Sujet du message :  Re: design patterns

bien vue herve... ca fait encore 1 nop de gagne...

Auteur :  norecess [ 05 Août 2010, 00:39 ]
Sujet du message :  Re: design patterns

Vous etes des tarés. Et on vous aime pour ca :P

Auteur :  AsT [ 05 Août 2010, 07:27 ]
Sujet du message :  Re: design patterns

@NoRecess : Pourquoi ? Tu trouves que 4 nops ça fait trop ?

Page 3 sur 4 Le fuseau horaire est UTC+1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/