Местами поменял, но одна треть экрана у меня всё равно монолитная:
конечно можно её поделить на 64 вызова LDI-процедурки. Но фпс от этого сильно не прибавится, лишь память зря загажу. Так как даже с использованием теневого экрана 128к хоть и удавалось сгладить рассинхрон хальтом, но сильно шустрее по сравнению с LDIRами оно не становилось. Наиболее затратен во всей этой лабуде именно расчёт каждого знакоместа отдельно взятого спрайта (на гифке зеркальные спрайты глючут, ибо таблица попала в область переключаемой банки).ld hl,#4800+addr_virt_screen-#4000 ; вся вторая треть
ld de,#4800
ld bc,2048
ldir
![]()
ну и написано оно на неизвестно чем
и раз речь идет про выравнивание halt-ом
вангую что на 14МГц турбе все будет носится как бешенное
- - - Добавлено - - -
а буфер под оно полностью(каждый байт) перестраивается каждый кадр?
- - - Добавлено - - -
дешево и сердито сделать так
у тебя уже есть процедура с 32 ldi
сделай вместо ldir-а call на нее
и небольшое условие
ldir-ом ~43008 тактаКод:ld hl,$0000 ld de,$4800 ld bc,$800+$4000 loop ; ldir call ldi_32 djnz loop ;dec b ;jp nz,loop jp $ ldi_32 dup 32 ldi edup ret
этой парашей ~35422
+$4000 к BC это для 64 циклов ($40)
чтоб делать быструю проверку на no zero
без пересылания в регистр A
тк ldi не ставит нужных флагов
подкоректируй длину bc +-32 если я на глаз не попал
- - - Добавлено - - -
так же будет полезно еcли твой набор ldi будет выглядеть так
и можно будет его использовать вместо любого ldir с фиксированным числом перекидываемых данныхКод:ldi_20 ldi ldi_19 ldi ldi_18 ldi ldi_17 ldi ldi_16 ldi ldi_15 ldi ldi_14 ldi ldi_13 ldi ldi_12 ldi ldi_11 ldi ldi_10 ldi ldi_09 ldi ldi_08 ldi ldi_07 ldi ldi_06 ldi ldi_05 ldi ldi_04 ldi ldi_03 ldi ldi_02 ldi ldi_01 ldi ret
ну или не с фиксированным
тк один ldi 2 байта
и если кидать много
то можно и рассчитать положение куда jp-ать
Последний раз редактировалось NEO SPECTRUMAN; 30.08.2020 в 01:58.
на асме...
- - - Добавлено - - -
Все вопросы к автору этой книги.
#ЯЖНЕПРОГРАММИСТ
https://zxpress.ru/book_articles.php?id=1028
![]()
Последний раз редактировалось ALKO; 30.08.2020 в 01:40.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
ALKO(30.08.2020), Oleg N. Cher(01.09.2020)
и не надо call каждый раз, а сразу прописать там же цикл
Прихожу без разрешения, сею смерть и разрушение...
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)