User Tag List

Показано с 1 по 10 из 217

Тема: ROBOTZ! Releases

Древовидный режим

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

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    Cool

    Цитата Сообщение от PPC Посмотреть сообщение
    Можно чуть раскрыть, в чём суть метода?
    при выводе спрайтов через стек пара ВС
    через которую рисуем должна всегда соответствовать содержимому стека

    единственное я смутно представляю работу прерываний на Векторе.
    и текст дам в z80 кодировке

    итак работа со спрайтами

    грубо говоря берем простейший вывод спрайта
    через стек

    Код:
    ;hl адрес спрайта
    ;de координата
    
    ld (ret_sp0),sp
     ld sp,hl
     ex de,hl
     pop de
     ld (hl),e
     inc h
     ld (hl),d
     ...
     pop de
     ld (hl),e
     inc h
     ld (hl),d
    
     ld sp,$
    retsp equ $-2
     ret
    если внезапно придет прерывание то спрайт будет испорчен

    Код:
    ;вот это вешаем на прерывание
    ISR_sub
               di
               ex (sp),hl  ;обмениваем вершину стека и содержимое HL
               ld (imm_jp),hl
               pop hl       ;заменяем испорченное слово спрайта 
               push bc     ;на текущее слово находящееся в BC
               ld (imm_sp),sp
              
               ld sp,ISR_sp
    ;здесь идет обработка прерывания
    ;          ...
    ;----------------------------------
               ld sp,$          
    imm_sp equ $-2
               ei
               jp $
    imm_jp equ $-2
    
    ;теперь немного меняем процедуру рисования спрайта
    
    ;hl адрес спрайта
    ;de координата
    
    ld (ret_sp0),sp
    
     ld c,(hl)
     inc hl
     ld b,(hl)
     inc hl
     ld sp,hl
     ex de,hl
     ld (hl),c
     inc h
     ld (hl),b
     ...
     pop bc
     ld (hl),c
     inc h
     ld (hl),b
    
     ld sp,$
    retsp equ $-2
     ret
    теперь даже в случае прихода прерывания искажений спрайта уже не будет
    Последний раз редактировалось jerri; 20.10.2015 в 12:38.
    С уважением,
    Jerri / Red Triangle.

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

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

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

Ваши права

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