User Tag List

Страница 4 из 7 ПерваяПервая 1234567 ПоследняяПоследняя
Показано с 31 по 40 из 62

Тема: Как быстро скроллить память на 2 пиксела?

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,082
    Спасибо Благодарностей отдано 
    88
    Спасибо Благодарностей получено 
    483
    Поблагодарили
    145 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Titus, в актуальном баланс между размером и скоростью главное. Была бы возможность строить мегакод для спрайтов в локации... но её нет.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,438
    Спасибо Благодарностей отдано 
    1,723
    Спасибо Благодарностей получено 
    2,269
    Поблагодарили
    892 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Barmaley_m, круто)
    Делай, пожалуйста, демы)

  4. #3

    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,082
    Спасибо Благодарностей отдано 
    88
    Спасибо Благодарностей получено 
    483
    Поблагодарили
    145 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Barmaley_m, не работает. вся строка на 3 не сдвигается.

  5. #4

    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,082
    Спасибо Благодарностей отдано 
    88
    Спасибо Благодарностей получено 
    483
    Поблагодарили
    145 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    У меня как-то так получилось:
    58 тактов / байт

    Код:
    	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
    Стековый вариант 57,5 тактов на байт

    Если использовать прямую адресацию LD HL,(nn) / LD (nn),HL — получим 56 тактов на байт.

    Код:
    	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
    Если пишем стеком LD HL,(nn) / PUSH HL немного быстрее будет — 53,5 такта на байт.

    Код:
    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
    Вариант без EX AF,AF', по скорости одинаково.
    Код:
    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.

  6. #5

    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,082
    Спасибо Благодарностей отдано 
    88
    Спасибо Благодарностей получено 
    483
    Поблагодарили
    145 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    krt17, видимо значит мой вариант c RLD не рабочий...
    Последний раз редактировалось drbars; 12.04.2015 в 08:21.

  7. #6

    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,082
    Спасибо Благодарностей отдано 
    88
    Спасибо Благодарностей получено 
    483
    Поблагодарили
    145 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    krt17, Ага, я уже протестировал. Ну сами по себе команды RRD/RLD не особо удобные. Наверное можно придумать чтобы одним проходом сдвигалось на 3, но в ущерб скорости

  8. #7

    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    2,082
    Спасибо Благодарностей отдано 
    88
    Спасибо Благодарностей получено 
    483
    Поблагодарили
    145 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    krt17, с таблицами всё прозрачно. Надо родить скролл влево на 3 точки в один проход с помощью команды RLD

  9. #8

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,438
    Спасибо Благодарностей отдано 
    1,723
    Спасибо Благодарностей получено 
    2,269
    Поблагодарили
    892 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от krt17 Посмотреть сообщение
    Прикинул со стеком и табличкой в раскладке получается 36, но это уж совсем кощунство.
    Выкладывай для всех свое кощунство)

  10. #9

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,438
    Спасибо Благодарностей отдано 
    1,723
    Спасибо Благодарностей получено 
    2,269
    Поблагодарили
    892 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от krt17 Посмотреть сообщение
    По итогу 38 с табличкой на 3*8*#100 по скорости победитель, если я опять ничего не пропустил.
    Пропустил) как на счет записи результата из А в регистры?

  11. #10

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,438
    Спасибо Благодарностей отдано 
    1,723
    Спасибо Благодарностей получено 
    2,269
    Поблагодарили
    892 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от krt17 Посмотреть сообщение
    Да тут вообще полный крах и позор. Стирать не буду пусть останется как клеймо. Но 38 это я про другую говорил
    Код:
    ld a,(de)
    ld l,a
    ldd
    dec h
    ld h,(hl)
    Это было написано еще до рома, все четко, вариант с ldd так сказать.
    В начале темы jerry выкладывал сходную:
    Код:
    ld bc,head_table
    
    dup nn
     ld a,(de)
     ldi
     ld l,a
     ld h,b
     ld h,(hl)
    edup

Страница 4 из 7 ПерваяПервая 1234567 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Как быстро добраться до мыши?
    от TomCaT в разделе Для начинающих
    Ответов: 38
    Последнее: 02.03.2010, 11:00
  2. Поиск идей: как быстро залить TAP/TZX в Speccy ???
    от ILoveSpeccy в разделе Несортированное железо
    Ответов: 23
    Последнее: 24.12.2007, 06:32
  3. Быстро вывести число 0-255 на экран
    от Aprisobal в разделе Программирование
    Ответов: 7
    Последнее: 26.01.2005, 08:05
  4. Быстро переместить 384b
    от Aprisobal в разделе Программирование
    Ответов: 6
    Последнее: 23.01.2005, 15:23

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •