СоХабр закрыт.

С 13.05.2019 изменения постов больше не отслеживаются, и новые посты не сохраняются.

H Wct, как тулза для демомейкинга в черновиках

Всем доброго времени суток!
Начну я этот топик, пожалуй, с этой картинки:

image

Хочу познакомить демомейкеров с такой тулзой, как Wct — «Wild Coding Tool», ну или же Word oCTal (на самом деле уже должно было быть Word hEX — Wex, но как-то не прижилось).


Начнём с объяснения значения слова «демосцена».

Демосцена — это субкультура и направление компьютерного искусства, главной особенностью которого является выстраивание сюжетного видеоряда, создаваемого в реальном времени компьютером, по принципу работы компьютерных игр. Таким образом, демо является симбиозом программирования и искусства. Демосцена — киберкультура, существующая в Юзнете, Фидонете и Интернете.


А теперь, непосредственно, приступим к изучению Wct.

— Что это такое?
Это — система счисления, состоящая из 16-и букв, как и hex.

Wct — система счисления, которая состоит из 16-и символов (A B C D E F G H I J K L M N P O), притом «O» здесь идёт после «P».

В основном используется для программирования в машинных кодах, для написания хакерских и мелких программ (под DOS легче писать программы), а также для хакинга. Но большие программы на Wct написать очень сложно.

Wct Editor — редактор машинных кодов на Wct (кроссплатформенный — для Windows & Linux). Весит около 10 кб. Большая скорость сборки программ (последний релиз Wct Editor позволяет собирать до 500 мб исходного кода в секунду. Я не думаю, что кто-то сможет на Wct написать такую большую программу, но всё же).


Я уже достаточно продолжительное время использую Wct как тулзу для кодинга (вместо ассемблера). Привык за месяц, кодить и быстрее, и удобнее. Почему не hex? Да потому что…

Цитирую сообщение моего приятеля.

Причина использования букв вместо цифр — в их лучшем запоминании. Но тогда система должна быть стройной — в данном случае CD проецируется в MN — это разумеется не случайность — т.е. асм позволняет писать фактически хексами, но для лучшего запоминания команд использует другие начертания для цифр. Но вообще идея писать хексами с удобным запоминанием интересна.


Ещё:

Плюсы в сторону WCT:
— Удобный редактор
— Высокая производительность
— Хорошая документация
— Онлайн-компилятор
— Библиотеки для работы с I/O,Files,Sockets
— Библиотеки для работы со строками/математикой
— Идеально подходит для изучения структуры машинного кода, архитектуры процессора.Хорош в целях обучения.
— Хорошо подходит для написания участков кода где скорость ОЧЕНЬ критична.

WCT в подавляющем количестве случаев нужен для того, чтобы понять как работает процессор, и для того, чтобы понять архитектуру ОС(системные вызовы, аппаратные прерывания итп).МОЖЕТ пригодиться тем, кто занимается reverse engineering-ом и системным программистам
Еще 1 плюс WCT — с него легко перепрыгнуть на чистый HEX
Читать машинный код для чела, который знает WCT будет как 2 байта переслать


Да, у Wct реально много плюсов и отличий от hex-a. Но сейчас о другом.

Wct имеет билдер под Linux и Windows, а также онлайн компилятор (о котором я расскажу позднее).
Сейчас я пишу демку под ZX-Spectrum на Wct, после чего выложу в открытый доступ документацию по созданию демок на Wct для спектрума :-).

Я чуть не забыл про пример кода.

image

Шучу, это далеко не то, что я хотел показать.

Примеры:

1. «Hello, world» для Windows: КЛАЦ
2. «Hello, world» для DOS: КЛИК
3. Бутлоадер на Wct (выводит Wct One Love): ЖМЯК
4. «Матрица» на Wct (падающие букафки): ТУТ

Для многих кодинг на Wct может показаться таким:

image

Но на самом деле всё гораздо проще.

Для процессора i8086 есть специальная ТАБЛИЦА.
Для архитектуры x86 тоже есть ТАБЛИЦА

Если вы хотите посмотреть вышеприведённые примеры в действии, то просто вставьте исходный код в текстовое поле ОНЛАЙН КОМПИЛЯТОРА, и запустите…

image

Я пользуюсь Wct уже на протяжении года, и всем доволен. И Вам рекомендую. :-)
Так как кодить демы под спектрум на вцт не очень удобно, я пишу специальную тулзу для генерирования TRD образа с Wct кодом, непосредственно.

Также, присутствует таблица прерываний для биос-а — ЖМИ.

Бывало, писал я на Wct и не только под комплуктеры ваши…

image

Ах да, результат работы бутлоадера:

image

А также, хочу продемонстрировать скорость Wct:

image

На данный момент, вцт я использую для критических участков кода и для написания демки. И вам рекомендую!

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



Я не знаю, какое кол-во народа, сидящего на Хабре знает о демосцене, но я рискну и выложу эту статью.

Спасибо за то, что осилили этот текст.
Если аудитория Хабра одобрит Wct и захочет попробовать его — пожалуйста, отпишитесь в комментариях, тогда я и туториал по кодингу демы для спектрума выложить рад буду.
Если есть какие-либо вопросы, пишите в комментариях, я отвечу!


В скором времени выложу интерпретатор Wct и глобальное обновление компилятора, включающее в себя кучу плюшек.
Всем хорошего кода и отличного настроения! Пока-пока!

image

комментарии (6)

+3
mwizard ,  
image
+2
mwizard ,  
вцт я использую для критических участков кода
Пожалуйста, продемонстрируйте, как вы встраиваете «wct» во что-либо другое. Линковка с объектным файлом, или инлайны в стиле паскаля, или альтернатива __asm dd.

Ваши программы всегда работают верно с первого раза, поэтому вы их не отлаживаете? Как отладить программу на «wct»?
+1
mwizard ,  
Вы утверждаете, что год пишете на «wct», всем довольны. Пожалуйста, выложите коды того, что вы за этот год написали, потому что в «примерах» у вас сплошные хеллоуворлды и прощая примитивщина. Я надеюсь, что исходники у вас не закрыты NDA?
+4
mwizard ,   * (был изменён)
Вот это — github.com/Mihip/Wct/blob/master/source/linux/source.wct — после приведения в бинарный вид, утверждает, что оно на самом деле запаковано UPX. Вы писали его на «wct» сразу запакованным? Зачем вы заменили «UPX!» на «WCT!»?
+3
olegkrasnov ,  
Чем оно лучше ассемблера?
0
pfemidi ,  
— Гоги, кто лучше, грузины или армяне?
— Грузины!
— А чем?
— Чем армяне!


Вот wct наверное этим же и лучше, чем ассемблер. В ассемблере хоть по-человечески всё, понятно, а тут очередной brainfuck, только с x86 не переносимый никуда.