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

User Tag List

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

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

  1. #1
    Master Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    568
    Благодарностей: 121
    Mentioned
    1 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 в 12:05.

  2. Этот пользователь поблагодарил Bedazzle за это полезное сообщение:
    Reobne (04.09.2016)

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

  4. #2
    Master
    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    545
    Благодарностей: 270
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  5. #3
    Master Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    568
    Благодарностей: 121
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

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

Похожие темы

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

Ваши права

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