Ssylka

Ретро-кодинг: 256 байт для MS-DOS

Создание крошечных интро для DOS, известных как «сайзкодинг», – это хобби, где программисты соревнуются в умении уместить впечатляющие визуальные эффекты в минимальный объем кода, часто не превышающий 256 байт. Это не требует глубоких знаний программирования или математики, а скорее является развлечением и возможностью для творческого самовыражения. Этот вид кодинга позволяет изучить архитектуру x86 и ограничения DOS.
Ретро-кодинг: 256 байт для MS-DOS
Изображение носит иллюстративный характер

Начинать стоит с простого. Например, создание эффекта «размытого TV-шума». Для этого нужно перевести VGA-режим в 320x200, установить grayscale-палитру, выделить память под видеобуфер, и использовать генератор псевдослучайных чисел для заполнения буфера случайными пикселями. Затем можно применить алгоритм размытия (усреднения соседних пикселей) и скопировать содержимое буфера в видеопамять.

Оптимизация кода играет ключевую роль. Использование стартовых значений регистров и применение более коротких аналогов команд (например, xchg вместо mov) помогают существенно уменьшить размер исполняемого файла. Ключевым моментом является понимание работы со стеком и сегментными регистрами. Также можно использовать DOS API, не беспокоясь о том, что это может привести к ошибкам. Программист должен знать как использовать системный таймер, а также о том, что такое обратный ход развертки. Использование обратного хода развертки дает более плавную работу программы. Использование ret вместо int 20h также позволяет сэкономить драгоценные байты.


Новое на сайте

19023Сколько частей тела и органов можно потерять, чтобы остаться в живых? 19022Зачем Сэм Альтман решил внедрить рекламу в бесплатные версии ChatGPT? 19021Хитроумная маскировка вредоноса GootLoader через тысячи склеенных архивов 19020Удастся ли знаменитому археологу Захи Хавассу найти гробницу Нефертити до ухода на покой? 19019Действительно ли «зомби-клетки» провоцируют самую распространенную форму эпилепсии и... 19018Генетический анализ мумий гепардов из саудовской Аравии открыл путь к возрождению... 19017Вредоносная кампания в Chrome перехватывает управление HR-системами и блокирует... 19016Глубоководные оползни раскрыли историю мегаземлетрясений зоны Каскадия за 7500 лет 19015Насколько глубоки ваши познания об эволюции и происхождении человека? 19014Как уязвимость CodeBreach в AWS CodeBuild могла привести к глобальной атаке через ошибку... 19013Затерянный фрагмент древней плиты пионер меняет карту сейсмических угроз Калифорнии 19012Генетические мутации вызывают слепоту менее чем в 30% случаев вопреки прежним прогнозам 19011Завершено строительство космического телескопа Nancy Grace Roman для поиска ста тысяч... 19010Вязкость пространства и фононы вакуума как разгадка аномалий расширения вселенной 19009Приведет ли массовое плодоношение дерева Риму к рекордному росту популяции какапо?