GAMOPAT
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Z80 Vs 6502, FIGHT !

+15
Fabf
philip
vingazole
nemokantio
fzu2801
chiss
Clinteeswoud
mic
65c02
dvallet
beeAware
youki
MacDeath
fanoplusplus64K
drfloyd
19 participants

Page 7 sur 8 Précédent  1, 2, 3, 4, 5, 6, 7, 8  Suivant

Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par youki Lun 8 Avr 2013 - 14:44

Le compte est bon!!!

Z80 Vs 6502, FIGHT ! - Page 7 2006_01_25_dcedl_1337

youki
Docteur *
Docteur *

Nombre de messages : 13276
Date d'inscription : 31/07/2009

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par Invité Lun 8 Avr 2013 - 14:47

LOL, ok merci pour l'info ..

PS: qu'il est con ce youki MDR
avatar
Invité
Invité


Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par vingazole Lun 8 Avr 2013 - 16:11

Déjà avec le 8086 je n'utilisais jamais le BCD, j'aime pô^^

Je me suis contenté d'un tableau de 8 octets codant chaque chiffre du score, du coup l'affichage à l'écran est trivial (mes tiles de chiffres sont stockées dans l'ordre à partir de $186):
Code:
aff_nombre:    ld c,$19    ; $19 (%00011001 : attribut opaque, 2eme palette, tile $1xx)
                ld b,8
 
      afn0:    ld a,(de)
                inc de

                add a,$86  ; $[1]86 : symbole '0'
                ld (hl),a
                inc hl
                ld (hl),c
                inc hl
 
                djnz afn0
                ret
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 04/01/2012

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par Invité Lun 8 Avr 2013 - 16:15

Et pourtant, en mode BCD c'est bcp plus rapide .

Code:

 ; // Le reg A contient la partie basse du score, et le reg X la partie haute
                        sed                        ; // Active le mode décimal
         clc         
         adc    _score               ; // Unites & dixaines
         sta    _score
         txa
         adc      _score + 1            ; // Centaine & milliers         
         sta    _score + 1
         cla    
         adc    _score + 2            ; // 10 aine de millier & 100 aine de millier
         sta    _score + 2
         cla    
         adc    _score + 3            ; // 10 aine de millier & 100 aine de millier
         sta    _score + 3
         cla    
         adc    _score + 4            ; // 10 aine de millier & 100 aine de millier
         sta    _score + 4
         cld                        ; // Désactive le mode décimal   

Soit 54 cycles,moins si utilisation de la zero page(44 cycles) pour un score sur 10 chiffres ..

Tu fais combien avec ta méthode à l'ancienne Mr. Green
avatar
Invité
Invité


Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par vingazole Lun 8 Avr 2013 - 16:27

Oui, je me doute que s'"ils" ont permis de faire du BCD c'est que c'est plus efficace !

Mais de toutes façons ce que tu gagnes sur l'addition tu dois le perdre sur l'affichage (masquage avec $0F pour avoir le chiffre des "unités" et 4 décalages pour avoir celui des "dizaines")...
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 04/01/2012

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par Invité Lun 8 Avr 2013 - 16:47

Effectivement, mais je suis sur que je reste gagnant au final, et surement de bcp .
Car avec ta boucle tu es obligé de gérer manuellement le compteur, et c'est assez gourmand en cycles .
avatar
Invité
Invité


Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par vingazole Lun 8 Avr 2013 - 16:56

Peut-être, je n'ai pas l'intention d'optimiser pour gagner quelques cycles sur des événements aussi sporadiques 😉
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 04/01/2012

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par Invité Lun 8 Avr 2013 - 17:23

C'est sur mais tu dis ça à chaque fois, bientôt tu n'auras plus assez de cycles pour faire tourner ton jeu Razz
avatar
Invité
Invité


Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par vingazole Lun 8 Avr 2013 - 17:32

ça c'est ma hantise, d'autant qu'il me reste encore un gros morceau à ajouter : la musique et les bruitages pale
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 04/01/2012

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par Invité Lun 8 Avr 2013 - 18:48

C'est pour ça que perso, j'essaye d'optimiser directement en créant la fonction, au moins c'est fait .
C'est vrai que souvent c'est tentant de dire "bon elle marche, j'optimiserai plus tard" ..
avatar
Invité
Invité


Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par fzu2801 Lun 8 Avr 2013 - 19:15

youki a écrit:Le compte est bon!!!

Z80 Vs 6502, FIGHT ! - Page 7 2006_01_25_dcedl_1337

Moi j'ai que 127 ...
avatar
fzu2801
Patient contaminé

Masculin Nombre de messages : 195
Age : 50
Date d'inscription : 27/05/2009

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par vingazole Lun 8 Avr 2013 - 19:20

TOUKO a écrit:C'est pour ça que perso, j'essaye d'optimiser directement en créant la fonction, au moins c'est fait .
C'est vrai que souvent c'est tentant de dire "bon elle marche, j'optimiserai plus tard" ..
Oui, moi aussi j'essaie d'optimiser au maximum "en écrivant", mais bon sur tout ce qui n'est pas dans la boucle principale in-game ou ce qui n'est pas critique à mes yeux je me relâche !

Par contre je m'efforce de bien réfléchir à mes structures de données pour être efficace et ne pas avoir à y revenir, d'autant que le z80 n'offre pas beaucoup de modes d'adressage (on a un adressage indexé à peine potable et pas grand chose au-delà), je crois que le 6502 est pareil de ce point de vue, non ?
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 04/01/2012

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par Invité Lun 8 Avr 2013 - 20:02

Y'a pas foule non plus, mais l'indexé fait partie des atouts du 6502 ..
avatar
Invité
Invité


Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par vingazole Lun 8 Avr 2013 - 20:15

Il me semble avoir lu que sur 6502 tu pouvais faire de l'indexé par rapport à un registre 16 bits, or X et Y sont bien des registres 8 bits !?
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 04/01/2012

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par 65c02 Mar 9 Avr 2013 - 5:49

tu peux faire adresse 16 bits + index 8 bits ou (adresse 16 bits) + index 8 bits
tu peux aussi faire adresse 8 bits + index 8 bits (c'est ça la page zéro qui va plus vite en accès)
avatar
65c02
Docteur *
Docteur *

Masculin Nombre de messages : 2238
Age : 53
Localisation : Paulhan
Date d'inscription : 23/05/2011

http://65c02.tumblr.com

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par Invité Ven 12 Avr 2013 - 7:41

J'ai toujours pas compris comment les mecs pouvaient pas aimer le 6502, franchement ces CPU sont d'une simplicité ... scratch

En comparaison quand tu regardes le tableau d'instructions du Z80, c'est limite encore plus incompréhensible que celui du 68000 .
avatar
Invité
Invité


Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par youki Ven 12 Avr 2013 - 7:59

Ouais, moi aussi... mais bon apparrment il y en qui aime bien la complexité, et aussi compliqué les trucs simple.... y'en a meme qui en on fait leur boulot... ya qu'a voir dans ma boite...Sad

Ils partent de principe que plus c'est compliqué plus ca a l'air intelligent.
youki
youki
Docteur *
Docteur *

Masculin Nombre de messages : 13276
Age : 52
Date d'inscription : 31/07/2009

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par 65c02 Ven 12 Avr 2013 - 8:05

Oui... :)
Et puis le nombre d'instructions d'un Z80...
C'est juste hallucinant.
Si tu regarde juste les opcodes documentés, entre ceux qui tiennent sur un octet, ceux qui commencent par $cb, $dd, $fd, $de, $ddcb, ou par $fdcb
Ca en fait un paquet d'instructions. Facile plus de 1000 (je n'ai même pas envie de compter :) )

Alors que même sur les derniers 6502 on ne dépasse pas les 256 instructions (illégal opcodes compris)

Et puis le timing des opcodes en Z80 c'est que du par coeur
sur 6502 c'est juste quelques règles logiques.

bref, le 6502 c'est hyper simple et fluide.
avatar
65c02
Docteur *
Docteur *

Masculin Nombre de messages : 2238
Age : 53
Localisation : Paulhan
Date d'inscription : 23/05/2011

http://65c02.tumblr.com

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par Invité Ven 12 Avr 2013 - 8:25

Oui c'est ça, sans être partisan de quoi que ce soit, sur 65xxx t'as un opcode -> tant de cycles, et basta ..

Sur z80 (ou 68000), tu as la force du vent, et l'age du capitaine à prendre aussi en compte lol ..
Après je pense qu'avoir 1000 opcodes doit rassurer, mais c'est hyper chiant a t'y retrouver .

Avant de m'y mettre à l'asm 65xxx, j'avais l'a priori de ce que pas mal de devs disaient sur ces CPU (en fait des habitués du Z80),
Et qu'il était complexe, que trop peu de registres etc ..

Je pense que si ton soucis est de faire un truc qui marche facilement, et que le nombre de cycles tu t'en fou, le z80 est peut être plus simple .

J'aime bien les explications là dedans : http://members.multimania.nl/rubynl/tuts/optimus/6510-z80.htm

Je pense qu'elles sont très explicite de la différence des 2 archis .
avatar
Invité
Invité


Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par 65c02 Ven 12 Avr 2013 - 9:03

Mais bon, si on a autant d'instructions sur Z80, c'est pour pouvoir grappiller des cycles de ci de à
Du genre : les instructions LDI et LDIR

Chacune de ces instructions prend le contenu pointé par HL pour le mettre à l'adresse pointé par DE et décrémente BC
Sauf que LDI le fait une fois et LDIR le fait jusqu'à ce que BC soit = 0 (une sorte de memcpy)
Et en regardant le nombre de cycle LDIR fait 5 cycles par itération (4 pour la dernière) et LDI en fait 4 cycles.
En gros, grâce à LDIR on a un JR NZ pour 1 cycle au lieu de 3.

Mais du coup, on a deux instructions qui ne sont pas utile de la même façon.

Si on veut faire un memcpy simple il vaut mieux un LDIR
Si on veut de la vitesse pure, il vaut mieux dérouler les LDI.

C'est sympa, c'est compact, c'est magique, ça demande de l'expérience, ça mérite un vrai salaire, c'est du Z80.

Alors que sur 6502 faut tout faire soit même

LDX nb_to_copy
loop
LDA (adRead),X
STA (adWrite),X
DEX
BNE loop

Et pis c'est tout (et encore la je ne copie pas plus de 256 octets, sinon faut faire une autre boucle par dessus)

(Oui, j'aime bien le Z80 aussi :) )
avatar
65c02
Docteur *
Docteur *

Masculin Nombre de messages : 2238
Age : 53
Localisation : Paulhan
Date d'inscription : 23/05/2011

http://65c02.tumblr.com

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par Invité Ven 12 Avr 2013 - 9:15

Je pense aussi que le z80 est un bon CPU, mais je le trouve juste plus complexe .

Tu viens surement de souligner un des manques des 65xx, CAD les transferts de blocs ..
Même si la méthode reste très simple, elle semble moins performante, mais pas de bcp (??)
avatar
Invité
Invité


Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par 65c02 Ven 12 Avr 2013 - 9:32

TOUKO a écrit:Même si la méthode reste très simple, elle semble moins performante, mais pas de bcp (??)
bah pour le coup, si
le Z80 fait en 4 cycles copie, changement des pointeurs et décrémenter le compteur
sur 6502 ça prend
4 cycles * 2 pour lire/écrire en page zéro ou 5 * 2 ailleurs
2 cycles pour décrémenter le compteur
3 cycles pour boucler

Ça fait déjà entre 12 et 15 cycles pour une copie de max 256 octets.
Après, y a surement des ruses de sioux en code auto-modifié pour aller plus vite.
Mais on quitte le code générique pour entrer dans le spécifique.

C'est un peu ça en fait la différence entre le 6502 et le z80.
Un code 6502 va très vite être dédié à sa tache.
On ne fait pas un copie de data en générale, on fait la copie du buffer bidule parce qu'on sait qu'il est de cette taille et qu'on a choisit exprès de le mettre à telle adresse pour utiliser une bidouille qui fait économiser quelques cycles sur ce coup là.

avatar
65c02
Docteur *
Docteur *

Masculin Nombre de messages : 2238
Age : 53
Localisation : Paulhan
Date d'inscription : 23/05/2011

http://65c02.tumblr.com

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par Invité Ven 12 Avr 2013 - 10:14

Ah oui quand même ...

Pour le code automodif, je suis pas sur que tu y gagnes .

Sinon tu as cette solution (je l'ai jamais utilisée)
Code:

Set T Flag (SET)

Function The T flag in the status register is set to 1. The T flag is called the "Memory Operation Flag;",
when this flag is set all the instructions that normally use the A register act differently,
 I don't know exactly if all the instructions are affected but I'm sure for AND, EOR, OR & ADC.
 In place of using the A register the instruction use the memory location in ZP pointed by the X register,
 so for example if you use SET followed by ADC #10, the CPU will do ZP[X] = ZP[X] + 10.

Adressing Modes & Opcodes Addressing Mode Syntax Opcode # of bytes # of cycles
Implied SET F4 1 2


Flags Affected N V T B D I Z C
- - 1 - - - - -
Et je sais pas si cette instruction existe sur un 6502 .

EDIT: non elle existe que sur le 6280 Confused
avatar
Invité
Invité


Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par vingazole Ven 12 Avr 2013 - 13:10

65c02 a écrit:le Z80 fait en 4 cycles copie, changement des pointeurs et décrémenter le compteur
Attention l'instruction LDI qui fait (DE)← (HL), DE DE + 1, HL HL + 1, BC BC - 1 prend effectivement 4 cycles machine, mais avec le z80 on compte plutôt les T-states (correspondant aux cycles d'horloge), et là ça nous fait 16 cycles !
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 04/01/2012

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par 65c02 Ven 12 Avr 2013 - 13:59

vingazole a écrit:
65c02 a écrit:le Z80 fait en 4 cycles copie, changement des pointeurs et décrémenter le compteur
Attention l'instruction LDI qui fait (DE)← (HL), DE DE + 1, HL HL + 1, BC BC - 1 prend effectivement 4 cycles machine, mais avec le z80 on compte plutôt les T-states (correspondant aux cycles d'horloge), et là ça nous fait 16 cycles !
oups, tu as raison ce n'est pas une bonne comparaison.
mea culpa.
Je me disais aussi. C'est un peu fort comme claque.
Remarque le T state aussi n'est pas suffisant pour être comparable, vu que les processeurs ont des fréquences différentes.
Pour bien faire faudrait tout passer en unité de temps en se basant sur la fréquence max.
avatar
65c02
Docteur *
Docteur *

Masculin Nombre de messages : 2238
Age : 53
Localisation : Paulhan
Date d'inscription : 23/05/2011

http://65c02.tumblr.com

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par youki Ven 12 Avr 2013 - 17:38

Par curiosité , je viens de dumper le code de Chuck No Rice sur PC Engine de Touko.
Impressionnant , ca donne ca :
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,











$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,












$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,












$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,












$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,












$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,












$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,
$80,












..etc..
Wink
youki
youki
Docteur *
Docteur *

Masculin Nombre de messages : 13276
Age : 52
Date d'inscription : 31/07/2009

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par 65c02 Ven 12 Avr 2013 - 18:29

ahahahah
Z80 Vs 6502, FIGHT ! - Page 7 25yghnyi
avatar
65c02
Docteur *
Docteur *

Masculin Nombre de messages : 2238
Age : 53
Localisation : Paulhan
Date d'inscription : 23/05/2011

http://65c02.tumblr.com

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par vingazole Ven 12 Avr 2013 - 18:47

65c02 a écrit:Remarque le T state aussi n'est pas suffisant pour être comparable, vu que les processeurs ont des fréquences différentes.
Pour bien faire faudrait tout passer en unité de temps en se basant sur la fréquence max.
Oui, c'est ce qu'on a essayé de faire p.7 de ce topic, on arrivait à la conclusion qu'un 6502 à 1 MHz fait aussi bien qu'un z80 à ~3,5 MHz pour une comparaison sur 16 bits.
vingazole
vingazole
Infirmier

Masculin Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 04/01/2012

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par MacDeath Ven 12 Avr 2013 - 18:55

Je sais que ce sous forum est orienté Micro, mais sur les bornes d'arcade, quels sont les états de service de chacun de ces CPU?

le Z80 était très souvent couplé avec un 68000 pour servir de co-CPU-sonore... à la manière de la Mégadrive.

Pour les bornes un peu plus vieilles (début-milieux des 80's), pas mal de jeux avaient des Z80 en double voire triple.

http://www.system16.com/list.php?type=h&search=Z80

le SNK triple Z80 notament...

peut être moins de constructeurs en 6502 :
http://www.system16.com/list.php?type=h&search=6502

le 6809 à l'air pas trop mal aussi :
http://www.system16.com/list.php?type=h&search=6809






Dernière édition par MacDeath le Ven 12 Avr 2013 - 18:58, édité 1 fois
MacDeath
MacDeath
Patient incurable

Masculin Nombre de messages : 1750
Age : 46
Date d'inscription : 06/05/2009

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par AndrewC128 (Xorion) Ven 12 Avr 2013 - 18:57

coucou MacDeath ! c'est toi qui dit que le CPC est superieur au C64 ? Z80 Vs 6502, FIGHT ! - Page 7 3621806995
t'es un sacré comique dis donc 😉
enchanté lol
AndrewC128 (Xorion)
AndrewC128 (Xorion)
Patient en incubation

Masculin Nombre de messages : 33
Age : 48
Localisation : USA - france et un peu New zeland
Date d'inscription : 12/04/2013

Revenir en haut Aller en bas

Z80 Vs 6502, FIGHT ! - Page 7 Empty Re: Z80 Vs 6502, FIGHT !

Message par jimpqfly Ven 12 Avr 2013 - 19:15

Nonon moi aussi.
jimpqfly
jimpqfly
Infirmier

Masculin Nombre de messages : 4239
Age : 46
Localisation : Paris
Date d'inscription : 16/04/2012

http://www.gloub.com

Revenir en haut Aller en bas

Page 7 sur 8 Précédent  1, 2, 3, 4, 5, 6, 7, 8  Suivant

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum