Как стать автором
Обновить

Комментарии 14

Истинное занятие для суровых челябинских тру-программистов, кмк. Обычно среди мужчин принято выбирать победителя по признаку «больше». Здесь тот редкий случай, когда «меньше» однозначно лучше.

Чтобы два раза не вставать, напомню, мало-ли — пригодится: бинарные файлы из командной строки можно набрать следующим образом (цифры — на NumPad, ограничения — некоторые непечатаемые символы не вводятся, например, $00):

copy con program.com
Alt+205
Alt+25
Ctrl+Z

За титаническую работу по впихиванию невпихуемого спасибо автору и группе.
Удачи всем в этом благородном занятии. главное ничего не сломать и не создать нечаянно сингулярность

ps. Когда у авторов управляющей программы спутника (не помню подробностей — чьего и когда) осталось что-то около 700 байт свободного ОЗУ, они впихнули программу стабилизации по звёздам. (Если кто-то помнит подробности, пожалуйста, поправьте).
подробностей не помним, но в самой нулевой статье (ссылка выше есть) я приводил пример как раз с перепрограммированием Вояджера
Спасибо за «тру», развлекаемся как можем :)
copy con – штука хорошая, только не вбивать же каждый код раз руками при запуске. Да и как передать такой текст в качестве командной строки?

Хотя, кстати, можно было бы устроить этакое реалтайм-компо: запускается батник с copy con intro.com, автор вбивает руками код (лучше по памяти) и потом этот код запускается :)))
Развлекаетесь и развлекаете, за что спасибо.
copy con… может пригодиться тем, кто hex редактор в руках не держал. Понимаю, что это явно не про авторов демок.
НЛО прилетело и опубликовало эту надпись здесь
и многие другие интересные фильмы :-)
А-а, кажется я понял, резюмирую: весь «хак» заключается — в переносе исполняемого кода из .com файла в .bat файл, но за это пришлось — платить, тем что в байт-код'e не должно быть запрещённых ESC символов, и соответственно размером кода в 126 байт т.к. (0x100 — 0x82 = 0x7E=126)
Я правильно понял!?
Спасибо за статью, и за проработанный тулчейн: по сути это некий абфускатор и чекер — который «бьёт по рукам» за неправильные символы.
А вообще, идея использовать 2B — как «новую» соревновательную платформу для sizecoding'а — довольно интересная, жалко только, что достаточно мудрёная. Было бы круто, если все тулы ( эмулятор DosBox, Fasm, 2B тулчейн и набор .bat 'ников ) были собраны в одном архиве, и вот если бы — это всё компилилось и запускалось бы — одной кнопкой…
Вообще как вариант, простого соревновательного sizecoding'а, я бы предложил Shadertoy Sizecoding compo. Вот что-то подобное можно было бы провести на наших demoparty, например, на ближайшем Chaos Constructions.
да все верно
Перенести код в BAT можно и по-другому, скажем, написав так:
echo CodeCodeCode>intro.com
intro.com
Запрет на спецсимволы останется, но тогда код запустится всё же как обычная COM-программа (правда, в конец добавится ещё CR,LF) и не будет некоторых фишек: старта с адреса $82 (запуска из области командной строки), ограничения в 125 байт. А прикол (упор) как раз в запуске кода из области командной строки, а не просто из BAT-файла, для чего и нужна отдельная программа, размером 2 байта :)

Ограничение размера всё же не 126, а 125 байт (а вместе с 2b+пробел получится красивое число 128), т.к. в конец ещё CR (13) добавляется (сам DOS добавляет).

Все тулы поместить в один архив можно, вот только периодически выходят новые версии DOSBox и fasm, и либо в архиве будут лежать устаревающие версии, либо нужно следить и обновлять периодически. Но идея хорошая :)

Shadertoy Sizecoding compo – тоже классная идея!
И все же — а в чем преимущество такого подхода перед обычными COM-программами?
Пока я вижу только недостаток — невозможность использовать некоторые байты в коде.
пишите обычные 128 байт интро в .COM — у нас свободная страна!
«Набор существующих платформ, под которые пишутся интры, уже долгие годы практически не меняется, если не брать во внимание категорию Wild (АОН, паяльники, ватные палочки). Мы предлагаем вам… не то чтобы новую платформу, но по крайней мере, некоторое разнообразие, со своими ограничениями. Именно ограничения и их преодоление являются сутью демосцены как процесса».

Кто-то пишет демки с использованием Unity и Unreal Engine, а кто-то под ZX и АОНы.
Кому что нравится :)
К примеру, этот код вероятно пройдёт мимо антивируса. Он не сохранится на диске. Не то чтобы преимущества, скорее особенности.
Впрочем, вирусов в подобных программах, скорее всего, искать бессмысленно, т.к. человек, способный разрабатывать подобные чудеса, сможет себя прокормить и без вирусов, а если приспичит, то кмк сможет позаботиться о том, чтобы антивирус ничего не нашёл.
это надо проверять… насколько мне известно, основная масса антивирусного ПО давно анализирует .BAT — вопрос лишь на каком уровне идет этот анализ.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории