Два слова о процедурной графике

Среди многочисленных демосценерских конкурсов, которые традиционно входят в программу различных demo party, незаслуженно недооценённым, на мой взгляд, является конкурс процедурной графики (procedural graphics). Смысл этого специфического вида компьютерного творчества — формирование статичного изображения при помощи короткой программы. Стандартные ограничения на размер — 4кб, 1кб, 256 байт.

Связана недооценка, думаю, с тем, что конкурс одновременно не вполне понятен как тем, кто любит демки (поскольку процедурная графика статична), так и тем, кто любит картинки (т.к. процедурная графика не позволяет нарисовать что хочешь). И всё же, его популярность хоть и медленно, но растёт.

Читать дальше →

Принципы кодирования инструкций Intel x86(-64) или "ехал префикс через префикс"

Введение

С давних пор меня интересовало то как процессоры Intel x86 кодируют свои инструкции.
Будучи в детстве владельцем клона ZX Spectrum я уже тогда сталкивался с таблицами кодов инструкций его процессора Z80, как например тут: clrhome.org/table/
В таком виде очень хорошо просматривается принцип кодирования этих инструкций — наглядно видно как они упорядочены и по каким битам раскиданы.
Но вот для x86 таких таблиц как то не удавалось найти, а то как эти коды пояснялись в руководствах от самого Intel было несистематизировано и поэтому не воспринималось.
Однако пару месяцев назад я наконец то наткнулся на табличный вид однобайтовых инструкций от i8086 до i386, поразглядывал его и проникся тем что тут и как кодируется.
Более того — в процессе этого обзорного ознакомления я проникся еще тем как эволюционировала система команд x86 с поколениями процессоров и решил вкратце эти вехи законспектировать тут. Это ни в коем случае не полное справочное руководство, но скорее обзорное знакомство вместе с историческим экскурсом которое возможно поможет кому то быстро понять основные принципы кодирования инструкций x86 перед более углубленным изучением по таблицам.

Читать дальше →

Мой виртуальный 16-битный "компьютер мечты" - SimpX

Исходники: github.com/aa-dav/SimpX
Онлайн-версия: aa-dav.github.io/ (первая загрузка будет долгой, но потом закешируется)
В веб-версии рекомендую сразу нажать меню View->Set 400% чтобы выправить соотношение сторон.
Выбираем в левом списке редактора файлы test0x.asm и нажимаем меню Emulator->Compile and run чтобы увидеть результат.
Если активирована не английская раскладка клавиатуры — ввод с кнопок может не работать (это важно для последних тестов).
Так же еще замечу, что в веб-версии в коде могут некорректно отображаться табуляции — это некритично и вызвано разным отношениям к пикселям в среде Qt в stand-alone и wasm вариантах. В stand-alone всё визуально корректно.
Описание процессора — Simpleton (4) и его ассемблера уже было.

Читать дальше →

Музей Яндекса продолжает серию вебинаров о творчестве на ретрокомпьютерах (выпуск 6)

На прошлой неделе мы говорили про маппинг и визуальные эффекты на его основе. Разобрали алгоритм полёта по тоннелю и реализовали его в программном коде. Запись вебинара можно посмотреть здесь.

В следующем, шестом вебинаре мы продолжим эту тему: разберём несколько программных трюков, позволяющих увеличить цветовые возможности и плавность эффекта, сократить расход памяти и создавать таблицы маппинга без использования математических формул. Узнаем, какие ещё эффекты можно создавать на основе описанного метода. Вебинар проведут Олег Сенин (bfox ) и Александр Солодков (TmK ) — программисты, художники, музыканты на различных ретроплатформах.

Ждём всех 21 мая в 19:00 по московскому времени. Участие бесплатное, пожалуйста, зарегистрируйтесь заранее по ссылке. Трансляцию вебинара можно будет посмотреть на youtube.

Практика

А чтобы материал не остался теорией, мы приглашаем проверить свои силы, приняв участие в конкурсной программе фестиваля «Демодуляция 2020», который состоится осенью. Мы понимаем, что для создания чего-то впечатляющего нужно время, поэтому приём работ уже открыт. Более подробно о правилах конкурсов можно прочитать на нашем сайте.