ACNews #59
02 ноября 2005

Новости - John Silver переехал в собственную квартиру. Сейчас я копаюсь в старых бумагах, пытаюсь восстановить цепь событий.

<b>Новости</b> - John Silver переехал в собственную квартиру. Сейчас я копаюсь в старых бумагах, пытаюсь восстановить цепь
событий.
                            Новости
                        by Alone Coder

Дома сломался компьютер, а чинить пока некогда. Пишу на работе,
чтобы не связываться с ноутбуками.

Новостей было очень много, все не опишешь. Так что в двух
словах, а остальное в другой раз.

Студия переживает не лучшие времена. "Волшебный Мир" отделился
от нас. Ушли старые директора (Владимир Денисов, Нина Абрамова,
Алексей Пятшев ). Сейчас студией руководитВладимир Иванов с
видеонаправления. Новый набор на киностудию провалился. С одной
девочкой, которая пришла на моё направление ( "2D анимация и
демосцена" ) мы пока рисуем комиксы. 3D направление закрыли 
из-за отсутствия слушателей. На общее собрание киностудии
приходилLdir и хотел вести лекции - он владеет Blender'ом - но
организовать лекции не удалось.

John Silver переехал в собственную квартиру (которую он получил
по линии ВДВ) и собирается вернуться к написанию музыки. Я тоже
написал пару паттернов на студии - показывал студентам, как это
делается. Ещё перевожу музыкуАртёма Чаузова с MIDI на AY - для
графической новеллы Rusted Souls, которую пишут ребята (в
основномArwald, Маша Любчак uLouisa ).John Silver uKarbofos
спрашивали по поводу VST-плагинов, реализующих AY и TFM со всеми
настройками и ограничениями, чтобы можно было сочинять музыку с
удобством, а потом в случае чего можно было копипастить в
спектрумовские трекеры. Я спросил на эту темуtrue-grue (автора
известного AY движка), он готов консультировать любого, кто
готов взяться. Кто готов?

KSA-7G занимается только ремонтом, Спектрумом сейчас не
интересуется.

T(c)S'а не видел уже год. Насколько известно, он продолжает
ремонтировать сотовые телефоны, найти его можно только на работе
в фирме "Сотамастер".

Crutch переехал на новый адрес (купил квартиру). Очень сильно
похудел.

Dissonator'а иногда можно встретить на улице. Вроде бы он чем-то
торгует.

Cyberdemon'а никто давно не видел.

Hippiman успешно работает над расширением возможностей EvoSDK.

NedoPC собирались в начале октября на дачеKOE, но я пропустил
это событие.KOE купил машину, научился водить, а заодно нашёл и
исправил глюк в эмуляторе ВГ93, из-за которого не работали
некоторые номера ZX-Format.

Максагор со свежими силами вернулся к спектрумовским делам и
снова стал обновлять сайт про АТМ Турбо.

Из мировых новостей:

Олег Чередниченко реализовал Boulder Dash под 48K на Обероне.

Destr пишет ЗD-игру под 48K.

Screw/OHG разрабатывает мощную среду отладки на базе
UnrealSpeccy. 

Einar Saukas поддержал в своём графическом движке NIRVANA+ мой
мультиколоршириной 32 знакоместа.

Проект Орфовики переехал на доменорфография.орг (сервер
Slaven'а ).

                             * * *

Последние дни сыпались вопросы о том, как скомпилировать
исходники WolfЧ8 под кросс-ассемблером.
В этих исходниках есть две основные проблемы: первая -
использование параметрических меток типаlabel1 в макросах,
вторая - конвертор текстур, написанный на ассемблере (он
запускается до сохранения).

Я решил покончить с этими вопросами кардинально.

Для первого пункта я написал маленькую утилиту-препроцессор
AsmPre (http://alonecoder.nedopc.com/zx/asmpre.zip ). 
Она реализует макросы следующего вида:
#macro <name>
(начать определение макроса)
#endmacro
(закончить определение макроса)
#usemacro <name> <parO>,<par1>,<par2>...
(использовать макрос с параметрами)
Параметры в макросе - как в ALASM. Макросы могут быть
вложенными.

Второй пункт можно обойти с помощью UnrealSpeccy v0.37.1CFIX
(http://alonecoder.nedopc.com/zx/USOЗ71FIXSRC.rar ). Кроме
автоматической периодической подгрузки заданного файла в память
(ключ-c filename ) она умеет автоматически периодически же
выгружать заданный файл с заданного адреса (ключ-sPPAAAA
filename , длина берётся с первых двух ячеек по этому адресу,
дальше лежать сами данные) и при наличии этого ключа
вываливаться поDI:HALT. Таким образом можно обрабатывать данные
процедурами на ассемблере и использовать их результат в
линковке.

                             * * *

Сейчас я копаюсь в старых бумагах, пытаюсь восстановить цепь
событий.
Бумаги представляют собой причудливую смесь кода, музыки,
рисунков и мультиков на полях, схем железа и
школьных-институтских уроков. Некоторые записи находятся прямо
на школьных тетрадках и дневниках!

Самая первая сохранившаяся запись по Спектруму относится к
магнитофонному периоду (то есть самое позднее 1993 год), но уже
с попыткой дизассемблирования какой-то программы. Других
спектрумовских записей магнитофонного периода не сохранилось, а
катушки и кассеты утеряны. Из тех времён осталась только
дисковая версия iS-Chess 48 совместно с отцом, датированная 1993
годом (см. ZX-Pilot #41 ), и редактор анимации Animator на
бейсике (см. ACNews #53 ).

Если происходящее с 1999 года датировать нет особых проблем (я
же публиковал дневник в ZX-Guide ), то с более седыми
древностями приходится работать по методам Шерлока Холмса.
На большинстве бумажек нет никаких дат, но можно определить год
по датам релизов Font editor'а (по одной из записей, он писался
с декабря 1995 года по 18.01.96) и Sapper'96 (12.12.96) - ведь
известен же порядок исходников на дисках с исходниками. Ещё
можно сопоставлять упоминания игр и даты в моих дисковых версиях
этих игр. Можно смотреть обложки тетрадок. Можно в конце концов
сравнивать с другими бумажками, где есть записи на те же темы.

Тем более, в те времена у меня было такое развлечение -
раскладывать год (например, 1995) по цифрам и с помощью
математических операций составлять из этих цифр разные числа.
Идея была взята из журнала "Наука и жизнь", и я надеялся
поучаствовать в конкурсе, но не знал, проводится ли он ещё. Как
датировать такие вещи? Логично предположить, что текущий год
раскладывают в его начале или в конце предыдущего (иначе можно
опоздать на публикацию в журнале). Например, разложение 1996
находится в записях по Font editor'у (декабрь 1995 - январь
1996), и разложение 1995 можно искать в декабре 1994 - январе
1995.

И вот на этой границе 1994-1995 (если дата определена правильно)
возникает огромный всплеск материала. Видимо, именно этой зимой
я познакомился с товарищемNick'ом из соседнего двора (он же
Вундик, он жеКоля Медведев ), увидел у него демы и стал
пытаться писать свои.
Он сам в то время писал игру-драку, которую впоследствии
выставил на конкурс хакеров и потом благополучно стёр.

Я же до этого занимался аналогом Supercode, плавно переходящим в
проект графического редактора (а вылился он в конечном счёте в
Font editor ), русификацией Masterfile, написанием всякой ерунды 
на бейсике, рисованием шрифтов и т.п.
А мой круг спектрумовских знакомств ограничивался пятью юзерами
в подъезде, из которых только один писал на бейсике, и одной
попыткой отослать тот самый редактор анимации на городской
конкурс. Ещё у отца были какие-то знакомые, от которых он брал
софт. Но на конкурс хакеров, наАлексея Бугрова (он писал
ассемблер) и на хакераВячеслава Михеева (и всюSTR group ) я
вышел именно черезNick'а. (Следующим этапом набора закомств
была школа программистов при радиоинституте, но это уже конец
1996 года.)

Интересно, что пока я тусовался сNick'ом, у меня сменился даже
стиль рисунков (а он очень хорошо прослеживается и датируется по
обложкам дневников) - возможно, потому, что мать уNick'а
рисовала и я это видел.

И вот благодаря всем этим признакам, а также используемым
чернилам, стилям оформления исходников и эмблемам, удалось
восстановить некоторые даты.
Например, вот как выглядит история изучения мультиколоров:

1994-1995:первый анализ мультиколоров 1x8 и 2x8 - лист содержит
графредактор, шрифт на бордере, эмблему B&Б, идею арканоида,
Multicolor через LDI:POP DE:PUSH DE
1994-1995:Multicolor шириной 14 знакомест (LDI:LD E,A) - лист
"Yamaha+IBM is very big shit"
1994-1995:анализ ширины мультиколоров (LDIR 10, LDI 14, LD
(HL),n 16) - лист содержит эффект wave, меню графредактора,
русификацию токенов бейсика
1995:Multicolor шириной 16 знакомест (LD (HL),n) - для
мультиколорного редактора 16x192, который не был написан
1995:анализ ширины мультиколоров, уже нет варианта LDI, зато
есть LD (HL),n, POP HL:LD (),HL и LD:PUSH - лист содержит шрифт
3x3 и паузы для бордера
1996:полная программа Multicolor шириной 16 знакомест (уже POP
HL:LD (),HL) - на листе также вертикальный скролл, сапёр и
пентамино
лето 1996:Multicolor шириной 20 знакомест (LD:PUSH)
конец 1996:TMC12 (мультиколор 4x8 на 48К во весь экран, начало
экрана около 1ЧЗxx такта) - лежит на дисках между исходниками
сапёра
конец 1996:эффект RADUGA, впоследствии скринсейвер к ACEdit
(тогда ещё сплошными цветами и тоже под 1ЧЗxx) - лежит там же
июль 1997:T2ЧMC (Multicolor шириной 24 знакоместа, нерабочий)
30-31 июля 1997:MC24.a (Multicolor шириной 24 знакоместа,
рабочий) - набран позже, уже в MASM.

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

Зато положительный эффект от такой работы - можно видеть все эти
старые идеи и попробовать реализовать их на новом уровне. Пару
примеров вы уже могли видеть в последнее время - Self Printing
Greets(22.09.15) и режимR-Mode в конверторе Con18(11.09.15). 

Как, не видели? :)
Ищите наhttp://alonecoder.nedopc.com/zx/ .

Self Printing Greets - 32-байтное интро, которое выросло из 
одной мелкой заметки про ASCII coding в бумажках. Идея была в
том, чтобы писать программу, ограничиваясь только символами
ASCII, где в основном команды типаLD регистр,регистр.
Разумеется, за счёт вычисления заданных байтов и патча заданных
локаций можно получить и другие команды, но количество
каких-нибудь круглых скобок и запятых (и прочих символов,
которыми можно производить хоть какую-то математику) превысит
все допустимые пределы, и текст совсем не будет выглядеть как
текст. Поэтому в этой 32-байтной интре патчится всего один байт.

R-Mode - потомок одного из программных видеорежимов из списка в
ZX-Guide #2. Как, тоже не читали? :) А ведь некоторые 
перечисленные там до сих пор не использовались в софте :)

Искомый режим там называется"16 COL 128x96/2 (RGBW)" - и это
опечатка, которую надо будет исправить, так как имелось в виду,
конечно,256x96. С этим режимом я развлекался на первом курсе,
просматривая картинки с MS-DOS-дисков в стандартной CGA палитре.
А на бумажках, которые я перебирал, осталась запись, как я
просилЮру Свиридова найти и наконвертировать мне такие
картинки.

Как видно, этот режим предполагает наличие 2 экранов. На одном
кадре чередуются строки двух каких-либо цветов на чёрном фоне
(например, белые и синие), на другом двух других цветов, тоже на
чёрном фоне (например, зелёные и красные). Итого 4 цветовых
слоя. В итоге можно получить любой цвет в любом месте без особых
затрат процессорного времени. Вообще практически без затрат -
надо только заполнять атрибуты и щёлкать портом. Но картинка
получается очень тёмная.

А что такоеR-Mode? Это то же самое, только вместо красного,
зелёного и синего цветовых слоёв используются автоматически
подобранные атрибуты. Цвета получаются ярче и сочнее. Казалось
бы, теряем самое вкусное - цвет на точку. Но не совсем!
Поскольку белый слой остался нетронутым, мы всё ещё можем
накладывать на картинку чёрно-белые спрайты. Более того,
поскольку все атрибуты имеют чёрный фон, то яркость картинки
можно плавно уводить в чёрный, используя штриховку.

Не буду расписывать алгоритм расчёта атрибутов, он близок к
перебору в лоб. Скажу только, что в конце концов я ограничился
такими значениями атрибутов по слоям:
;0: G/M/C - низ(нечет)
;1: R/C/M - низ(нечет)
;2: B/Y - верх(чёт)
;3: W - верх(чёт)
Такие ограничения позволяют заливать половину атрибутов с
помощьюPUSH:PUSH:PUSH... в верхнем бордере - успевает даже на
фирменных машинах.

Картинка получается сравнимая по качеству сMCX, но при этом не
требует столько памяти и процессорного времени



Другие статьи номера:

Новости - John Silver переехал в собственную квартиру. Сейчас я копаюсь в старых бумагах, пытаюсь восстановить цепь событий.

Волшебный Мир 2015 - отчет с фестиваля комиксов "Волшебный Мир 2015".

Увеличение памяти под код в EvoSDK - как расширить область памяти кода до очень больших объёмов.

Управление флаговым регистром - Управление флаговым регистром в процессоре Z80.

Скрипт с 4-битными командами - скриптование в стиле форт-команд.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Pussy - анонс новой игры от Fatality.
Новичку - новая информация по ассемблерам.
Игрушки - MIDNIGHT RESISTANCE.
Перспектива - "Hellraizer" (по мотивам книги А.Нортона "Королева Солнца").
Анализ сноведений - что такое сознательный и подсознательный творческий процесс? Собствено чем отличается сон от бодроствования?

В этот день...   27 апреля