ФлеймФорумПрограммирование

Вопросы по ZX80 Assembler (3 стр)

Страницы: 1 2 3 4 517 Следующая »
#30
20:38, 14 ноя 2022

gamedevfor
Отключение прерываний по di как раз не даст привязаться к vdraw. Если не хочешь через halt, то надо перехватывать прерывания и тогда ты получишь власть и над всеми регистрами.

#31
20:55, 14 ноя 2022

=A=L=X=
Ну дык какие могут быть прерывания когда я верчу стеком как цыган солнцем.

=A=L=X=
> и тогда ты получишь власть

Именно это мне и нужно.

#32
21:03, 14 ноя 2022

Чет я походу тут в виде статьи и не оформил.
https://hype.retroscene.org/blog/968.html
Тут я писал про перехват прерываний с реализацией вытесняющей многопоточности.

#33
21:08, 14 ноя 2022

Хотя на hype я еще не стал азы перехвата выкладывать, т. к там это уже должно быть моветоном.
Вот тут про азы https://retrocoder.d3.ru/perekhvat-preryvanii-na-zx-spectrum-1915… orting=rating

#34
22:19, 14 ноя 2022

По отрисовке бордера можно понять сколько времени занимает та или иная операция с экраном.
Теперь понятно почему 25FPS.

#35
4:10, 15 ноя 2022

entryway
> Но вообще это же медленно, не? На каждой итерации три инструкции. Если
> переписать цикл на двойной (djnz, dec, jnz), то в 255 случаев из 256 будет одна
> инструкция.

Верно. Получил 40FPS.

#36
5:46, 15 ноя 2022

gamedevfor
> Верно. Получил 40FPS.

Теоретический лимит можешь получить через

LD SP, край экрана
LD HL, 0
DUP 256*192/16
PUSH HL
EDUP

Т.е. полностью развёрнутый цикл на пушах - это максимальная вообще скорость заливки из теоретически возможных.
Но имея потолок можно прикидывать насколько рационально разворачивать другие циклы чтобы приближаться к идеалу.

#37
19:33, 15 ноя 2022

=A=L=X=
Что то не умеет SpectNet IDE в команду DUP (((

#38
19:55, 15 ноя 2022

gamedevfor
Dup/edup это повторение тела указанное число раз в sjasm.
Смотри какой у тебя ассемблер и ищи аналог.

#39
20:33, 15 ноя 2022

=A=L=X=
Непонятно какой там asm диалект, но видно что поддерживает макросы, наверное нужно через них делать свой DUP )))

#40
20:38, 15 ноя 2022

gamedevfor
> Непонятно какой там asm диалект
С этим в первую очередь надо определиться.
Почитай уже описание что ли на страничке чего ты там скачал.

#41
20:50, 15 ноя 2022

судя по доке:

.loop 100500
  PUSH HL
.endl

https://github.com/Dotneteer/spectnetide/blob/master/docs/_posts/… statements.md

#42
20:50, 15 ноя 2022

Погуглил, если это zxnextide, то там самописный ассемблер c
. Loop
. Eloop
Вместо
Dup
Edup

#43
20:51, 15 ноя 2022

=A=L=X=
> Почитай уже описание что ли на страничке чего ты там скачал.

Похоже что там своя реализация

#44
20:57, 15 ноя 2022

=A=L=X=
> Погуглил, если это zxnextide, то там самописный ассемблер c
> . Loop
> . Eloop

не работает

Страницы: 1 2 3 4 517 Следующая »
ФлеймФорумПрограммирование