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

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

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

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


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

19817В Луксоре нашли стелу с римским императором в образе фараона 19816Экипаж Artemis II о моменте, когда земля исчезла за луной 19815Почему луна выглядит по-разному в разных точках земли? 19814Adobe экстренно закрыла опасную дыру в Acrobat Reader, которую хакеры использовали с... 19813Метеорный поток, рождённый из умирающего астероида 19812Когда робот пишет за тебя прощальную смс 19811Что общего у лунной миссии, толстого попугая, загадочной плащаницы и лекарства от диабета? 19810Какие снимки Artemis II уже стали иконами лунной программы? 19809Кто на самом деле хочет сладкого — вы или ваши бактерии? 19808Как рекламные данные 500 миллионов телефонов оказались в руках спецслужб? 19807Экипаж Artemis II вернулся на землю после десяти дней в космосе 19806Зелёная и коричневая луна: почему геологи Artemis II уже не могут усидеть на месте 19805Эксперты уверены в теплозащитном щите Artemis II, несмотря на проблемы предшественника 19804Выжить внутри торнадо: каково это — когда тебя засасывает в воронку 19803Аляскинские косатки-охотники на млекопитающих замечены у берегов Сиэтла
Ссылка