Важная информация

User Tag List

Показано с 1 по 3 из 3

Тема: Запутался в процедуре отрисовки спрайта

  1. #1
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,485
    Спасибо Благодарностей отдано 
    219
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Запутался в процедуре отрисовки спрайта

    Медитирую, но не могу разобрать магию с регистром А.
    Так понимаю, в IX окажется адрес со смещением на 12 минус удвоенная ширина спрайта?
    Как оно работает? Не понятна часть где sbc.

    Код:
    	....
    	ld      bc, (SAV_SPR_HEIGHT)	; B = cellwidth, C = pixheight
    	ld      a, b			; A = cellwidth
    	dec     a
    	add     a, a			; A = (cellwidth - 1) * 2
    	sub     #0A			; #0A = (6-1)*2 ; 6 = max cellwidth of sprite
    
    	ld      e, a
    	ld      a, 0
    	sbc     a, 0
    	ld      d, a
    	add     ix, de			; ix=destination adr
    	....
    - - - Добавлено - - -

    Написал, и похоже, сам уже понял

    sbc учитывает CY, который получен в sub #0A. Если ширина спрайта меньше 6, то sbc a, 0 даёт в результате FF, и в de у нас будет отрицательное число. А если ширина равна 6, то CY сброшен, и в de получится ноль.

    Последний раз редактировалось Bedazzle; 04.09.2016 в 13:05.

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

  3. #2
    Veteran
    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,041
    Спасибо Благодарностей отдано 
    931
    Спасибо Благодарностей получено 
    224
    Поблагодарили
    121 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Обычно пишут
    sbc a,a
    тут тебе сразу и обнуление, и знак расширяется во все 8 бит.
    Это, кстати, так и называется "расширение знака".

  4. #3
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,485
    Спасибо Благодарностей отдано 
    219
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Reobne Посмотреть сообщение
    Обычно пишут
    sbc a,a
    тут тебе сразу и обнуление, и знак расширяется во все 8 бит.
    Это, кстати, так и называется "расширение знака".
    Спасибо, поэкспериментирую!

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

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

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

Похожие темы

  1. Вывод спрайта по X,Y
    от drbars в разделе Программирование
    Ответов: 7
    Последнее: 20.03.2022, 10:43
  2. Поворот спрайта
    от Soplik в разделе Программирование
    Ответов: 22
    Последнее: 03.10.2011, 21:53
  3. Вопрос по процедуре сброса
    от Тайльнемер в разделе Разный софт
    Ответов: 3
    Последнее: 05.05.2009, 01:38
  4. Поворот спрайта
    от acidrain в разделе Графика
    Ответов: 9
    Последнее: 06.12.2008, 14:27
  5. Ответов: 4
    Последнее: 04.06.2008, 20:20

Ваши права

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