Вообще процедура PUTIMAGE1 c проверкой намного ли быстрее спрайтовой с проверкой ?
Прост у меня большинство тайлов квадратные, и было бы рациональнее их выводить не спрайтами, а PUTIMAGE-ми. Но вот насколько будет выигрыш в скорости.
- - - Добавлено - - -
Да, в основном именно такая область рабочая.
Быстрее намного, потому что вычисляется только первое знакоместо в каждой линии и далее ldir всей линии, а в выводе спрайтов - каждое знакоместо вычисляется и выводится.
- - - Добавлено - - -
Таблица адресов всех пиксельных строк экрана ниже, можешь нужные строки отлдирить тупо
Код:table_addr_scr defw #4000,#4100,#4200,#4300,#4400,#4500,#4600,#4700 defw #4020,#4120,#4220,#4320,#4420,#4520,#4620,#4720 defw #4040,#4140,#4240,#4340,#4440,#4540,#4640,#4740 defw #4060,#4160,#4260,#4360,#4460,#4560,#4660,#4760 defw #4080,#4180,#4280,#4380,#4480,#4580,#4680,#4780 defw #40a0,#41a0,#42a0,#43a0,#44a0,#45a0,#46a0,#47a0 defw #40c0,#41c0,#42c0,#43c0,#44c0,#45c0,#46c0,#47c0 defw #40e0,#41e0,#42e0,#43e0,#44e0,#45e0,#46e0,#47e0 defw #4800,#4900,#4a00,#4b00,#4c00,#4d00,#4e00,#4f00 defw #4820,#4920,#4a20,#4b20,#4c20,#4d20,#4e20,#4f20 defw #4840,#4940,#4a40,#4b40,#4c40,#4d40,#4e40,#4f40 defw #4860,#4960,#4a60,#4b60,#4c60,#4d60,#4e60,#4f60 defw #4880,#4980,#4a80,#4b80,#4c80,#4d80,#4e80,#4f80 defw #48a0,#49a0,#4aa0,#4ba0,#4ca0,#4da0,#4ea0,#4fa0 defw #48c0,#49c0,#4ac0,#4bc0,#4cc0,#4dc0,#4ec0,#4fc0 defw #48e0,#49e0,#4ae0,#4be0,#4ce0,#4de0,#4ee0,#4fe0 defw #5000,#5100,#5200,#5300,#5400,#5500,#5600,#5700 defw #5020,#5120,#5220,#5320,#5420,#5520,#5620,#5720 defw #5040,#5140,#5240,#5340,#5440,#5540,#5640,#5740 defw #5060,#5160,#5260,#5360,#5460,#5560,#5660,#5760 defw #5080,#5180,#5280,#5380,#5480,#5580,#5680,#5780 defw #50a0,#51a0,#52a0,#53a0,#54a0,#55a0,#56a0,#57a0 defw #50c0,#51c0,#52c0,#53c0,#54c0,#55c0,#56c0,#57c0 defw #50e0,#51e0,#52e0,#53e0,#54e0,#55e0,#56e0,#57e0
Последний раз редактировалось Andrew771; 24.05.2020 в 16:20.
Яжламер
Так-то я в курсе, что такое LDIR и что он гоняет блоки данных.
Но как сделать так, чтоб он опирался именно на таблицу в качестве входных параметров, этого я пока не умею.
- - - Добавлено - - -
Что касается логики ЯВУ, что быстрее работает последовательность if else или switch case ?
case
Можно тупо в лоб, если не жалко нескольких сотен байтов, зато быстродействие будет максимальное:
Код:copy_virt_to_scr ld hl,#4080+addr_virt_scr-#4000 ; остаток первой трети экрана с 5-й строки ld de,#4080 ld bc,32 ldir ld hl,#4180+addr_virt_scr-#4000 ld de,#4180 ld bc,32 ldir ... ld hl,#4800+addr_virt_scr-#4000 ; вся вторая треть ld de,#4800 ld bc,2048 ldir ld hl,#5000+addr_virt_scr-#4000 ; часть третьей трети до 6-й строки снизу ld de,#5000 ld bc,32 ldir ld hl,#5100+addr_virt_scr-#4000 ld de,#5100 ld bc,32 ldir ... ld hl,#5740+addr_virt_scr-#4000 ld de,#5740 ld bc,32 ldir ret
ALKO(24.05.2020)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Не... На данный момент putimage у меня касается вывода тайлов (как альтернатива спрайтам), а не в качестве переброски виртуального экрана на реальный.
Переброску я пока ещё не трогал. Пока ещё она фуллскриновая, тормозная.
- - - Добавлено - - -
Хотя можно как вариант отрисовывать тайлы в более узком диапазоне, не заходя за края. А сами края захайдить атрибутами. Но не хочется урезать обзор.
А вот это не оно? Уже обсуждали
- - - Добавлено - - -
Края не получится проверять в выводах линий. Нужно сначала вычислять длину линии тогда.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)