ALKO(29.08.2020)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Местами поменял, но одна треть экрана у меня всё равно монолитная:
конечно можно её поделить на 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.
ALKO(30.08.2020), Oleg N. Cher(01.09.2020)
я еще не отошел от ПЗУ для zx8080
а так конечно НУЖНО менять на djnz
- - - Добавлено - - -
поправил
чтоб никто не брал за пример
- - - Добавлено - - -
НЕТ у него уже есть готовая процедура ldi_32
который он кидает строки по одной
чтобы прописывать сразу в цикл
уже нужно будет тянуть 32 ldi и сюда которые по 2 байта
а аффтар зажимает память
пушо пишет на каких то паскалях
а потом еще ВНЕЗАПНО окажется что и для резинки...
а так это и экономия
и быстрей чем просто ldir
а так с djnz это ~35422
а прямо в цикле было бы ~33625
еще +1,7 килотакта под блекджек и шлюх
Я бы вообще поставил 2К ldi или бы заюзал стек![]()
Последний раз редактировалось NEO SPECTRUMAN; 30.08.2020 в 03:38.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)