
Сообщение от
Lethargeek
Код:
LDA
Load Accumulator with Memory
M -> A
N Z C I D V
+ + - - - -
addressing assembler opc bytes cyles
immidiate LDA #oper A9 2 2
zeropage LDA oper A5 2 3
zeropage,X LDA oper,X B5 2 4
absolute LDA oper AD 3 4
absolute,X LDA oper,X BD 3 4*
absolute,Y LDA oper,Y B9 3 4*
(indirect,X) LDA (oper,X) A1 2 6
(indirect),Y LDA (oper),Y B1 2 5*
STA
Store Accumulator in Memory
A -> M
N Z C I D V
- - - - - -
addressing assembler opc bytes cyles
zeropage STA oper 85 2 3
zeropage,X STA oper,X 95 2 4
absolute STA oper 8D 3 4
absolute,X STA oper,X 9D 3 5
absolute,Y STA oper,Y 99 3 5
(indirect,X) STA (oper,X) 81 2 6
(indirect),Y STA (oper),Y 91 2 6
* add 1 to cycles if page boundery is crossed
теперь считаем
4+5=9 тактов 6502
+2 такта на inx
итого 11 из 38000 тактов на переброску байта на 6502
против 16 из 69000 тактов на переброску байта на z80
дальше - скролл экрана влево или вправо сброшенный мной.
идентичен твоему но нет постоянных пересчетов.
поэтому скорость переброски выше.
что еще там считать?
что "вот это всё" - аппаратные скроллинги? "на пределе возможностей" какого 6502 - сферического в вакууме?
который в С64 стоит, вот эта игра - фрейм использован почти весь.
- - - Добавлено - - -

Сообщение от
MetalliC
Lethargeek, не надоело ломать копья на тему производительности 6502 и Z80 ? этим занимались уже тыщу раз, и всё вполне очевидно - у первого доступ к памяти обычно встает в 1 такт, у второго - 4 или 3, где-то так же соотносятся и их эффективные производительности, т.е. 6502 на 2МГц где-то вдвое быстрее спековского зилога.
вообще не быстрее.
За счет более развитого набора команд Z80 как минимум не уступает, а местами превосходит 6502.