User Tag List

Показано с 1 по 10 из 13

Тема: Christmas Tree Event - рисуем елочку =)

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    922
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    156 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Christmas Tree Event - рисуем елочку =)

    К сожалению, узнал об этом конкурсе только вчера от Manwe в этой темке https://zx-pk.ru/threads/34009-bk-by...=1#post1140654
    В посте Manwe ссылка на результаты (последняя колонка - размер в байтах), ссылка на сам эвент (описание): http://logiker.com/Vintage-Computing...Challenge-2021
    Спектрум, как ни странно, глубоко в эээ середине, непорядок. Решил помучать свои мозги, заранее условившись не смотреть готовые решения вообще, для любой платформы.
    В правилах ничего не сказано про запреты на использование особенностей компа, поэтому код использует процедуру печати ПЗУ, а также некоторые трюки для сокращения объема:

    - при запуске кода из Бейсика регистровая пара BC равняется адресу запуска. Используем, ибо нефиг
    - сам адрес запуска, т.е. пара BC, указывает на массив данных для вывода строк
    - в то же время, адрес кода (данных) рассчитан так, чтобы регистр C пригодился как счетчик строк, а регистр B экономит один байт при подсчете координат вывода
    - вывод идет в служебный экран, это фича Спектрум-Бейсика при запуске кодов. Экономим память, убирая инициализацию основного потока (экрана)
    - в условиях не сказано, что код обязан возвращать управление, поэтому для предотвращения очистки служебного экрана прога "вешается", дабы не выходить в Бейсик
    - адрес запуска не совпадает с адресом загрузки блока, что тоже не является обязательным
    - исходя из пункта один, корректный запуск возможен только из Бейсика. Можно просто запустить файл TRD в эмуляторе, на диске уже записан "boot" для загрузки и запуска кода

    Размер моей версии - 35 байт. 14 байт данных строк "елочки" плюс 21 байт программы, это 15 команд Z80.
    Однако ниже по топику char указал, как сократить программу еще на три байта, за что заслуживает почетной медали
    Итоговый размер (пока?) - 32 байта. Код сократился до 13 команд и занимает 18 байт, плюс те же 14 байт данных. Улучшенная версия приложена.
    Конечно, конкурс довольно специфический, и является неким писькомерством, но потренировать мозги было интересно.
    Версия для ПК8000 от Ivagor, 42 байта: https://zx-pk.ru/threads/8378-pk8000...=1#post1140692 но и там есть подвижки в сторону уменьшения.

    Christmas_Tree_by_reddie.zip

    Christmas_Tree_by_char_and_reddie_for_ZX_Spectrum.zip

    Последний раз редактировалось reddie; 27.12.2021 в 07:09.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Russian Demoscene Winter Event 2016
    от TmK в разделе События
    Ответов: 36
    Последнее: 04.12.2015, 16:50
  2. 30th Anniversary Event
    от SaintTurnip в разделе Amiga
    Ответов: 0
    Последнее: 13.08.2015, 17:58
  3. Ответов: 3
    Последнее: 10.05.2012, 09:06
  4. Рисуем на BORDER
    от breeze в разделе Программирование
    Ответов: 42
    Последнее: 19.03.2009, 09:56
  5. рисуем круги
    от jim в разделе Программирование
    Ответов: 1
    Последнее: 07.10.2006, 10:09

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •