Обновить
Комментарии 66
#EB #80, говорите? Было дело, да. Сам когда-то использовал буфер для аргументов в своих корыстных целях.
надеюсь, это не секретные технологии и за нами уже не выехали :-)
Т.е. фишка в том, что делается прыжок на аргументы командной строки в PSP?

P.S. Да, точно :)
я календарь переверну и снова… ну вы поняли

Я правильно понимаю, что команде передаётся аргумент, представляющий собой, по сути, shell-код? Он и выполняется по факту?

Я не автор, я не знаю, но суть в .BAT которым запускается .COM — изучите полный архив, он по ссылке там в конце статьи. Если автор напишет тест — будет вторая часть, там разложим все честь по чести.
Аргумент (вернее даже, полная командная строка, если не ошибаюсь) — набор ASCII-символов, которые представляют собой машинный код. Т.е. команды должны быть еще подобраны таким образом, чтобы среди символов не оказалось специальных.

P.S. EB 80 — это jmp по смещению 80h, а первые 100h (256) байтов в com-программе — это Program Segment Prefix со всякими структурами, и по смещению 80h находится командная строка, выполнение которой и запустило эту программу.

P.P.S. Ну и напоследок, всего программа таким образом занимает 128 + 2 = 130 байт, исходники я не смотрел но весьма вероятно что основной цикл так и сделан, что выполняется итерация в этих 128 байтах (байт длины + 127 байт) и после снова выполняется та же инструкция EB 80, когда IP доходит до 100h.
ну вот, автор может теперь уже ничего и не писать :-)

спасибо!

Поглядел архив. Точно так. Сейчас сам шел-код можно при помощи какого-нибудь radare2/rasm2 сделать. У него это отдельные исходники, что генерируют шел-код.


Ну и не знаю за DOS, в Unix формального ограничения, что за байты могут быть в параметрах ком-строки нет. Главное найти способ их передать :) Но судя по всему, у DOS тоже жёстких ограничений нет.

ну вот и разобрались… То что это можно использовать в военных целях сомнений нет, может быть даже и использовалось уже. У нас демосцена и она легальна — в вирусной сцене я не разбираюсь.

Ну я не хацкер тоже. Radare2 помогает во всяком закрытом embedded разбираться, когда исходников библиотеки нет, но нужно разобраться.

Эх, mars by Tim Clarke — легендарная вещь.
Есть мнение, что пора его переписать на новых технологиях. Возможно займемся на днях этим проектом, исходник комментированный у нас уже есть.
Я ему в свое время палитру менял. Землю делал зеленой, а небо синим. Получалось Earth :-)
Экзешник сейчас точно не найду, но там совсем просто было. Палитра прям в чистом виде хранится…
ПС: Таки нашел!
drive.google.com/open?id=1QIMefgyOpgESJpBBLiAOwKQbretsIC7G
Не, нету. Насколько я помню, я его даже не дезассемблировал. Сразу экзешник правил.
Исходники Mars-а или что-то Mars-о подобного по его мотивам были. Ушел искать. (Память упорно пытается делать пассы руками и шепчет «C--», но я не уверен)
Вот что нашлось по закромам:
Mars_src.zip дисассемблированный / прокомментирован вручную
MARSKIT.ZIP дисассемблированный Sourcer-ом / судя по комментариям / внутри архива есть «MARSPAL is a simple little utility to allow you to view Tim Clarke's excellent mars demo in different colors.»
и OTMVOXEL.ZIP voxel landscape explanation/demo
Марс же 5 kb, а после упаковки каким-нибудь apack’ом – 3.5 kb. Ему место в предыдущей номинации.
на Pouet он в 8k — отсюда и текущее его местоположение

если кто то захочет сделать Mars 2020 он и в 1к его смело сможет переписать ибо деды об оптимизации особо не думали
2b это все-таки трюк, в чем-то отдаленно похожий на современные хакерские эксплойты (только здесь мы сами передаем управление на данные в буфере).
А вот 8b matrix — это супер! программа полностью самодостаточна.
Дед жжёшь, даёшь демосцены в молодые массы!!!
Два байта это неспортивно. Вот мы тут поджались, и зарелизили аж целый язык программирования размером в 1 байт для ZX-Spectrum — www.pouet.net/prod.php?which=85125
я то тебе лайк там поставил, а вот ты наши работы игнорируешь — негоже это

https://www.pouet.net/groups.php?which=14823

И изучи внимательно 2b — там существенно больше чем ресет. Существенно…
А что этот код делает? А то я в спеке никакущЪ.
а… ну тут ничего нового и ничего пророческого… просто вирус
Суровая мужская слеза ностальгии сползла по щеке. Помню, как завидовали демомейкерам на Амиге, у которых в распоряжении уже тогда было, хотя бы, 2D аппаратное ускорение. Помню Watcom C и вставки на ассемблере для оптимизации вычислений. Затенение Гуро, Фонга, интерполирование нормалей, прямой доступ к видеопамяти…
на то и расчет! Но можно не только плакать, а брать в руки современные средства разработки и быстренько вспоминать былое. Благо много исходного кода опубликовано и собрать свою первую работу не так сложно. А дальше оно уже само…

Вспомнились минимально возможные программы для AVR. Вроде самая минимальная… 0 байт. Кажый такт счётчик инкрементируется и бежишь по ячейкам памяти, потом переполняешься и сначала.


upd: вот https://habr.com/ru/post/240517/

Вот эта вещь нравится youtu.be/ZfuierUvx1A
Chaos Theory — Awesome 64k Intro
При желании можно найти саму демку, а так-же её код.
Это демо наверное единственное из всех 64к, что обладает динамичной осмысленной графикой, и вполне нормальной музыкой.
это все отлично, но это GPU

про GPU мы еще поговорим, сейчас речь про PC, DOS, non-GPU
Почему не рассказали про это и как они подгоняли размер, чтобы программа была не такая маленькая
GPU.
Мы сегодня говорим про software rendering — это принципиально разные штуки…
конечно. H7 это 2000 год, это пограничный момент и это последняя (одна из последних) работ такого уровня для non-GPU

Да, первый раз когда увидел тоже сразу понравилась, какой-то смысл глубокий есть в ней и сюжет.

Все демки Conspiracy смотрятся крайне круто даже сейчас.
А уж про Farbrausch и говорить нечего, надо просто смотреть:
еще раз повторюсь — это GPU и мы обязательно поговорим про это…
сегодняшняя тема — работы без GPU

unbeliever Mesha зря не упомянул, всё-таки из 4К для DOS пожалуй самая крутая. Omniscent конечно впечатляет, но чисто технически он не настолько сложен.


PS: Привет, кстати :)

Привет! Я старался брать самые старые работы в каждой номинации — в остальном, да, работ достойных очень много.

Видал? www.pouet.net/prod.php?which=85103

Да, видел, правда не очень понял смысл происходящего… :)

Ну в вашем случае мы просто архивируем на YouTube вашу работу, обе версии в отличном качестве. Чуть позже сделаем финальную версию, там будет все еще лучше. Если есть какие доп.материалы — сообщай, включим туда. Арти не хочет на это тратить время :-(

Именно из спектрумовского кода, относящегося к Forever вроде ничего нет. Есть куча наработок с тестами эффектов на Pascal'е, я обычно сначала на нём всё оттачивал чтобы потом переносить, но не уверен насколько это может быть интересно. Сорцы тоже есть.

У нас же видео + файлы. Мы на видео, после работы можем все что угодно показать, от фоторафий и кусков фильма Funtop до всякого. А в архив можем положить кроме самих работ опять же все что угодно. Важно чтобы это было понимаемо, собираемо, с комментами. Подумай! Пиши в телеграмм если что @muchkaev

Фотографии какие-то есть, но немного и это сканы сделанные в 90-е, так что разрешение у них мелкое и качество хреновое.


Про "собираемое, с комментами" — сомневаюсь что есть что-то подобное т.к. всё-таки это демка, а не продукт с долгосрочной поддержкой :)


Telegram не использую

По идее, 512b-intro можно закатывать прямо вместо MBR и запускать на голом железе без этих ваших новомодных DOS-ов

Нельзя. В МБР доступно только 510 байт, последние 2 байта сигнатура. И без неё этот сектор не загрузится на исполнение.

Да, точно. Но ради такого дела можно и сильнее ужаться :)

я старался брать самые старые работы в каждой номинации — в остальном, да, работ достойных очень много
большинство ограничений в sizecoding связаны с размерами секторов или областей диска/памяти которые всегда свободны и не используются. В BIOS вы точно можете зашить ту или иную интру как скринсейвер после небольшой модификации кода.
Немного не в тему, но кмк небезынтересно было бы реализовать в виде демосцены нечто подобное (включая бесконечное генерирование музыки или напротив — генерирование анимации под произвольную музыку):
Animusic

Правильно писать «в виде демо». Демосцена (она моя) это название самой субкультуры, а не отдельной работы. Мы тут 10 лет назад пошутили так неудачно и теперь еще 10 лет будем переучивать всех обратно как правильно говорить и писать.

Ссылку я посмотрю отдельно.
Да, www.animusic.com очень интересная штука, надо с ним разбираться, что так к чему…
Я слежу за AniMusic с самого первого диска. Это вообще вещь в себе. ATi под свой Radeon тогда выпустила 3D демку «Pipe Dream»:

Сама демка пропала с их сайта после того, как их поглотили AMD, но она несложно ищется в гугле. К слову, она работает и на nVidia, только есть местами какие-то графические огрехи, например окантовка на тарелочках не золотистая а чёрная. Не знаю, с чем это связано, возможно даже вендор лок. Ролик выше как раз отрендерен на nVidia.
Для сравнения она же, но на Radeon



Так же Intel воплотили эту демку в железе. Ну, насколько это возможно физически.

Другой ракурс

С комментариями на английском:

Спасибо, не знал — поленился, видимо поискать физические реализации.
Эх, было же время, у Intel были ресурсы для таких, казалось бы, забав.
Интересно, а ссылка на Animusic была?
Сейчас можно было бы воплотить ролик Animusic про оркестр музыкальных инструментов а-ля гусли-самогуды, едущих по дорожкам и исполняющих композицию, добавив код в прошивку дронов на основе моноколёс.
Ну, это же не совсем забава была. Там же Atom не просто так упоминается. :)
казалось бы, забав
На самом деле, красивейшая демонстрация возможностей ИТ, когда (вместо откровенных свистелок и погремушек), основываясь на досконально проработанной физической модели демонстрируется нарочито игрушечная система. Просто, как BB-8.
BB-8
После такой инсталляции, как в интеловском видео, умный дом видится простым и логичным.
Про Atom подчитаю.
Когда-то статью о них читал — они вроде бы сначала описывают полную физическую модель, после чего реализация в любом виде уже не составляет проблемы.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.