Оффтоп, конечно, но можно подробнее. Форум не пропустил сообщение?(Бе, у форума аллергия на рыбу, пришлось цитату заменить на скриншот).
Оффтоп, конечно, но можно подробнее. Форум не пропустил сообщение?(Бе, у форума аллергия на рыбу, пришлось цитату заменить на скриншот).
Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.
Seamos realistas y hagamos lo imposible!
Ernesto Che GuevaraПереехал сюда: SteinBlume (ex ATM CP/M Explorer)
http://era-cg.su
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Black Cat / Era CG, он показывал рыбу в превью (внутри тега code), но отправленное сообщение оказалось оборванным. Какая именно рыба - просто скопировать и вставить из ассемблера.
Больше игр нет
Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.
Seamos realistas y hagamos lo imposible!
Ernesto Che GuevaraПереехал сюда: SteinBlume (ex ATM CP/M Explorer)
http://era-cg.su
Небольшое дополнение. Раз уж в названии темы есть слово "демо", то это поднимает планку ожиданий по оптимизации предлагаемых вариантов. А в выложенном исходнике многое можно оптимизировать. Хотя это все лежит на поверхности, но я перечислю:
1. Заменить setpixel на вариант с маской по таблице (8 байт). Это дает ускорение на 2 секунды (20%). А если как в basic 2.5 выделить под таблицу 256 байт, то будет еще быстрее.
2. Можно оптимизировать счетчик основного цикла, сейчас он "школьный".
3. Можно внести ГСЧ и рисование точки в тело цикла, чтобы убрать накладные расходы на вызов процедур.
4. Очистка экрана медленная. Причем можно очищать только одну плоскость, а не 4.
- - - Добавлено - - -
Вопрос к svofski - как вставлять бинарники в прекрасный асм?
Высылай обновленный исходник, я все выложу. По-моему не обязательно все делать сверхоптимально, читабельность кода в нашем случае предпочтительна. Но если больше, чем 20%, то конечно. Пиши комментарии.
Утилитой base64 кодируешь бинарник в base64 и полученную строку засовываешь в директиву db64. Учитывая, что максимальный размер бинарника по нынешним меркам комически мал, это вполне практично. На виндус можно найти такую же программу из разных портов GNU утилит. Но вот, говорят, еще есть под виндус некий такой стандартный certutil:
Код:certutil -encode inputFileName encodedOutputFileName
Больше игр нет
Личка заполнена! И чистить я ее не буду! Пользуйтесь адекватными средствами связи! Спасибо.
Seamos realistas y hagamos lo imposible!
Ernesto Che GuevaraПереехал сюда: SteinBlume (ex ATM CP/M Explorer)
http://era-cg.su
Рисование линии в одном слое в режиме 256ъ256:
Версия с запрещенными прерываниями ~246 линий в секунду:
https://svofski.github.io/pretty-808...mbler/?line-di
Версия с разрешенными прерываниями~220257 линий в секунду:
https://svofski.github.io/pretty-808...mbler/?line-el
Последний раз редактировалось svofski; 19.12.2017 в 15:30. Причина: обновление ссылок
Больше игр нет
x-code, πάντα ῥεῖБуквально вчера линия с запрещенными прерываниями была отменена, потому что ivagor довел линию с прерываниями до совершенства. Называется она по-прежнему line-ei.
Более интерактивный способ — кликнуть на рыбу в заголовке рыбы и выбрать нужную рыбу из меню.
Больше игр нет
Если вдруг у кого есть на примете более быстрые варианты - поделитесь плиз исходником или ссылкой.
Этот вариант с минимальнейшей переделкой годится и для специалиста и для ориона, если использовать область 256x256 (лучше в центре, но мало ли кому чего захочется). Доработка под ширину 384 возможна, но будет медленнее.
При желании можно хорошо оптимизировать под 580ВМ1 и (особенно) z80.
- - - Добавлено - - -
Забыл самое важное (оценочное суждение) - это очень быстрые процедуры рисования линии!
- - - Добавлено - - -
Хотя нет, самое важное другое. Респект svofski, что он поднял эту тему и написал процедуру, ну и я молодец, что поучаствовал (сам себя не похвалишь и все такое...) !
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)