Нет, потому что вопрос в написании прог под ngs (эмулятор) / ngs+nextz80 (реал), чтобы одна и та же программа работала везде, но с разной скоростью. А ещё лучше atm / atm+ngs / atm+ngs+nextz80, с различием только в кернале.
Нет, потому что вопрос в написании прог под ngs (эмулятор) / ngs+nextz80 (реал), чтобы одна и та же программа работала везде, но с разной скоростью. А ещё лучше atm / atm+ngs / atm+ngs+nextz80, с различием только в кернале.
а если для каждой пары пикселей имеем 4 варианта маски (00,01,10,11) = 4 процедуры вывода и 0/1/1/1 байт данных:
скомбинировав такие выводы для нескольких байт получим быстрый вывод (правда без клиппирования)
MASK_L EQU %10111000
MASK_R EQU %01000111
P00 INC DE ;6 /6
P00_END
//---
P01 LD A,(DE) ;7
AND MASK_R ;7
OR (HL) ;7
LD (DE),A ;7
INC HL ;6
INC DE ;6 /40
P01_END
//---
P10 LD A,(DE) ;7
AND MASK_L ;7
OR (HL) ;7
LD (DE),A ;7
INC HL ;6
INC DE ;6 /40
P10_END
//---
P11 LDI ;16 /16
P11_END
//---
DE - экран
HL - данные спрайта
SP - "маска" - адреса переходов на процедуры вывода линии спрайта
Pentagon1024sl2.2/TSFM/Z-Controller/GS128Kb/HDD/CDROM/Palcoder
Хехе, занялся исследованием вопроса. Выяснились очень занимательные вещи.
Интересно, что расскажет наш друг Алоний, впихиватель спартановских лутов в асексовые еабы.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)