Titus, в актуальном баланс между размером и скоростью главное. Была бы возможность строить мегакод для спрайтов в локации... но её нет.
Titus, в актуальном баланс между размером и скоростью главное. Была бы возможность строить мегакод для спрайтов в локации... но её нет.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Barmaley_m, круто)
Делай, пожалуйста, демы)
Barmaley_m, не работает. вся строка на 3 не сдвигается.
У меня как-то так получилось:
58 тактов / байт
Стековый вариант 57,5 тактов на байтКод:LD HL,#401F DUP 32 ; SCROLL 3 LD C,(HL) RL C EX AF,AF' RL C EX AF,AF' RLA RL C RRA LD (HL),C DEC L EDUP
Если использовать прямую адресацию LD HL,(nn) / LD (nn),HL — получим 56 тактов на байт.
Если пишем стеком LD HL,(nn) / PUSH HL немного быстрее будет — 53,5 такта на байт.Код:LD (STACK+1),SP LD HL,#401E DUP 16 ; SCROLL 3 LD SP,HL DEC L DEC L POP DE RL D EX AF,AF' RL D EX AF,AF' RLA RL D RRA RL E EX AF,AF' RL E EX AF,AF' RLA RL E RRA PUSH DE EDUP STACK: LD SP,#0000
Вариант без EX AF,AF', по скорости одинаково.Код:ADR=#401E LD (STACK+1),SP LD SP,#4020 DUP 16 ; SCROLL 3 LD HL,(ADR) RL H EX AF,AF' RL H EX AF,AF' RLA RL H RRA RL L EX AF,AF' RL L EX AF,AF' RLA RL L RRA PUSH HL ADR=ADR-2 EDUP STACK LD SP,#0000
Код:ADR=#401E LD (STACK+1),SP LD SP,#4020 DUP 16 ; SCROLL 3 LD HL,(ADR) RL H RLA RL H RLA RL H RRA RRA RL L RLA RL L RLA RL L RRA RRA PUSH HL ADR=ADR-2 EDUP STACK LD SP,#0000
Последний раз редактировалось drbars; 11.04.2015 в 13:18.
krt17, видимо значит мой вариант c RLD не рабочий...![]()
Последний раз редактировалось drbars; 12.04.2015 в 08:21.
krt17, Ага, я уже протестировал. Ну сами по себе команды RRD/RLD не особо удобные. Наверное можно придумать чтобы одним проходом сдвигалось на 3, но в ущерб скорости![]()
krt17, с таблицами всё прозрачно. Надо родить скролл влево на 3 точки в один проход с помощью команды RLD![]()
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)