Русский
Русский
English
Статистика
Реклама

Zx spectrum

Пётр Соболев Мы просто смотрели, как что-то там летает, и тащились от того, как это сделано

16.09.2020 20:14:52 | Автор: admin


Демосцена разновидность творчества на стыке компьютерной графики, музыки и, собственно, программирования, а также сложившаяся вокруг него субкультура. Первые демоэксперименты относятся к 1980-м времени, когда в Европе и США появилось достаточное количество домашних компьютеров, обладатели которых стремились заставить машину выполнять несвойственные ей задачи. Обычно это были короткие интро к взломанным компьютерным играм, созданные на Commodore 64, Amiga, ZX Spectrum. Расцвет демосцены пришелся на 1990-е, тогда же она пришла и в Россию.

Пётр Соболев, также известный как frog, один из организаторов компьютерного фестиваля ENLiGHT первой в России демопати. В первой части интервью музейному проекту DataArt он вспоминает компьютеры 1980-х и рассказывает, как в нашей стране появились первые интро и демо.

Начало


Я родился в Ленинграде в 1973-м. Мать и отец были инженерами-конструкторами в оборонке. В детстве я увлекался всякими железками, что-то паял по мелочи какие-то простые схемы. Семья никакого отношения к вычислительной технике не имела, но в середине 1980-х в СССР возникла идея, что надо форсировать все, что связано с ЭВМ, и внедрять на производстве. У отца на заводе тоже стали этим заниматься. Закупили ЭВМ Искра 226 аналог Wang 2200, что-то среднее между домашней и профессиональной машиной. Она на микропроцессорных секциях собрана, такая специфическая архитектура, не похожая ни на что, в качестве основного языка там был Бейсик. Отец стал в этом участвовать, потому что на заводе в вычислительной технике никто не разбирался и любой, кто проявлял инициативу, мог взяться за это дело.


Искра 226 машина вычислительная электронная клавишная программоуправляемая, разработанная на Ленинградском электромеханическом заводе. Из коллекции Музея вычислительной техники в Москве

Он стал приносить домой какие-то книжки, пытался что-то изучать. Насколько я помню, разбирался он в основном с базами данных. По сути, Искра 226 офисный компьютер, на предприятии использовался преимущественно в отделе кадров и для других подобных целей.


Справочное руководство для специалистов и всех желающих использовать в своей деятельности возможности программно-управляемых ЭВМ, 1988 г.

Помню, в середине 80-х отец принес домой здоровенную распечатку по R-Base. Тогда это была достаточно популярная СУБД. В какой-то момент он позвал меня на завод, посмотреть на компьютеры. Но я интереса не проявил.

На тот момент я уже почитывал всякие книжки, в общих чертах представлял, что такое компьютер. Даже пытался что-то паять по публикациям во всяких журналах. Но для себя решил: стану разбираться с компьютерами, только когда они будут у меня в свободном доступе. Раз в полгода куда-то ехать и дразнить себя не хотелось.

Недокументированные возможности


Следующим этапом моего знакомства с вычислительной техникой стали микрокалькуляторы. Шел где-то 1986-й год. Мне купили МК-54. Базовых программируемых калькуляторов в середине 80-х в СССР было два Б3-21 и Б3-34. На тот момент ни тот, ни другой уже не продавался. МК-54, что мы купили, был совместим с Б3-34.


Демонстрация работы программируемого микрокалькулятора Электроника МК-54

Надо сказать, что у Б3-21 и Б3-34 разные системы команд, разная архитектура, а все книжки, которые мне попадались, были, к сожалению, про Б3-21. Это стало большой проблемой, потому что программирование для калькуляторов было, по сути, в машинных кодах. Ты некие значки вводишь, получается программа длиной, допустим, 100 команд. Она какие-то расчеты производила, или можно было сделать простую игру типа крестиков-ноликов, где тебе выдается номер поля, в которое ты мысленно или прямо на бумаге ставишь крестик, а в какое нолик. Всё очень примитивно. Индикатор цифровой, никаких букв. Ну и никакой интерактивности в процессе работы программы.

В 1986-1987 гг. в журнале Техника молодежи начала публиковаться серия рассказов Михаила Пухова смесь научной фантастики и программ для калькулятора, чтобы читатель мог сам что-то запустить и попробовать. К примеру, посадка на Луну: вводишь цифрами тягу, направление, нажимаешь пуск, калькулятор считает и показывает, сколько осталось до поверхности. Сейчас это звучит смешно, а тогда было очень необычно и интересно.


Коллекционер и историк вычислительной техники Сергей Фролов рассказывает, как читатели с помощью микрокалькуляторов участвовали в игре через журнал. Из интервью Музейному проекту DataArt

Затем был куплен следующий калькулятор МК-61. Тогда это было целой проблемой из-за дефицита. Даже если есть деньги, ты не мог пойти в магазин и приобрести, что хочешь. Надо было ждать, искать. В какой-то момент мне повезло: зашли в Электронику на Гагарина единственный большой магазин такой тематики в Питере и купили этот калькулятор. Он был немного получше старого, на нем шло больше программ.


Магазин-салон Электроника на проспекте Гагарина в Ленинграде был еще и важным местом встречи радиолюбителей с перекупщиками деталей. Источник фото

В упомянутом цикле статей, кроме простых историй типа посадки на Луну, начали публиковать еще всякие интересные вещи: как повесить этот калькулятор, как сделать, чтобы у него погас индикатор, чтобы он выводил не только цифры, но и какие-то отдельные буквы. Словом то, что сейчас называется хак, хотя тогда таких слов не было. Говорили недокументированные возможности. Это было очень интересно добиться от машинки того, чего она, по идее, уметь не должна. Всем этим я интенсивно занимался.

Параллельно появилась еще одна тема. В журналах Радио, Моделист-конструктор, Юный техник стали публиковать статьи по сборке самодельных компьютеров. Выбор был не очень большой. В Юном технике, по-моему, о Микро-80 рассказывали. Помню точно, что была серия статей про какой-то модульный компьютер, где ты сначала собираешь что-то без подключения к телевизору, с индикатором простым и несколькими кнопками. Затем контроллер монитора, потом еще что-то. Там была нужна куча микросхем собрать это было для меня совсем нереально. В журнале Радио публиковалось описание Радио-86РК, со схемой попроще, но там было не достать микросхему контроллера дисплея 580ВГ75 тоже дефицит. Все остальное пожалуйста, а вот ее нет.


Тестовый образец персонального компьютера Радио-86РК, предназначенного для сборки радиолюбителями, из коллекции DataArt

Чуть позже, в журнале Моделист-конструктор стала публиковаться схема компьютера Специалист. Еще выходил профессиональный журнал Микропроцессорные средства и системы, уже не для радиолюбителей. Там печатали схему ещё одной ЭВМ Ириша более серьезной, чем вышеупомянутые. Как и предыдущие, она была основана на микропроцессоре 580ИК80, аналоге Intel 8080. Возможности впечатляли, но машина была очень сложная, с кучей микросхем, в том числе, редких.

В условиях дефицита


Еще один интересный момент. В то время каждое предприятие считало своим долгом изобрести собственный компьютер. Сейчас это кажется глупым, все думают о совместимости. Если соберешь свой компьютер, что будешь на нем запускать? Тогда этот вопрос не стоял, потому что программ не было никаких. Если соберешь и хорошо работает ты молодец. Отец приносил схему ЮКУ (Juku эстонский компьютер. Прим. ред.). Я пытался искать, что это вообще такое никаких следов. Тоже на 580ИК80, схема достаточно простая. Мне приносили платы, я пытался паять, но быстро забросил, потому что радиолюбитель из меня никакой. Что-то простое паял, но собрать компьютер, тем более редкий и непонятный конечно, не мог.


Juku E5101 персональный компьютер, производившийся на заводе Балтиец в Нарве в 19881991 гг. Из коллекции эстонского Музея компьютерной техники

Тогда было как? Допустим, увидел в журнале какую-то схему неважно, компьютера или, например, усилителя. Хочешь ее собрать. Сейчас это достаточно просто. Ты можешь пойти в магазин и купить все необходимые элементы. Тогда это было невозможно. По списку этих элементов купишь треть, остальные надо искать, заказывать, долго ждать. Желание теряется. Кто-то этим занимался, конечно. Основной источник радиокомпонентов люди, выносившие их с предприятий. Это было воровство по большому счету, но фактически им занимались все, поскольку всё было государственное типа общее. Все считали, что это их. Практически узаконенная штука. Это касалось не только радиокомпонентов всего. Все понимали, что, если этот процесс резко остановить, многие важные вещи просто станут недоступны. К тому же, люди на их сборке занимались самообразованием. Фактически, предприятия закрывали глаза на то, что на их ресурсах граждане что-то делают для себя. Ну а граждане получали навыки, которые потом могли использовать и на производстве.

Соответственно, периодически что-то появлялось и у меня дома: какие-то светодиоды, транзисторы, конденсаторы. Из-за специфики работы практически все было из ВПК. Приходилось придумывать, как ими заменять ширпотреб, который использовался в схемах публикуемых в журналах. Военка такие транзисторы или микросхемы не использовала, потому что они ненадежные и не пройдут никакие приемки.

Потом, в какой-то момент, началась тема со Спектрумами, и она, конечно, многих вдохновила. Идея была такая: в отличие от всех этих устройств Радио-86РК, Специалиста и прочего, здесь, собрав компьютер, ты сразу получал доступ к уже написанным за рубежом программам. Их было много, это очень большой плюс. Потому что для Радио-86РК, самого популярного тогда компьютера, на начальном этапе был доступен может десяток или два программ это ни о чем. А здесь цветной компьютер, сразу игры все, что хочешь. Поначалу, конечно, это все тоже было проблематично. Надо было искать компоненты, из которых самым дефицитным был Z80, поскольку импорт.


Плата ZX Spectrum-совместимого компьютера такую же спаял и использовал прямо без корпуса Пётр Соболев. Источник фото

Информатика в спортивной школе


Году в 87-м у нас в школе начались уроки информатики. Это последние два класса 10 и 11. Компьютеров в школе не было никаких. Максимум несколько калькуляторов. И на первом уроке нам просто рассказывали о Бейсике, а мы смотрели на доску и записывали в тетрадку операторы. Потом нас стали водить в соседнюю спортшколу на Брянцева, в которой стояли компьютеры Commodore 64. Достаточно необычная тема для СССР, потому что тогда в образовании использовались в основном отечественные Корветы, Агаты, либо закупались Ямахи MSX-2 по договорам с японцами.


Компьютер Commodore 64 поступил в продажу в августе 1982 года. За 12 лет было продано более 15 млн компьютеров

Мне повезло, эти Commodore 64 хорошие машины. По тем временам для нас просто верх. Отличные цветные мониторы, клавиатура, звук. Значительно лучше, чем в Спектруме, и уж тем более в Радио-86РК и прочих. Соответственно и игры, в большинстве своём, были лучше.


Скрин отладки ассемблерного кода

Нас привели в класс, посадили по два человека за каждый компьютер, включили. Там сразу Бейсик и мигает курсор. Помню, на первом уроке мы просто гоняли курсор по экрану и радовались. Нам показали, как менять цвет курсора. Это нас, конечно, заворожило. Думаю, если бы компьютеры были чёрно-белые, скорее всего, мы бы так не заинтересовались. Но вот этот приятный синий экран с курсором любого из 16 цветов, нас, конечно, привлёк.

Мы стали туда ходить, причем не только для официальных занятий информатикой, которые проводились раз в неделю. С приятелями заглядывали после уроков, а иногда даже прогуливали что-нибудь вроде физкультуры. Нас не были обязаны пускать но, по счастью, учителя в этой школе были понимающие. Марк Соломонович Сегаль, Елена Исааковна Лозинская и секретарь Елена Петровна всегда находили для нас места. Приходишь, открываешь дверь, видишь, что все занято и ждешь в коридоре, пока освободится комп.


Справка о посещении факультатива по информатике. Из личного архива Петра Соболева

Играли мы сравнительно мало. Во-первых, нам не давали. Потому что, когда идёт урок, и вдруг приходят какие-то люди и начинают играть это недопустимо ни с какой точки зрения. Мы занимались делом, пытались что-то изучать. Сначала Бейсик. Книжек о нем было всего две, обе на немецком языке. У нас в школе был английский, хотя мы и его, мягко говоря, не особо знали. Брали словарь, пытались что-то понять. Но обычный немецко-русский словарь не очень помогал. В книжке про компьютеры слова другие, тем более, что в немецком много составных. Пытались что-то менять в существующих программах, запускать и смотреть, на что повлияло. Не получилось меняешь что-то другое. Так постепенно обучались, без особого надзора со стороны учителей, которые сами в этих компьютерах не сильно разбирались. Они знали основы Бейсика, простую программу могли научить составить. Но скажем про графику или про звук не знали ничего. Марк Соломонович, вроде, когда-то работал на больших машинах, а это совершенно другая область.


Игра Ghost'n'Goblins, выпущенная в 1985 году для аркадных автоматов и позднее портированная на другие платформы, в том числе и Commodore 64

Когда народ уходил, но оставался кто-то из учителей, мы, бывало, играли. В Arkanoid, который очень качественно был сделан в плане звука и графики. Я его потом много на каких машинах видел, могу сравнивать. Была игра Ghost'n'Goblins, где чувак ходил по кладбищу с привидениями. В трехмерной игре Driller надо было разбираться, куда пойти, что сделать, куда выстрелить, чтобы что-то переключилось и открылось. Типа квеста. Помню, мы рисовали карты на листах А4. Поскольку эта игра к нам не в коробке попала, а просто в виде файла, мы вообще не понимали смысл того, что там происходит. Когда нарисовали, и увидели додекаэдр, поняли, что это вроде планета какая-то. Ещё хорошая игра была Cauldron II: прыгал там такой колобок по комнаткам, где обитали привидения, всякие скелеты, и надо было что-то собирать. Стандартная игра тех времен. Сидели, разбирались, тоже рисовали карты. Играм и чему-то серьезному мы, наверное, 50 на 50 уделяли внимание.


Инструкция, как пропатчить код игры DRILLER, оставленная одним изнас вшколе наБрянцева ($EA инструкция NOP процессора 6502). Пётр Соболев

Лаборант


С институтом в те годы тема была очень чёткая. Ты либо идёшь учиться в институт, либо в армию. Сейчас армия не имеет такого негативного контекста, а тогда была перестройка, заговорили о дедовщине, и идти туда очень не хотелось. Знакомый как раз вернулся с подорванным здоровьем после того, как отслужил где-то в Коми, охраняя заключённых. Короче говоря, я записался на подготовительные курсы в Политех. В нашем классе все пытались туда поступить считалось, что из технических вузов он самый лучший.

Подготовительные экзамены я провалил. По физике попался 19-й билет (как сейчас помню), на который я не ответил. Пошел сдавать обычные экзамены с потоком и провалил еще раз мне попался тот же самый билет. Ну, естественно, я его не стал учить кому попадается один и тот же билет дважды! Оказалось, мне. Я пролетел, но по возрасту до армии оставался год. Пошёл работать лаборантом в ЛИТМО. Тогда он не был так известен, как сейчас. Обычный технический вуз, как ЛЭТИ, ЛИАП и многие другие. Лаборантом я стал на кафедре вычислительной техники. В мои обязанности входило подпаивать на стендах провода, которые со всей дури выдергивали студенты, и раз в месяц выносить мусор из аудитории. Дальше я мог заниматься, чем хочу.

В аудитории, в которой я работал, стояла Искра-1030. Такая советская PC/XT с 512 килобайтами памяти и зелёным монитором ужасного качества, от которого очень уставали глаза. Я на ней пытался что-то делать. В соседней аудитории через коридор стояли Искры 226, как у отца на работе. По сравнению с Искрой 1030, они были еще хуже. На этой можно хоть какие-то вещи запускать, для PC предназначенные. А там вообще ничего только Бейсик, по сути.


Рабочая среда Turbo Pascal 4.0

На Искре 1030 я что-то писал на Turbo Pascal 4.0. Это первый Turbo Pascal, где появилась более-менее нормальная среда с менюшками. Про игры там говорить тяжело, потому что на такой машине нормальные игры не работали. Какие-нибудь Xonix, Тетрис, с трудом Prince.

Потом в той же аудитории появился болгарский Правец 16. Это тоже PC/XT, но повыше уровнем. Там уже шли многие вещи, но монитор тоже был черно-белым.


Игра Commander Keen 4 на Правец 16

Рядом с нашей аудиторией была аудитория заведующего лабораторией, основная на кафедре. Там стояла PC AT 386SX/16 очень крутая машина по тем временам. На ней шли игры, была хорошая графика, правда памяти там было, вроде, всего 1 MB. Когда машина была свободна, без проблем можно было за ней сидеть. Преподаватели сотрудники кафедры, видели, что я чем-то интересуюсь, а не просто пришел поиграть и не возражали.

Домашние компьютеры


Была при этом параллельная история, которая началась чуть раньше, до института. В годы перестройки мы начали мириться с США, пошли общие темы, и многие пытались делать какой-то свой бизнес, хотя никакого представления о бизнесе у советских людей не было. Почитали, посмотрели фильмы и вперед. Друг нашей семьи открыл совместное предприятие с американцами. Контора называлась Вабог, потому что его звали Валерий Боголюбов. Под это дело ему из Америки привезли компьютер PC/AT 286. 640 килобайт памяти, 20 МГц тогда это было очень круто, тогда даже PC/XT 8 Мгц считалась серьезной машиной. Компьютер был с цветным монитором, правда, CGA. Приехало это всё в большом, окованном по краям железом, сундуке, который у меня до сих пор дома лежит и все, кто видят, спрашивают, что это такое. Поскольку наш друг понятия не имел, что с этим компьютером делать, а я тогда как раз всем этим увлекался, он нам его на время отдал.


Тот самый сундук

Компьютер стоял у меня дома. Там был DOS. Ты компьютер включаешь, с дискеты загружаешься. Мигает курсор, написано MS-DOS, версия 3.10 и всё. Текстовый режим, никакой графики. Сначала я пытался команды изучать, потом кто-то дал пару дисков с играми, тот же Turbo Pascal, что-то еще. Затем, когда этот компьютер унесли, к тому времени я уже окончил школу, домой купили Commodore 128. Это такая странная, даже по тем временам, машина попытка фирмы Commodore усидеть на двух стульях. С одной стороны, они старались не потерять любителей Commodore 64, которые очень любили игры их для 64 было много написано. С другой стороны, пытались влезть в бизнес, чтобы текстовые редакторы с 80 столбцами нормально работали. Электронные таблицы вот это вот всё. Забегая вперед, это им не удалось. Не они одни были такие умные. То есть, фактически, они в один компьютер запихали целиком схему Commodore 64 и рядом присобачили Z80 и еще один видеоконтроллер, который на другой монитор выводил 80x25 текст. Ну или 640x200 монохромную графику. Фактически, это был двухпроцессорный компьютер, в котором работать параллельно процессоры, конечно, не могли. Ты должен был выбирать. И два видеовыхода на два монитора.


Телевизионная реклама Commodore 128, 1985 г.

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

Впрочем, полезного я ничего сделал. Ни одной демки или интры ничего. Всё, что я тогда писал это какие-то полуфабрикаты. Допустим, я разобрался, как цветные полоски рисовать красивые и, удовлетворенный, делаю что-то другое. То есть, фактически, написание сводилось к тому, чтобы просто разобраться с какой-то темой. Спрайты там, например, или как шрифты перепрограммировать. Разобрался и всё. С Commodore 64 и 128 дело обстояло так. Более-менее что-то законченное я стал писать, уже на PC.

После Commodore 128 следующей домашней машиной была Нивка. Очень странная отечественная PC/XT для применения в промышленности. В тот момент уже всё загибалось конец перестройки, поэтому такие вещи было сравнительно легко купить они особо никому не были нужны.

Это была PC/XT, мегабайт памяти, 4,77 МГц-тактовая, 8086-й процессор (не 8088!), с цветным CGA монитором. Фишка была в том, что эта машина была в форм-факторе Full Tower. Я долго развлекался с этим компьютером, разгонял его. То ли кварц поменял, то ли перемычки переставил, сделал 8 или 10 МГц. При этом контроллер дисковода стал смешно выскакивать из кроватки. Видимо, нагревался. Там кроватки советские были, из них выскакивало всё при любом удобном случае. Нитками примотал заработало стабильно.

Рейтрейсинг


В институте кроме Правеца и 386SX появились и другие машинки. В мою учебную аудиторию поставили PC/AT 286 c EGA адаптером. Еще там был Amstrad PC1640 с монохромным EGA. Интересно, что эта PC/AT 286 с цветным EGA была югославской, причём в военном исполнении. Серьезная вещь. Металлический корпус очень грубый, с ребрами охлаждения, монитор соответствующий, обрезиненный со всех сторон. Если ударят, чтобы амортизировал. Неплохая была машинка. 16 МГц, по-моему.

В комнате заведующего лабораторией поставили еще две штуки PS/2 модель 50. Это были PC/AT 286, по-моему, около 20 МГц с шиной Micro Channel (MCA). Графика у этих машин была MCGA (MultiColor Graphics Adapter). Это такое VGA, только без высокого разрешения. Можно было выводить 320x200, 256 цветов. Точнее, в нашем случае, 64 градации серого, т.к. мониторы были чёрно-белые. На PS/2 мы впервые пробовали развлекаться рейтрейсингом обсчитывали всякие красивые стеклянные сферы, которые друг в друге отражаются и преломляются.

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

Тогда 3D пакеты типа, скажем, Maya, были только на дорогих и недоступных почти никому компьютерах типа Silicon Graphics. На PC же всё только начиналось. Обсчитать самому красивую картинку при помощи собственной программы это было круто и вполне адекватно.

Студент


После года работы лаборантом и развлечениями с компьютерами я решил, что логично поступить в тот же ЛИТМО. У ребят из моего класса, которые год отучились в Политехе, разговоры были только об учебе, ни о чем другом они даже думать не могли, что настораживало. Здесь тоже была не совсем халява, но поспокойнее. Поэтому я стал поступать в ЛИТМО на кафедру вычислительной техники, однако по баллам не прошел. Помню, пошел к замдекана, отвечавшего за приём. Взял с собой человека с нашей кафедры для авторитетности. Говорю: Я хочу на ВТ. Он показывает список: Это дочка одного, это сын другого. Извини, не могу!. В итоге я попал на только что созданную кафедру мехатроники, и процентов 60 людей на ней были вроде меня те, кто не прошел на ВТ.

Мехатроника это, грубо говоря, приборостроение, смесь электротехники, электроники и механики. Естественно, вычислительной техники там особо никакой не было. Было всякое ТОЭ, сопромат, конструирование, материаловедение По диплому я, в итоге, инженер-электромеханик. Что касается компьютеров, у нас были раз в несколько недель занятия по специальности прикладная математика на СМ-4. Стояла она в отдельной комнате за стеклом и мигала лампочками, как в фильмах. Очень модно. По другую сторону стекла стояли 6 терминалов с черно-зелёным текстом. Многопользовательская такая машина. Студенты пытались что-то вводить, но это была жесть. Чтобы написать программу, ты должен был запустить текстовый редактор. Он сколько-то запускается, у тебя появляется курсор. Вбиваешь эту программу, потом выходишь из редактора, запускаешь компилятор, линкер. При этом всё, как правило, периодически падает, ты начинаешь заново. Я там был один-два раза, потом понял, что больше не хочу. Романтики не ощутил совсем и стал думать, что делать.


ЭВМ СМ-4 с 1979 года выпускалась в СССР, Болгарии и Венгрии

Программы надо было писать на Фортране. Тогда это был достаточно популярный язык для вычислений. И я решил: пойду домой, сяду за нормальный PC (Нивку), напишу на Паскале. Там достаточно простой алгоритм задания. Потом распечатал результаты на принтере, взял книжку по Фортрану, полистал, посмотрел, какие там операторы есть. Взял программу на Паскале и поменял оператор на Фортрановский. Причем, я не понимал многих вещей. Например, что строки надо отделять в Фортране табами и так далее. В общем, заменил, чтобы похоже было. Распечатал результаты, пошел сдавать преподавателю. При этом не скрывал, что делал на PC. Тот посмотрел. Странно, говорит. Вроде на Фортране это не должно работать. Но результаты-то правильные! Прокатило. Такая была сдача зачета.


Университет ИТМО, Санкт-Петербург, переулок Гривцова. 2008 г.

Государство в государстве


ЛИТМО стал известен за счет парфёновской кафедры (В 1991 году по инициативе профессоров Парфёнова и Васильева в СПбГУ ИТМО начался проект по созданию системы для подготовки и трудоустройству одарённых школьников и студентов. Прим. ред.). Когда я поступал, ректором был Новиков. В последние годы моего обучения его сменил Васильев. Компьютеров у нас было очень мало, в учебном процессе их не задействовали вообще, кроме СМ-4. Парфёновская кафедра располагалась в подвале. Там отдельная дверь, в ней глазок с камерой. По тем временам прямо как банк иностранный. Однажды я туда пришел что-то забирать и был просто в шоке.


Основатели кафедры Компьютерные технологии: Владимир Васильев, Владимир Парфенов и Алексей Сигалов, на банкете выпускников ЛИТМО в 1990 г. Источник фото

ЛИТМО в те годы это ободранные стены, развалившийся местами паркет, старые двери, перекошенные окна. А заходишь на эту кафедру там ковровое покрытие, прозрачные перегородки, люди сидят за компьютерами PC с цветными мониторами. Такое вот эээ цифровое неравенство. Кафедра как государство в государстве. Но за счёт неё и других вещей Васильев вытянул ЛИТМО в известные вузы.

Знакомство с демосценой


В соседней школе, куда нас водили в детстве на Commodore 64, у учителей был некий набор программ. Среди них попадались такие, которые ни для чего не были предназначены просто показывали под музыку красивые графические эффекты. Мы иногда ставили и смотрели, поскольку прикольно. Но мы, конечно, не знали, что такое демосцена и демки. Сейчас все ходят в интернет, читают иностранную прессу, книги, смотрят новости а тогда этого не было. Об иностранной культуре мы практически не имели представления. Всё, что знали, из фильмов, которые проходили цензуру, то есть достаточно нейтральных. Тоже самое касалось и музыки. Поэтому для нас многие вещи были в новинку.
В последний год хождения в школе на Commodore 64 у нас стали заводиться знакомства с людьми, у которых этот компьютер стоял дома. В основном, это ребята, у кого родители ездили в загранку. Дальнобойщики, моряки люди, которые оказывались за границей и могли там что-то покупать. Было 3-4 человека, у которых оказался Commodore 64. Мы ездили к ним домой, обменивались софтом. Сетей нет, модемов нет. Просто приходишь с пачкой дискет (по 300 кб) и говоришь: У меня есть то-то и то-то. Давай посмотрим. Ставили в дисковод, смотрели: О, это мне интересно. Копируем. Были программы-копировщики. Запускаешь, она пишет: Вставьте диск исходный. Вставляешь: Вставьте диск, куда копировать. Так несколько раз. На копирование одного диска уходило минут 10.

Так постепенно у нас появлялось что-то новое. Тогда я познакомился с одним человеком Кириллом Антоновым, никнейм GhostRider. Не знаю, куда он исчез, много лет назад растворился в воздухе. У него был Commodore 64, при этом он более-менее знал английский язык и переписывался с иностранцами. Он установил контакты с некоторыми группами, которые чисто для души занимались написанием программ: музыка, графические эффекты какие-то. Кирилл им писал, они ему присылали диски. Тогда мы начали проникаться понятием демосцена.


Hello GhostRider! Письмо Кириллу Антонову из-за границы, написанное на конверте с дискетой, содержащей программы

Что нам попадало в руки? Во-первых, программы, где что-то красивое показывается на экране под музыку. Во-вторых, программы-журналы. Запускаешь diskmag (disk magazine Прим. ред.) как исполняемый файл. Тебе выводится меню. Там статьи, интервью. Заходишь, читаешь. Были еще noters тоже исполняемые файлы. Типа diskmag'ов, только из одной статьи. Как сейчас в архивах кладут README-файлы. Тогда их не было. На Commodore 64 текстовых файлов, как таковых, не было вообще. Потому что не было единого формата текста, который могли бы читать все программы. Включаешь компьютер у тебя один Бейсик, можешь только загрузить и запустить что-то. Поэтому все эти readme были в виде исполняемых файлов и это был большой плюс в плане возможностей самовыражения. Люди писали такой исполняемый readme, запускали. Текст мог появляться разными шрифтами, разными способами. Иногда он появлялся постепенно, как будто от пишущей машинки. Имитировалось стирание будто человек прямо при тебе пишет. И под музыку. Были noter'ы специальные, когда ты мог не только прочесть текст, но и написать ответ. Нажимаешь кнопочку, у тебя появляется курсор, и ты это все можешь писать сам. Потом нажимаешь другую кнопочку, делается копия исполняемого файла, только с твоим текстом. Можешь добавить музыку свою, если хочешь.

История интро и демо


Посмотрев на всё это, мы начали проникаться культурой демосцены. Демо это, говоря формально, объединенные сценарием графические эффекты с музыкой. Зарубежные авторы демо вдохновлялись фильмами, которых мы не знали. Например, Назад в будущее мы его тогда не смотрели, а у них о том, что это такое, знали все. Смотришь демку, там постоянные отсылки какие-то. То к музыкальной группе, то к герою фильма. В бегущей строке передают приветы кому-то, что-то упоминают. Ты читаешь и пытаешься понять, что они имели в виду.


Cracktro конца 1980-х (короткое интро, предваряющее взломанные игры) группы Xadez Society для Commodore 64

Важный момент: демки начались не внезапно. Сначала было популярно ломать игрушки. Тогда игры распространялись на дисках, диски были с защитой от копирования, поскольку их надо было продавать. С этой целью на диск могли нанести какое-то физическое повреждение, чтобы игра при запуске проверяла, есть ли оно и таким образом знать, оригинальный это диск или нет. Были и другие хитрости например, между дорожками писали. Пираты это дело ломали и рассказывали, кто это сделал. Сначала они просто писали в начале: сломано таким-то. Постепенно надпись стали улучшать. Сначала переливающуюся сделали, потом, чтобы она ехала. Ещё они передавали приветы или факи своим конкурентам другим пиратам, которые криво что-то сломали, или сделали это позже них. Постепенно это все вылилось в так называемое интро от английского Introduction. Такая маленькая демка из одной части. То есть, у тебя уже не просто надпись была, она переливалось по-всякому, по синусоиде летала, сверху логотип какой-нибудь прыгал. Ещё музыка играла в процессе.

Допустим, кто-то сломал игру, чтобы скопировать и нелегально распространить, потом кто-то следующий сделал в ней бесконечные жизни. Он тоже добавлял свое интро. Когда запускаешь такой диск, сначала одна интра показывается, потом другая, третья. До пяти бывало. В каждой команде были так называемые swapper'ы, которые занимались пересылкой дисков по почте. Таким вот образом это всё дошло до нас.


Cracktro 1990 года (короткое интро, предваряющее взломанную игру 3D International Tennis) группы IKARI для Commodore 64

Вопроса, зачем это делается, не возникало. Было очевидно, что это интересно. Ты сделал прикольную вещь, другие оценили. Потому что, если к тебе попал Commodore 64 в голом виде, без всего, только лишь со встроенным Бейсиком, ты ничего подобного не сделаешь даже близко. Надо писать на ассемблере, очень хорошо знать, как работает оборудование, как программировать видеочип, звуковой чип. Надо понимать, как все это оптимизировать и как запаковать в небольшой объем кода. Потому что, когда эти интры лепили к играм, сама игра ведь всё равно должна как-то влезать на диск и грузиться достаточно быстро.

Запаковывалась игра, к ней присобачивалась интра, тоже запакованная. Типа архивирования. При запуске интра распаковывала сначала себя, показывала. Потом ты нажимал пробел, она распаковывала игру или следующую интру. Использовалась вся доступная память, в том числе, экранная. Часто можно было видеть, как на экране что-то мельтешит, то есть, это код распаковывается прямо в экранную память. Это всё было очень необычно и интересно. Было видно, что каждый человек, который что-то делал, вложил часть своей души, потратил время, чтобы добиться цели какого-то эффекта, чего-то необычного. Он по-новому использовал оборудование, которое есть.

Со временем интро переродились в отдельные большие демки. Они состояли из нескольких частей. Запускаешь, тебе показывается какой-то эффект плазма или скролл бегающий. Нажимаешь пробел появляется следующая часть. Чтобы досмотреть одну часть до конца, надо несколько минут. Сейчас это вообще непонятно зачем. Динамики особой нет, с музыкой это тоже редко было связано она просто шла фоном. Но тогда этого было достаточно. Мы просто подолгу смотрели, как что-то там летает, и тащились от того, как это сделано.


Демо Red Storm группы Triad для Commodore 64

Помню, меня впечатлила демка Legoland группы Fairlight. Там была такая часть при помощи рейтрейсинга летали зеркальные шарики вокруг какого-то столба, с отражениями. Понятно, что на Commodore 64 этого сделать было нельзя, просто потому, что там процессор был 6502 1 МГц. Авторы же просто взяли более мощную машину Commodore Amiga, все это сделали покадрово, потом собрали такой мультик. Но тогда нам это было неочевидно, складывалось впечатление, что это реально происходит.


Демо Legoland группы Fairlight для Commodore 64

В некоторых работах скроллы текстовые были сделаны очень необычно. Тогда они были центром любой демки. Обычно внизу ползёт некий текст, а наверху что-то происходит. И ты как бы параллельно, чтобы не скучно было читать, еще смотришь на какого-нибудь бегающего вверху человечка. Эти скроллы были очень разнообразными. Переливались, буквы крутились по-всякому, волнисто искажались, были многоцветными, подпрыгивали. Это было настоящее искусство (в смысле, творчество).
Подробнее..

Пётр Соболев В отличие от анимации, демосцена подразумевает написание кода

24.09.2020 22:04:44 | Автор: admin


Во второй части интервью музейному проекту DataArt Пётр Соболев, также известный как frog организатор фестиваля ENLiGHT вспоминает историю европейской демосцены и первую российскую демопати в коммуналке, переделанной под офис Федерации шейпинга.

Напомним, что в первой части речь шла о компьютерах 1980-х и знакомстве с первыми интро и демо.

Частичка души


Полноценную демку я ни разу в жизни не написал. Несмотря на то, что очень этим увлекаюсь и фестиваль организовывал. Фактически все вещи, которые я делал, были интро. Первую написал в 1994-95 гг. в связи с тем, что мы организовывали в Питере ENLiGHT'95 первую в России (и странах бывшего СССР) демопати. Не скажу, что та интро что-то собой представляла заняла она то ли последнее, то ли предпоследнее место. Но я на самом деле не особо и старался просто хотел, чтобы моя работа была на фестивале. Там у меня в хитром видеорежиме имитировалось сражение процессоров Pentium и 6502. Типа они летят друг на друга, в итоге 6502 стоит с копьём над Pentium, и кровь стекает.


Титры той самой интро, в которой 6510 Победоносец поражает Pentium

Потом, позднее, я стал писать небольшие работы под различные старые платформы. Когда 1 килобайт размером, иногда 256 байт. Просто мне это интересно. Сейчас, когда ты пишешь какую-то программу неважно, для себя или по работе между тобой и железкой очень много слоев. Виртуальная машина, куча драйверов и упаковщиков, операционные системы. Тогда ты писал программу непосредственно под железо. Писал команду и знал, что она будет исполнена процессором именно так, как ты написал. Напишешь криво оно криво и будет работать. Напишешь правильно будет работать как надо, причём у всех одинаково.

Кроме того, раньше каждый процессор, каждая архитектура, каждый видеоконтроллер, любой компьютер имели некую индивидуальность. Тот же Commodore 64. Его люди делали не потому, что маркетинговый отдел им сказал, будто компьютер с таким процессором и таким программным обеспечением будет продаваться. Они просто решили: так будет правильно. Процессор 6502 выбрали, потому что могли позволить себе по деньгам. Сделали такой звук, потому что человек, который его разрабатывал, начинал с синтезаторов. Он хотел, чтобы в Commodore 64 были реализованы схожие возможности никто не давал ему распоряжений. В каждой такой платформе была частичка души разработчиков. Это очень чувствовалось.

Сейчас, когда ты пишешь под эту платформу, прямо проникаешься: здесь человек продумал, что надо так, а здесь он не смог, потому что ему не хватало регистров видеоконтроллера, грубо говоря. Устанавливается некая связь с людьми, которые когда-то в 70-х создавали это железо и ПО.


Интро No shaders размером 256 байт, созданная Петром Соболевым для игровой консоли 1977 года RCA II Studio. Заняла 4-е место в категории Tiny intro compo на фестивале СС2018

История демопати


Идею фестиваля мы подсмотрели за рубежом. В конце 80-х в Европе, в том числе Восточной, стали организовывать что-то типа copy party. Вот мы обменивались софтом, и то же самое делали они, только у них было гораздо больше людей и софта. Заодно пиво или что-нибудь покрепче. Постепенно на таких копипати стали возникать идеи: Давайте мы не просто соберемся и что-нибудь скопируем, а еще покажем, что умеем, что сделали сами. Стали приносить и показывать свои интро и демки. За пару лет это вылилось в то, что теперь называется демопати. То есть люди уже целенаправленно собирались в каком-то зале, показывали, кто что принес, кто что написал. Оценивали и восхищались.


Одна из европейских копипати. Конец 1980-х

Следующим шагом стали правила. Потому что глупо, если соревнуются демки, одна из которых занимает целый диск, а другая 1 Кбайт. Несопоставимо. Поэтому придумали и согласовали отдельные категории, например, в 256 байт, 1 Кб, 4 Кб, 64 Кб. Если у тебя ограничение 64 Кб, ты должен очень сильно извратиться, чтобы запихнуть туда достаточно впечатляющий сюжет и звуковой ряд. Тем более, если у тебя 4 Кб, или 1 КБ, или 256 байт. Понятно, что когда человек пишет работу в 256 байт, он в основном думает о коде, а не о том, чтобы музыка была хорошая.
Потом сделали отдельные номинации под музыку и под картинки. В результате с 1992 года появились уже вполне официальные международные демопати, где были совершенно чёткие правила, номинации графики, музыки, демо, интро.

Где-то в 1991 или 1992 году в Скандинавии начали проходить первые демопати. Почему именно там, а не в Америке большой вопрос, на который никто четкого ответа до сих пор не дал. Может, это связано с тем, что люди в странах Северной Европы не слишком парятся о завтрашнем дне и могут себе позволить заниматься чем хотят. В Штатах, несмотря на то, что там тоже были демопати и их пытаются проводить сейчас, демосцена представлена в очень ограниченном виде. Хотя другие, во многом похожие вещи радиолюбительство, например там очень распространены.


Впечатляющая демо на 256 байт от команды RSI. Желающие убедиться в его оригинальности могут скачать исполняемый файл в описании

О появлении демопати мы, конечно, узнали. В начале 1990-х у нас уже были PC, появилась сеть FidoNet, модемы. До нас всё это доходило, мы скачивали работы, смотрели и тоже восхищались. В какой-то момент захотели и сами сделать похожее мероприятие. Начали с эхоконференции FidoNet с названием DEMO.DESIGN своего рода офлайн-форума. Я там устроил, грубо говоря, открытый конкурс по переписке. Сначала это было соревнование типа кто сможет нарисовать треугольник, уложившись в меньший размер кода. Обозначено условие: процессор 286, VGA, например. Потом сделали поинтереснее. Надо было написать небольшое интро в каком-то ограниченном объеме. Народу понравилось нам присылали работы, в том числе, довольно интересные. Был такой Patson, который, как я помню, прислал впечатляющее интро с фейерверком что-то там разлеталось красивое. Часть этих людей, как и на Западе, раньше ломали софт и точно так же переквалифицировались, можно сказать легализовались.


Пётр Соболев в 1990-х. Слева над розетками виден модем USR Sportster (с апгрейдом до HST)

Мы с друзьями организовали группу Realm Of Illusion, от имени которой в 1994-1995 гг. вышло два номера электронного журнала Infused Bytes для PC. Безусловно делались они, с точки зрения как дизайна, так и контента под впечатлением электронных журналов, которые я видел на Commodore 64.


Электронный журнал (diskmag) Infused Bytes. Выпуск 1995 года

ENLiGHT95


В 1994 году мы решили, что надо у нас провести мероприятие по типу демопати. Денег не было в стране тогда были очень большие проблемы с экономикой, спонсоров реклама среди каких-то непонятных личностей интересовала мало. Нас спасло то, что в некоторых фирмах нашлись люди, которым эта тема просто нравилась. Они уговорили своё руководство помочь: не деньгами, а оборудованием и помещением. Один из организаторов, например, работал сисадмином в Российской федерации шейпинга и договорился, что нам на выходные отдадут их офис. Другой человек одолжил у фирмы LANCK два компьютера PC AT 486 с VGA. У кого-то взяли пару телевизоров, чтобы работы видело побольше людей видеопроекторов тогда не было. Ну, может, был один на весь город.

В итоге в августе 1995 года мы провели первую демопати. Выглядело это по сегодняшним меркам довольно странно. На Казанской в старом доходном доме с двором-колодцем какая-то квартира, переоборудованная под офис. Три комнаты одна большая, две поменьше и коридор. Типичная бывшая коммуналка. Один телевизор мы повесили в комнате, другой стоял в коридоре на полу. Каким-то образом подключили их к PC, Commodore Amiga, Commodore 64. Как ни странно, конкурсные работы были по каждой номинации, хоть и немного. Народу пришло и приехало из разных городов человек 150, в этой квартирке было не протолкнуться.

В коридоре стояла Сонька маленький контрольный монитор из телестудии. В большой комнате висел здоровый советский телевизор типа Фотон-716. Стояли колонки S-90 и какой-то усилок. Как на любой демопати, объявлялось: Сейчас будут показаны конкурсные работы в такой-то номинации. Дальше на двух телевизорах подряд показывали демки. Зрители запоминали работы, которые им понравились, и на листах бумаги голосовали за первое, второе и третье места по каждому конкурсу. У меня до сих пор эти листочки лежат с 1995 года всё сохранено.


ENLiGHT'95. Кадры с VHS кассеты

Еще был конкурс Real time coders compo. В два захода сажали людей за PC, давали им час времени и задание. Надо было написать код, который красиво преобразует одну заданную картинку в формате VGA в другую. У кого красивее, тот выиграл, размер не важен. Писали на Turbo Pascal, со вставками ассемблера. Участвовали Андрей Заболотный, Mad Max и еще кто-то третий. Написали достаточно впечатляющие вещи.

Так прошли эти два августовских дня. Мы запустили IRC-клиент и в чате писали, что происходит. Тусовка шла непрерывно, конкурсы занимали процентов 10 времени. Это был чуть ли не первый раз, может, за исключением сисопок на Комтеке, когда встречались люди, которые не просто интересуются IT, а конкретно пишут код или хотя бы регулярно смотрят демки. Причём, со всего Союза из Белоруссии, Молдавии, Украины, Москвы, Воронежа Все они общались. Были ребята, которые ломали софт это достаточно близко демосцене. Фидошники были, естественно. Сохранились кадры на VHS, на которых можно увидеть людей, позднее ставших известными.

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


Видеоролик с кадрами первой демопати в Петербурге. 1995 год

ENLiGHT96


На следующий год мы решили демопати повторить. Денег больше не стало, но удалось выбить помещение попросторнее в Кораблестроительном институте на Ленинском проспекте, где была приёмная комиссия. Повесили в холле несколько телевизоров, поставили несколько компьютеров, было больше конкурсов, Интернет поприличнее стал Появился Спектрум, он уже становился основным компьютером отечественной демосцены, много народу под него начало писать. В 95-м Спектрум в конкурсах еще не присутствовал, спектрумисты только присматривались, что это за зверь демопати. Но в 1996-м по полной программе. И организатор свой был у них Володя Ларьков и куча работ.

Иногда смотрю отснятое тогда видео такое впечатление, что на ENLIGHT и CC побывали буквально все, кто хоть как-то интересовался IT.


ENLiGHT'96. Кадры с VHS кассеты

Народу стало больше, может, под 300 человек, и уже появились проблемы с безопасностью. Обеспечить профессиональную охрану мы не могли, потому что денег не было. Народ напивался, спал на столах, местами буянил. Кого-то вывозили, кого-то выносили. Однажды Mad Max запустил трёхдюймовый диск и попал в машину на стоянке. Через 10 минут подъехали тонированные жигули, оттуда вылезли человек пять бандитов и сказали, что надо платить. Mad Max начал возбухать он приехал из Самары, там, видимо, так не было принято но ему объяснили, что будет хуже. Отделался в итоге то ли 200, то ли 300 баксами. Думаю, охранник стоянки позвонил, бригада и приехала. В принципе, она могла тут же фестиваль и прекратить, если бы мы дело не уладили.


Анкета для голосования на ENLiGHT'96. Из личного архива Петра Соболева

ENLiGHT97, последний


В 1996-м было много работ, всем понравилось, на следующий год мы опять решили повторить. В 1997-м демопати принимал Военмех благодаря моему шефу (я поступил туда в аспирантуру после ЛИТМО) нам дали актовый зал. Как и на двух первых фестивалях, была регистрация участников. Стоял стол, и каждый заполнял анкету. Все три года всё было бесплатно. Таким образом мы избегали проблем: до нас не докапывались, ну и вряд ли многие стали бы за это платить. Очередь на регистрацию выстроилась практически до метро Технологический институт. Только по анкетам пришло 1600 человек. И на всех лишь два добровольца, поддерживающих порядок.


Та самая очередь. Фото из личного архива Петра Соболева

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


ENLiGHT97, актовый зал Военмеха

Поначалу всё шло неплохо. Мы начали показывать работы на VGA-мониторах проектор до сих пор был недоступен, а мониторы стали заменой телевизорам. Потом народ частично перепился, кто-то с пневматической винтовкой бегал, кто-то разрисовал туалет. К концу дня это приобрело нехороший характер, и руководство вуза сказало нам, что подобное недопустимо. Мы посовещались и решили фестиваль закрыть. Повесили бумажку: Извините, второй день отменяется. Народ пришел, стал буянить прямо у входа. Приехала милиция.

После этого мы поняли, что надо что-то менять. Пытались искать спонсоров, но, к сожалению, на тот момент это было нереально. Те, кто были на выставке Инвеком-98 в Ленэкспо, могли видеть странный транспарант ENLiGHT98. Кто-то даже удивлялся: мол, показалось. Нет, не показалось. То была репетиция для небольшого количества человек. Но спонсоров в итоге мы тогда так и не нашли, так что ENLiGHT на этом закончился.

Chaos Constructions


В 1999 году совершенно другие люди, большинство из которых с нами знакомо не было, сделали практически то же самое своими силами. Правда, масштабом поменьше. В школьном актовом зале (по странному совпадению, в двух шагах от школы, где мы когда-то сидели за Commodore 64) они организовали демопати Chaos Constructions'99. Та же идея конкурсы: музыка, демки, графика, около сотни человек народу. Как ENLiGHT95, только проектор у них появился, и в целом поприличнее всё стало.



Публике понравилось, да и нам тоже было интересно. Потом они провели Chaos Constructions в 2000-м, 2002-м, 2003-м. Организаторы бывали разные, но в основном этим занимался Всеволод Потапов с друзьями. Я был на всех СС, два года они проходили в кинотеатре Восход. А перед 2004 годом мы организаторы ENLIGHT и CC договорились попробовать провести очередной фестиваль вместе.

Chaos Constructions'2004 мы провели в ЛДМ, и это был уже другой уровень. Большое помещение, нормальный проектор, первая выставка ретрокомпьютеров (позднее ставшая ежегодной). Приходилось решать достаточно серьезные организационные вопросы, в том числе такие, которые не были видны посетителям. Грубо говоря, все росли: кто-то как организатор, кто-то как программист, кто-то как админ. Никто никому из нас не платил, но люди очень много от этого получили. Кто-то благодаря новым знакомствам нашел работу, кто-то повысил свою квалификацию. С точки зрения организации опыт совершенно бесценный. Ты руководишь 20-30 людьми, которым не платишь и которые не обязаны тебе подчиняться. Исключительно за счет авторитета и того, что какие-то здравые мысли высказываешь.


Пётр Соболев пишет программу в машинных кодах для ПЭВМ Агат, представленной на выставке ретрокомпьютеров части фестиваля Chaos Constructions'2004

Я даже написал тогда полноценную систему для управления проектами именно для CC. А дружественная компания специально под нас писала 3D-движок, чтобы заставки и расписание показывать на большом экране.


Скриншот системы управления проектами для фестиваля Chaos Constructions, написанной Петром Соболевым

В 2005-м фестиваль там же в ЛДМ по смыслу был похож на предыдущий, а вот в 2006-м уже сильно отличался. Мы провели его около метро Лесная, в павильоне выставочного центра Евразия. Зал большой, и чтобы поднять уровень мероприятия и привлечь людей, мы решили добавить ещё тематики. Сетевая безопасность, игры всё подряд, вплоть до блогов. Разделили помещение на зоны для геймеров, хакеров и т. д. Некоторые направления потом отвалились, но другие оказались многим интересны.

В частности, внимание людей привлекла как раз сетевая безопасность. Тема полулегальная: с одной стороны люди, нарушающие закон, с другой те, кто обеспечивает защиту информации. Понятно, что это всегда на грани, человек может спокойно заниматься и тем, и тем. Мы как-то старались на этой грани удержаться, хотя это бывало нелегко. Одна сторона все время переживала, что сейчас придут органы и всех арестуют. Другая говорила, что у нас тут не хакеры, а детский сад. Но за счет того, что в нашей команде было несколько авторитетных в этой среде людей, удавалось обеспечить достаточно хороший уровень. Что касается органов, их мы через знакомых неофициально предупреждали заранее. Ничего не скрывали: проводим такое мероприятие, закон не нарушаем. За все годы никаких проблем ни разу не было.


Большой экран с пролетающими в эфире паролями Wi-Fi. Хакзона Chaos Constructions'2009

На конкурсах народ на время ломал нашу внутреннюю сеть, которую мы специально организовывали, занимался социальной инженерией. В частности, была задача узнать серийный номер картриджа в принтере, который стоял в некоем театре. Один из нас там работал начальником IT и обеспечил все условия. Народ начал звонить в театр, заговаривать зубы сотрудникам. Понятно, что начальник никого не предупреждал.


Задание одного из конкурсов на Chaos Constructions разобраться в схеме и разминировать бомбу с обратным отсчётом

Ещё важно, что CC'2006 был первым, куда довольно много народу пришло со своими компьютерами, как на западных demo party. Раньше подобное у нас было невозможно ноутбуков ни у кого толком не было, а для перевозки громоздких настольных компьютеров с мониторами мало у кого были личные автомобили.


Хроника с фестиваля Chaos Constructions2006

Демосцена сейчас


С 1996 по 1999 год, на мой взгляд, был кризис. Я говорю не про Россию, а про весь мир. Появились 3D-ускорители, и народ, вместо того чтобы подумать о сюжете, ринулся во всё это: Давайте покрутим бублик, покрутим 5 бубликов, а если 100 бубликов, вообще супер будет! Демки, которые занимали первые места на крупнейших мировых пати, были сделаны технически круто, но чаще всего смотреть их было совершенно неинтересно. Это затронуло и те платформы, с которых демосцена начиналась. Если на PC хотя бы есть 3D-ускорители т. е. было понятно, почему они стали эти бублики крутить, то на Commodore 64 и Amiga ускорителей не было, а бублики крутить многим там почему-то тоже хотелось. Выглядело это печально. То есть, когда на 6502 1 МГц с жутко медленным видеобуфером пытаются что-то крутить это, возможно, само по себе достойно уважения, но смысл неясен.

Где-то в конце 90-х начале 2000-х народу это надоело, снова начали появляться работы с интересным сюжетом, дизайном. Люди стали задумываться не только о технологии. Сейчас все нормально в принципе, демосцена существует и развивается. Причем, для старых платформ пишут не меньше, чем для современных. Пишут для удобства на эмуляторах, а демонстрируют уже на железе на старых машинах.


Футболка для фестиваля ENLIGHT'96 с напечатанным на ней кодом интро Cross (автор MadMax), занимающим всего 128 байт

Коммерциализировать демосцену невозможно и, на мой взгляд, это плюс. Даже если ты очень захочешь заработать, у тебя все равно ничего не выйдет. Сама суть демки не подразумевает никакого полезного использования: ты не можешь её продать или сдать в аренду. Если сделаешь её интерактивной, это будет игра, а не демо. Граница очень четкая. Так что, демосцена по-прежнему немного андеграунд и, если можно так выразиться, чистое творчество.

Между прочим, с упомянутой выше темой сетевой безопасности дело увы обстоит иначе. Смотрю сейчас, куда в ней дела зашли, и мне грустно. Как только появилась возможность, т. е. возник спрос, люди стали просто делать деньги.

Командная работа


На современной демосцене знаковых фигур, на мой взгляд, почти нет. Это не та область, где главную роль играет отдельная личность, здесь больше командная работа. Потому чаще известны именно названия команд. Возьмём какую-нибудь из известных демок, например, Second Reality 1993 года. Хотя она уже очень старая, на PC написанная, её успех определяется именно сочетанием графики, музыки и кода. Если что-то убрать, демка уже не будет такой. Это легко проверить, к примеру, просто выключив звук.



Финская команда Future Crew, которая эту демку написала, была знаменитой, я даже не могу назвать никого, сопоставимого с ними по известности в те годы. Из старых команд по-прежнему хороша та же Fairlight. Они начинали на Commodore 64, потом был Fairlight на Commodore Amiga частично с другими людьми, потом они перешли на PC. Но на всех трёх платформах Fairlight периодически выпускает очень приличные вещи.

Искусство и код


Многие называют демосцену современным искусством, но мне кажется, что их разделяет грань, которая проходит по линии кода. Если человек сделал, например, анимационный ролик, даже абсолютно напоминающий демку, демкой он не становится. Анимацию люди делают с другими целями, а суть демосцены подразумевает написание кода. Демка обязательно должна работать и что-то делать в реальном времени. Поскольку сейчас ограничение для нее десятки мегабайт, туда можно запихать анимацию достаточно приличного качества, но это будет неадекватно. Тебя высмеют. Никто не против каких-то мелких анимационных вставок, но люди понимают, что суть именно в коде, а в современном искусстве код не при чем. Совершенно другая область.

Что будет дальше вопрос сложный. В середине 1990-х или начале 2000-х мало кто мог предвидеть, что написание работ под старые платформы 19701980-х станет популярным, и что эта популярность будет только расти. Странно: железо всё лучше становится, добавляются возможности, но людям интереснее получать больше от старых платформ, а на новых платформах растёт популярность конкурсов с жёсткими ограничениями по размеру. Сейчас вроде очевидно, почему это так, но тогда было неясно. Так и в будущем совершенно непонятно, чего ждать. Мне кажется, что направление, в котором сейчас развиваются компьютеры не очень демосценерское. Это касается, в частности, ухода от привязки софта к конкретным платформам, эмуляции всего и вся и т. п. В отношении демосцены я скорее поверю, что старые платформы будут ещё более популярны, чем сейчас.

Что будет дальше в плане технологий мы не знаем. Скажем, скачка, связанного с компьютерами, никто предвидеть не мог. Когда-то эксперты говорили, что компьютер никому не нужен, кроме производства и бухгалтерии, а вышло не так. Что будет дальше дело тёмное.
Подробнее..

DIY-проект аудиокассета на базе Arduino для хранения и загрузки программ и игр в ZX Spectrum

19.08.2020 18:13:30 | Автор: admin

20-30 лет назад кассеты были самым популярным средством хранения аудиозаписей. Их применяли и для хранения данных, в частности, программ для 8-битных компьютеров. Именно кассеты использовались для загрузки и сохранения программ для ZX Spectrum. Тем не менее, кассет становится все меньше, несмотря на то, что поклонников ZX Spectrum и других подобных ПК довольно много. Конечно, можно использовать эмулятор ZX Spectrum под Windows или Linux. Но это все же менее лампово, чем реальный компьютер. Есть еще один выход найти замену кассете.

Пользователь с ником JamHamster решил пойти по этому пути. Его решение устройство, которое внешне походит на привычную аудиокассету, работает с кассетным магнитофоном, но вместо магнитной ленты в нем используется SD-карта. По замыслу энтузиаста, такая кассета должна вставляться в магнитофон для передачи сигналов в ZX Spectrum или подключаться через аудиовыход. Кстати, решения для загрузки программ с кассет есть например, TZXDuino для работы с ZX Spectrum, ZX81 и Amstrad CPC, но оно показалось разработчику слишком громоздким.


Подготовка к сборке


JamHamster выбрал для сборки плату Arduino Nano (размер платы всего 7 мм), на которой разместил устройство чтения карт памяти, усилитель и небольшой дисплей. В качестве софта для взаимодействия с ZX Spectrum программное обеспечение, которое ранее разработали Эдрю Бир и Дункан Эдвардс.



Энтузиаст пояснил, что форм-фактор кассеты был выбран для сохранения аутентичности. Мне кажется, что загрузочные SD-устройства в виде кассет правильное решение. Они выглядят прикольно и хранятся в стандартном подкассетнике, дизайн которого мне очень нравится, пояснил JamHamster.

Проблемой для размещения всех компонентов стали физические размеры корпуса кассеты. Поэтому JamHamster провел ряд модификаций. Например, дисплей и устройство для чтения SD-карт были физически уменьшены. Некоторые модули, в частности, USB-порт, пришлось повесить на провода, чтобы уместить конструкцию в корпус. А аудиовыход разработчик сделал самостоятельно.



Дополнительно JamHamster дал несколько советов тем, кто захочет повторить его эксперимент:
  • Не припаивайте компоненты внутри корпуса, так как он хрупкий и быстро повреждается.
  • Проверяйте работоспособность компонентов перед установкой.
  • Паять провода нужно поверх контактных площадок, а не насквозь.
  • Не пересекайте провода, чтобы не увеличивать толщину конструкции.


Собираем кассету на Arduino своими руками




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



Для создания аудиовыхода (его придется делать вручную) понадобится стальная пружина диаметром 3,5 мм. Если ее нет, то этот элемент можно без проблем создать, используя сверло соответствующего диаметра. Далее при помощи джека наушников выверяется длина, и все это припаивается к плате. Аудиовыход используется в том случае, если нет кассетного магнитофона. Через него гаджет подключается напрямую к компьютеру и передает сигнал.

Что касается работы кассеты с магнитофоном, то для реализации этой возможности в устройство встроена магнитная пишущая головка, сигнал которой считывается уже другой головкой, но в кассетнике. К сожалению, выходной мощности микроконтроллера недостаточно, поэтому разработчик добавил миниатюрный усилитель PAM8403 (2 x 3Вт). Он достаточно портативный, так что общие габариты конструкции увеличились ненамного.
Подвод питания во время работы не требуется, поскольку в кассете есть собственный аккумулятор.













Также в корпус устанавливаются пять кнопочных переключателей для управления устройством чтения SD-карт.



Кстати, хранение данных реализовано не в виде .exe или .txt файлов. Вместо этого используются аудиодорожки, которые содержат в себе код программ. Именно так хранились данные на аудиокассетах с магнитной пленкой.

Основная сложность поместить плату в корпус кассеты. Над решением этого вопроса автору пришлось поломать голову, но в итоге он нашел решение. Ниже показано, как нужно правильно обрезать платы дисплея, SD-ридера и перепаять USB-порт для экономии пространства на плате. Для крепления компонентов к плате можно использовать горячий клей.



Экран помещается между колесиками кассеты так его будет лучше видно. Кстати, в коде ПО придется внести изменение, чтобы перевернуть изображение на мониторе. Это несложно. Достаточно заменить кусок кода:

#define ROTATE180 1
//#define UNROTATE 1


на:
//#define ROTATE180 1
#define UNROTATE 1


Теперь остается установить элемент питания, развести проводку, как указано в оригинальной инструкции, и проверить работу всех компонентов. После чего можно тестировать на ZX Spectrum.



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

8 оттенков серого, или ZX Spectrum48 за 3

17.10.2020 04:07:11 | Автор: admin

Прочитав статью Передача аналогового тв сигнала с помощью STM32 решил попробовать нарисовать телевизионный сигнал на дешевой китайской плате stm32f401ccu6 за $2.5 без дополнительного железа.

<cut text="Когда-то давным-давно" />

Когда-то давным -давно году так 1988 досталась мне собранная плата ZX spectrum 48 ,без корпуса и клавиатуры. Клавиатуру собрал на герконовых кнопках, а вот телевизор был только черно-белый. И тут прочитав вышеупомянутую статью, решил , а не собрать ли мне черно-белый спекки. Починил подобранный когда то на помойке ч/б телевизор с экраном ЭЛТ в 5 дюймов и почитав спецификации на PAL/NTSC, взял китайскую платку stm32f401ccu6 с 64КB RAM ,256 Flash 84MHz 32bit processor.

Генерация видео-сигнала:

Specci нужно 256 пикселей по горизонтали. Добавим по 8 на рамку. Добавим обратный ход луча и синхро импульс получим около 400 точек на линию 64 мсек. Если берем первый таймер (TIM1) с частотой 84MHz то получим 13 отсчетов ШИМ на точку, то есть от нуля до двенадцати. Возьмем уровень черного 3, уровень белого 10 , а уровень синхроимпульса 1. И запускаем Circular double buffer DMA с высоким приоритетом и отрисовкой в прерывании.Четные и нечетные линии дублируются , то есть у нас реально есть 50 герц обновления экрана (выбран PAL). Скорость эмуляции спектрума задается другим таймером (TIM4), выводящим звук.

Что не получилось:

Два синхронных канала ШИМ на видео, для большего числа уровней серого. Они разваливаются, даже если на одном таймере, при работе USB.

Реализация Спектрума 128. На платке есть место для флеша, так туда подходит и даже работает сериальный PSRAM (PSRAM64H 3.3V SOP8 64Mbit),но только в режиме 1Bit SPI из-за разводки на плате. Примерно вдвое медленней чем нужно для эмуляции.

Телевизор подключен напрямую, но это нарушение спецификации уровня сигнала (3.3 вместо 1 вольта). По хорошему нужен делитель и ФНЧ.

Видео получилось не очень, картинка реально лучше, но с тв сложно снимать:

Исходный код

Подробнее..

Как заставить Arduino петь как ZX Spectrum. Часть 1 исторический экскурс

26.10.2020 18:07:34 | Автор: admin

ZX Spectrum 128 и его многочисленные клоны имели встроенный звукогенератор AY-3-8912, благодаря чему как зарубежные музыканты, так и наши соотечественники успели написать огромное количество музыки под этот компьютер.

В двух частях этой статьи, приправленных щепоткой ностальгии, мы вспомним основные способы звукоизвлечения на ZX Spectrum 128, обозначим характеристики музыкального сопроцессора AY-3-8912, перечислим наиболее известные музыкальные редакторы, продизассемблируем музыкальный модуль от популярной игры Dizzy IV и воссоздадим его на Arduino. Приглашаем под кат всех любителей компьютерной музыки, DIY, а также тех, кто заинтересовался, почему словосочетание музыкальный сопроцессор мы взяли в кавычки.

Скриншот стартового экрана Dizzy IVСкриншот стартового экрана Dizzy IV

Помню, первый компьютер - клон ZX Spectrum Компаньон - мы с братом никак не могли подключить к телевизору. Как я сейчас понимаю, в компьютере был только низкочастотный видеовыход, который мы пытались подключить к высокочастотному входу черно-белого телевизора. Удивительно, но каким-то образом видеосигнал пробивался через все эти гетеродины, так что можно было разглядеть смутные очертания символов, но только если ты знаешь, что там было написано Поэтому какое-то время наши возможности ограничивались написанием почти вслепую простейших программ на бейсике и загрузкой с магнитофона игр, в которые было не поиграть.

Одной из игр, которая привлекала внимание, была Legend of the Amazon (или Амазоники, как мы их тогда называли). На старте была отличная музыка, воспроизводимая через 1-битный динамик. Ее можно было запустить вслепую и слушать до бесконечности. Мы замучили кассету так, что еле прочитали игру, когда наконец подключили Компаньон к низкочастотному входу телевизора и стало все видно. Увы, но других воспоминаний от игры у меня не осталось - gameplay был посредственный (ну или я ничего не понял).

Научившись паять, я собрал больше информации о ZX Spectrum и смог подключить к нашему многострадальному на тот момент Компаньону магический музыкальный сопроцессор. Тогда это был YAMAHA YM2149F, аналог AY-3-8912, устанавливавшегося в оригинальных ZX Spectrum 128. Следует отметить, что название музыкальный сопроцессор неверно, потому что чип не выполняет никакого кода, а является конечным автоматом. В документации на чип предлагается название программируемый звуковой генератор, поэтому в дальнейшем в статье я буду называть чип звукогенератором.

Эксперимент завершился и удачей, и разочарованием. С одной стороны, звукогенератор работал, с другой стороны, оказалось, что во многих играх память в 48К была занята под завязку и на музыку ее уже не оставалось. В те времена было принято выносить музыкальные модули в дополнительные страницы памяти, которые были в 128-килобайтном спектруме, но отсутствовали в нашем 48-килобайтном Компаньоне, поэтому звукогенератор в большинстве случаев оставался лишним балластом. Однако в журнале ZX Ревю, из которого я и взял схему подключения, была заметка о том, как его проверить: музыкальный модуль от игры Dizzy IV загружался в память отдельно от игры и его можно было запустить. На картинке выше - скриншот стартового экрана игры.

Для ностальгирующих - вот как загружался дополнительный модуль:

CLEAR 30000LOAD  CODERANDOMIZE USR 49152RANDOMIZE USR 49180

Периодически мне нравилось загружать этот модуль и слушать ту чудесную стартовую музыку (сейчас ее можно послушать тут; это не только стартотвая музыка, но и мелодия внутри игры).

О возможностях звукогенератора AY-3-8912

Звукогенератор AY-3-8912 фирмы General Instrument, который устанавливался в ZX Spectrum 128, а также его аналоги, - достаточно популярный способ добавить музыкальные возможности в компьютеры того времени. Это семейство чипов устанавливали, в том числе в компьютеры Amstrad CPC и в японские MSX.

AY-3-8912 имел 3 канала для генерации сигналов прямоугольной формы (тона); один генератор шума; генератор огибающей, позволяющий производить амплитудную модуляцию сигналов тона и шума; микшер сигналов для смешения сигналов тона, шума и огибающей; модуль контроля громкости и цифро-аналоговый преобразователь.

На выходе у генератора было 3 аналоговых канала, именуемых A, B и C. В оригинальных спектрумах сигналы объединялись в один и получался моно-сигнал, однако каналы можно было соединять попарно и получать стерео сигнал. Мне чаще попадалось объединение A + C -> левый канал, B + C -> правый канал, т.е. канал C отправлялся и в левый, и правый выходы, являясь средним каналом. До момента написания этой статьи такое соединение мне представлялось каноническим. Но оказалось, что часто средним делали канал B и иногда в софте можно было найти настройку, какой канал считать средним.

Справедливости ради стоит добавить, что было несколько модификаций чипа. Вот самые распространенные из них:

  • AY-3-8910 - выпускался в корпусе DIP 40 и дополнительно имел 2 восьмибитных порта ввода/вывода;

  • AY-3-8912 - выпускался в корпусе DIP 28 и дополнительно имел только один восьмибитный порт ввода/вывода;

  • YAMAHA YM2149F - полностью совместим с AY-3-8910, но имел некоторые дополнительные возможности.

Используя порты ввода-вывода AY-3-8910, к компьютеру можно было подключить еще и, например принтер с параллельным интерфейсом. Но насколько мне известно, для клонов спектрума так никто не делал.

Музыкальные редакторы для спектрума

Любой спектрум, даже не оборудованный звукогенератором, мог воспроизводить звуки при помощи 1-битного выходного канала. Сигнал выводился на встроенный миниатюрный громкоговоритель, как в оригинальном спектруме, а в клонах вместо него иногда применяли пьезо-пищалки или иные воспроизводящие звук устройства. Интересно, что в оригинальном спектруме за ввод/вывод с магнитофона и за воспроизведение звуков отвечал всего лишь один вывод микросхемы ULA. Встроенный бейсик поддерживал команду BEEP, которая принимала два параметра - смещение в полутонах относительно ноты до первой октавы и длительность звука в секундах (можно в долях). Вооружившись операторами DATA и FOR, можно было воспроизвести любую одноголосную мелодию.

Самым известным редактором для бипера стал Wham! The Music Box или просто Wham!. Думаю, что отсылка к музыкальному поп-дуэту Wham с участием Джорджа Майкла была не случайна - редактор поставлялся с несколькими демо-композициями, одной из которых была песня Careless Whisper того времени. Но какого-либо подтверждения этому факту я не нашел.

Версия Джорджа Майкла
1-битная версия Wham!

Wham! позволял одновременно воспроизводить 2 голоса или звуковой эффект, что для бипера в то время было редкостью.

Тут стоит упомянуть хоть и не редактор, но игру Manic Miner, в которой в 1983 году (всего через год после появления ZX Spectrum) на стартовом экране была попытка воспроизводить 2 звука одновременно, а во время игры звучала музыка, что требовало немалого процессорного времени. Но после написания этой статьи мой мир никогда не будет прежним - проверяя свои воспоминания, я обнаружил, что автор игры Matthew Smith в одном из интервью говорит, что использовал для написания игры компьютер TRS-80, подключенный к спектруму через порт расширения. Какое жульничество! (шутка)

Звуки игры

Начиная с 3:20

Manic Miner и GTA

Истории создания игр Manic Miner и Jet Set Willy посвящены некоторые видео на Youtube, там не все так просто. Например, многие помнят, что в Manic Miner был cheat-код 6031769, дававший бесконечное количество жизней. Этот код был основан на номере автомобиля автора игры. Думаю, было мало людей, прошедших эту игру без кода.

Этот же код использовался и в Grand Theft Auto и тоже давал бесконечное количество жизней. Пруф

На изображении - обложка игры для пользователей США (источник), по иронии судьбы мало знакомых с ZX Spectrum в целом и с Manic Miner в частности.

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

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

Существовала версия Wham! и для 128-килобайтного спектрума с AY-3-8912, но идеи, сработавшие в предыдущей версии, стали серьезным ограничением в текущей - нельзя было воспроизвести ноту большой длительности. Да и нотная запись для 8-битной музыки не самая подходящая.

Огромным прорывом для любителей компьютерной музыки стал выпуск польского трекерного редактора Sound Tracker для ZX Spectrum (отметим, что это не первый трекерный редактор вообще, он первый только для спектрума).

Это был переход от традиционной нотной записи музыки к буквенной записи нот в 3 колонки, по количеству каналов в звукогенераторе.

Под спойлером вы найдете основные понятия, которые используются в редакторах с интерфейсом типа трекер. Специально не останавливаюсь на всех тонкостях восьмибитной музыки, перечисляю здесь лишь основные понятия, которые мы будем использовать во второй части статьи, когда перейдем к разбору кода музыкального модуля Dizzy IV.

Основные понятия
  • Pattern (или паттерн) - строительный блок, музыкальная композиция делится на небольшие куски. Обычно состоит из нескольких музыкальных тактов и содержит 1-2 фразы.

  • Position (или позиция) - слоты, в которые можно вставить паттерны. Они определяют, в какой последовательности должны исполняться паттерны, какие паттерны должны повторяться. Написав несколько коротких паттернов и в дальнейшем комбинируя их в разном порядке с помощью позиций, можно создать достаточно длинную, пусть и несколько однообразную мелодию, впрочем, так и принято было делать.

  • Sample (инструмент) - описание изменения характеристик звуков с течением времени. С частотой 50 Гц плеер музыки рассчитывал относительную высоту звука, который проигрывался в канале, его громкость, накладывал звуковые эффекты. Инструменты позволяли наложить окраску звукам, можно было настроить плавное нарастание или затухание, фронт и т.д.

  • Ornament (орнамент) - аналогично сэмплу орнамент определяет относительную высоту звука, но в данном случае она определяется тем, насколько тонов необходимо сместить звук. Из-за того, что звукогененратор имеет всего лишь три канала, а хочется намного больше, появились орнаменты, которые позволяли поочередно с большой частотой проигрывать несколько звуков на одном канале. Орнаменты - эффективное средство воспроизвести на одном канале звуки одной октавы или даже аккорды, например трезвучия. Кончено, звуки воспроизводились поочередно с большой частотой и напоминали балалайку, но это тоже было за гранью возможности для трех каналов, т.е. супер круто.

Другим весьма известным музыкальным редактором был ASC Sound Master (ASM) А.Сендецкого. К сожалению, автора этого редактора уже нет с нами (пруф). Этот редактор мне запомнился, как очень крутой, ведь автор даже не поленился, а разработал свою собственную файловую систему, чтобы сохранять музыкальные композиции. Помню, там была композиция Boom, которая мне очень нравилась. Я слушал ее бесконечно, тогда не зная, что это была музыка из одноименного французского фильма.

Без музыки на тот момент обходилась редкая демо-сцена. Лучшие образцы (например, Insult или Satisfaction) можно нагуглить до сих пор. А одним из самых зрелых редакторов был Pro Tracker, который появился достаточно поздно - в 1995 году. С его помощью было написано довольно много музыки.

Наверняка у каждого, кто был знаком с играми на спектруме, есть свои любимые музыкальные воспоминания. На меня в свое время неизгладимое впечатление произвел загрузчик с дискет под названием ZYX. Эта программа запускалась самой первой, показывала каталог программ, которые были на диске, и позволяла загрузить одну из них. Существовало огромное множество этих загрузчиков с разной популярной музыкой того времени. Особенно мне нравился Jean Michel Jarre.

Jean Michael Jarre

Удивительно, но демки разрабатывают до сих пор. Для AY-3-8912 даже существует вполне современный музыкальный редактор Vortex Tracker, который позволяет писать 8-битную музыку под Windows.

На этом я закончу свой исторический экскурс. Во второй части статьи будем дизассемблировать музыкальный модуль Dizzy IV и писать прошивку для Arduino, которая повторит музыку из этой игры, эмулируя музыкальный процессор и используя музыкальный модуль Dizzy IV.

Продолжение следует

Автор статьи: Антон Дмитриевский

P.S. Мы публикуем наши статьи на нескольких площадках Рунета. Подписывайтесь на наши страницы в VK, FB, Instagram или Telegram-канал, чтобы узнавать обо всех наших публикациях и других новостях компании Maxilect.

Подробнее..

Zx spectrum128, CPM 2.2 и терминал на STM32F407

28.10.2020 02:10:35 | Автор: admin
Нарисовавши черно-белый Spectrum48 за $3 на телевизоре и получив вопросы как: а почему не цветной, а почему без музыки, а где НЕИГРУШКИ решил поправить и опубликовать менее бюджетную версию, Spectrum128+СP/M, примерно на $25 железа.


Мне могут возразить это уже дорого, можно купить Raspberry или другой Linux board на эти деньги, однако реализация на STM32 имеет несколько выигрышных черт, таких как:
1 Время готовности при включении меньше пары секунд.
2 Лаг на клавиатуру меньше одного фрейма (20 миллисекунд, примерно как на настоящем, железном спектруме)
3 Эмулятор на STM мне нравится больше, так как у эмуляторов на Linux, а также и других эмуляторов есть фатальный недостаток их писал не я.
4. Можно питаться от батареек.

Подробнее о реализации
Подсистема звука:
2 ШИМ канала 16 bit, на частоте 44100, работают постоянно и вытягивают из Fifo звук. С другой стороны в Fifo пишет текущий процесс. Это или ZX spectrum (Z80 эмулятор), или MP3 player decoder. Если нет места для звука, то процесс ждет сканируя клавиатуру. Z80, в свою очередь, отрабатывает один кадр и пишет эвенты связанные со звуком в очередь событий звука такие как speaker ON-OFF и AY 8910.С каждым эвентом идет и счетчик клоков Z80. По окончании кадра в 20 миллисекунд симуляции (4-8 миллисекунд stm32 ), рендерится кадр на экран(только изменения) и события звука из очереди рендерятся соотвественно в Fifo звука. Если он забит значит мы торопимся, и нужно подождать. Таким образом осуществляется синхронизация времени между симулируемой и симулирующей системами. При чтении ТAP файлов (виртуального магнитофона ), звук рендерится плотнее, с более коротким шагом, в 3-5 раз, и виртуальное время течет быстрее, соотвественно загрузка скорее чем с физического магнитофона. Впрочем можно ускорение отключить, с клавиатуры (F11-F12).
ШИМ, а не DAC, для звука выбран специально. Он позволяет уменьшить помехи от питания и вынести усилитель класса D наружу и организовать регулировку громкости питающим ключи напряжением. Даже простейший, на паре транзисторов, дает более качественный звук, чем просто усиление сигнала с шумного DACa (плата STM покупная, китайская, готовая. С ошибками.)
Чип AY-3-8910 не то что бы сильно сложный, но документация на него скорее предназначена для пользователей и интеграторов, а не для эмуляции/симуляции. О многом приходилось скорее догадываться и смотреть по коду разных эмуляторов, чем просто сесть и написать по документации. Возможно, что где-то и не угадал И фокус написать его нетребовательным к СPU ресурсам. Вроде получилось.

Подсистема видео:
Изменения цвета бордера (если они были) записывается в специальную очередь с клоками процессора. Это будет видно при загрузке с магн. Ну и некоторые игры обновляют его на ходу, для спецэффектов.
После этого, когда z80 отработал свои такты на 20 миллисекунд кадр рендерится.
То есть трюки с изменением кадра на ходу в демках работать будут не все. Но с играми проблем не замечено.
Контроллер обычный, параллельный 16bit FSMC <-> ILI9341 c SPI тачем ( работает, но не нигде не используется).

z80:
Это эмуляция CMOS версии Z80. Салат из разных мест, но большей частью из FUSE и немного моего творчества тоже (в основном на обьем и скорость). Тест zexall проходит.

Клавиатура:
USB host HID device контроллер от STM. C USB роутерами работать не будет. Все претензии к ST, они поленились и я тоже. Конкретно на том боарде, что я использую нужно удалить резистор R21 1.5K: 3.3v<->USB D+.

Disk:
Примерно так отформатирован у меня, но думаю, что не все критично:
Partition 1 type Start 2048: W95 FAT32 (b)
Attributes: 80
Filesystem UUID: xxxx-xxxx
Filesystem: vfat

Корневые директории(для этого кода именно так):
ZX48
сюда класть программы для spectrum48.Форматы: .TAP,.Z80,.SNA
ZX128
сюда класть программы для spectrum128.Форматы: .TAP,.Z80,.SNA
MP3
попробуйте угадать? И форматы?

Видео тест Спектрума:
www.youtube.com/watch?v=WKQc5I55Ji8
Бонус. Реализован слой согласования с CP/M 2.2 от Grant Searle's.
www.searle.wales

Мужик сделал отличную работу по реализации CP/M на Z80 (отдельно) и FPGA (другая система)
Там и BIOS и образ диска с дофига программ, утилит и компиляторов:
Си, Лисп, Ада, Паскаль,Cobol, Алгол,Forth,APL,Fortran,PL/I,Basic всякий, muMath & muSimp (CAS math package), игры, редакторы всего 240 мега. Это сегодня пару страниц текста, а тогда, во времена CP/M столько не было ни у кого.
Подробнее здесь:
obsolescence.wixsite.com/obsolescence/multicomp-fpga-cpm-demo-disk


Ну и видео тест CP/M:
www.youtube.com/watch?v=-h3XCy79aJw

Я немного добавил к эмулятору z80 на STM32 слой обращения к диску и терминал экрана: клавиатуры, микс ANSI и VT100. Надо будет допроверить и доделать. В основном работает, CATCHUM и Turbo Pascal исправны. Запускается CP/M когда видит диск отсюда, по первым двум байтам образа:
obsolescence.wixsite.com/obsolescence/multicomp-fpga-cpm-demo-disk
Если диска вообще нет, то запускается в режиме Spectrum 128 в меню.
Что не сделано:
1. Чтение и запись с физического магнитофона, магнитофон купил, жду пустые кассеты с Али.
2. Вообще любая запись в спектруме не написана.(В CP/M есть запись)
2.".TGZ" формат?

Что еще:
Хм. Положил перед собой железо, выбираю:

Слева направо, сверху вниз:
Stm32h743, программер на stm32f103, Xilinx XC6SLX16, на ней программер для альтеры, Altera ep2c5 & PSRAM 8M, Zynq7010(на али распродажи по $15!!! ) ,W600-pico (60MHz m3+280 ram $2) ,ESP32-CAM with PSRAM 8M (очень дешевая но мало свободных ножек).
Нижний ряд: Еще Xilinx XC6SLX16,Xilinx XC6SLX9, ANLOGIC (22k lut+SDRAM), ALTERA EP4CE15F23C8, еще W600 за $1- но мало ножек.
Справа от клавиатуры белый магнитофон для демонстрации загрузок компьютеров внукам.
Нет ничего дороже $30 Особенно интересно для тех, кто хочет учить Zynq7010 это FPGA 28 K LUT + 2 ARM cores ~600MHz + flash 128MB + ddr 256MB +ETH100. Видимо распродают контрольные платы от битмайнеров. Удивился и купил.
Эмулятор z80 прогонял на них на всех, кроме программера для альтеры и магнитофона. На некоторых и эмулятор 80286-го прогнал.

для тех кто хочет повторить
Искать:
STM32F407VET6 Development Board Cortex-M4 STM32 minimum system learning board ARM core board +3.2 inch LCD TFT With Touch Screen. Проверял только с 3.2 экраном, чип ILI9341.
source:
github.com/sdima1357/spectrum128_cpm
Подробнее..

Как заставить Arduino петь как ZX Spectrum. Часть 2 музыка Dizzy IV на Arduino Nano

12.11.2020 16:17:09 | Автор: admin

В этой части статьи мы перейдем к самому интересному - будем разбирать музыкальный модуль Dizzy IV по винтиками и воспроизводить мелодию сначала на Windows, а потом и на Arduino Nano. За подробностями добро пожаловать под кат.

(скриншот стартового экрана Dizzy 4)(скриншот стартового экрана Dizzy 4)

О чем идет речь, я подробно объяснял в первой части статьи.

Disclaimer:
Хочу отметить, что проект я реализовал исключительно для фана, понимая, сколько лет прошло с момента, когда спектрум был актуален. Хотелось вспомнить былое и прикоснуться к коду, написанному для восхитительного процессора Z80. Для меня этот процессор был первым.

Музыкальную тему для игры Dizzy 4 создавал David Whittaker - достаточно известный композитор музыки для игр (пруф: ссылка 1 и ссылка 2).

Мне не удалось точно установить, в каком музыкальном редакторе была сделана эта музыка. В 1987 году композитор в одном из интервью сообщал, что пишет музыку в софте, специально разработанном им самим, как сказано в заметке драйвере, на компьютере Tatung Einstein (тоже имевшем AY-3-8910) и передает ее по RS-232 в спектрум. Но игра была выпущена в 1989 году и способ создания музыки к тому времени мог поменяться. Из кода плеера видно, что в него заложена кроссплатформенность - в нем используется буфер для регистров звукогенератора. Вместо прямого доступа через порты ввода-вывода, значения для регистров звукогенератора сначала записываются в буфер в памяти, что кажется оверхедом. Данные из буфера в регистры переносятся в простом цикле. Процесс создания музыки на другой платформе, а также существование игры с той же музыкой для Amstrad CPC, объясняет наличие такого буфера.

Разбираем музыкальный модуль

Я извлек музыкальный модуль из tap-файла и подверг анализу в эмуляторе Unreal Speccy и в дизассемблере IDA Pro. Полный листинг модуля с моими комментариями можно найти тут.

Если вкратце, это модуль длиной 0x4000 (или 16384, ах, какие числа) байт. Он загружается по адресу 0xC000 и имеет две мелодии с адресами 0xC000 и 0xD300. Обе мелодии укомплектованы идентичным плеером, так что сначала идет код плеера, а сразу за ним располагаются данные позиций, паттерны и инструменты. Думаю, так поступали в большинстве случаев - один плеер на несколько мелодий делали редко, несмотря на возможную экономию.

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

Модуль состоит из следующих блоков (где это возможно, будет указан и адрес окончания блока):

  • 0xC000 - 0xC01B - (init) - блок инициализации, здесь происходит установка начальной скорости, адресов позиций и инструментов.

  • 0xC01C - 0xC032 - (play_loop) - главный цикл. В нем благодаря команде 'halt' осуществляется задержка в 20 мс, т.е. тело цикла выполняется 50 раз в секунду. Здесь же осуществляется управление мелодией и проверка, не нажали ли в данный момент клавишу пробел, чтобы выйти из плеера. Этот код нужен был, чтобы можно было прослушать мелодию без дополнительного кода, но в играх он был бесполезен, потому что там был свой код, выполняющийся по прерыванию каждые 20 мс и вызывающий код плеера, чтобы тот сменил состояние мелодии. Так мелодии можно было проигрывать в фоне, не блокируя выполнение кода игры.

  • 0xC033 - (play_frame) - именно это место должно вызываться 50 раз в секунду, чтобы звучала мелодия. Здесь идет подсчет количества вызовов. Если оно превышает скорость, заданную автором композиции, происходит смена нот. В этих мелодиях скорость всегда постоянна, а переход к следующей ноте происходит каждое седьмое прерывание, т.е. скорость всех мелодий в модуле - 7. Современную музыку для AY-3-8912 стараются писать со скоростью 3, так можно уместить больше деталей. Очевидно, чем меньше число, задающее скорость, тем чаще происходит смена нот.

  • 0xC043 - (init_next_note) - код вызывается при каждой смене нот.

  • 0xC051 - (init_next_position) - если ноты в паттерне заканчивается, то надо перейти к следующей позиции или начать мелодию сначала.

  • 0xC06C - (init_pattern) - код инициализации следующего паттерна.

  • 0xC082 - (init_next_note_in_current_pattern) - большой кусок кода по инициализации следующей ноты в паттерне. Здесь четырежды вызывается подпрограмма init_note_in_channel, которая читает управляющие команды и высоту нот, которые надо проиграть из данных паттерна, и сохраняет эти данные в оперативной памяти. Замечу, что четвертый канал отсутствует в звукогенераторе. Очевидно, этот псевдо канал задумывался для специальных команд управления состоянием. Не ясно, почему эти команды нельзя было помещать в оставшиеся три канала, сэкономив память. Кстати, здесь широко используются индексные регистры ix и iy, которые выгодно отличали процессор Z80 от его прародителя Intel 8080. При должном использовании они являлись своего рода контекстом исполнения, эдакий this, если угодно. Использование iy также указывает, что плеер не старались сделать универсальным, потому что этот регистр использовался во встроенном бейсике и изменять его в прерываниях (а плеер мог вызываться и через прерывания) не рекомендовалось.

  • 0xC0B4 - (manage_current_note) - если сменять ноты надо было не каждые 20 мс, а в соответствии с заданной скоростью, то текущие проигрываемые ноты нуждались в обслуживании постоянно. Этот код трижды вызывает подпрограмму manage_current_note_in_channel, обслуживающую инструменты, - по одному разу для каждого канала. Напомним, что инструменты могут динамически менять частоту ноты (сэмпл) или высоту тона ноты (орнамент).

  • 0xC0F5 - 0xC1E2 - (manage_current_note_in_channel) - обслуживание инструмента для данной ноты в канале. Наряду с инструментом, здесь же обрабатываются и шумовые эффекты. По результатам вычисления нового состояния для инструментов в этой процедуре заполняется буфер регистров, который позже передается в регистры звукогенератора.

  • 0xC1E3 - (ay_out) - перенос данных из буфера в регистры звукогенератора.

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

Рассмотрим код счетчика количества нот в паттерне, который по завершении паттерна переходит к следующей позиции:

По адресу 0xC043 в регистр 'A' загружается значение 0x3A. Казалось бы, это бесполезное действие, потому что следующая команда уменьшает это значение на единицу. Почему бы сразу не загрузить в регистр 'A' значение 0x39?

Идея заключается в том, что команда по адресу 0xC048 записывает уменьшенное (и, кстати, защищенное от переполнения благодаря инструкции 'AND 3Fh') значение по адресу операнда первой команды (0xC043), прямо в код программы, так что в следующий раз команда 'LD A, ...' считает значение на единицу меньше, через раз - еще меньше и так далее. Другими словами, по адресу 0xC044 хранится счетчик, который уменьшается на единицу, каждый раз при выполнении данного кода.

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

Реализация на Windows

Я начал с того, что написал бОльшую часть кода сначала для Windows, чтобы было легче производить отладку. Борьбу с Arduino оставил на момент адаптации кода к аппаратным возможностям платы. Мою реализацию для Windows можно собрать самостоятельно (каталог win-implementation у меня на GitHub; понадобится компилятор от Visual Studio 2017) или запустить готовые сборки: мелодия 1, мелодия 2.

Пара комментариев о том, как все реализовано.

Чтобы не возникло потом проблем с переносом, я старался писать код, ориентируясь на восьмибитную природу микроконтроллеров ATMega. Поэтому он изобилует типами 'uint8_t' и 'uint16_t'.

Для преобразования исходного музыкального файла в код, пригодный для компиляции, я написал небольшой скрипт на python (каталог extractor у меня на GitHub), который копирует данные мелодии в массив байт и извлекает некоторые адреса:

  • адрес начала данных мелодии (без учета плеера),

  • адрес таблицы позиций,

  • адрес таблицы банков инструментов для позиций.

В оригинальном спектруме звукогенератор AY-3-8912 производил сигналы прямоугольной формы, которые раньше мне казались грубоватыми. Изначально цели добиться аутентичного звучания передо мной не стояло, поэтому в первой версии я пробовал генерировать синусоидальные сигналы, вместо меандра. Оказалось, что вместе с прямоугольной формой сигнала ушли и все гармоники, из-за чего звук стал очень глухой. Так что от синусоидальной формы сигнала пришлось отказаться. Также в реализацию была добавлена таблица маппинга громкости. Напомню, что амплитуда выходного сигнала звукогенератора имеет 15 градаций. Энтузиасты, разрабатывающие эмуляторы AY-3-8912, установили, что зависимость между значением в регистре громкости и напряжением на выходе вовсе не линейная. Так появились таблицы для соответствующего преобразования. В больших эмуляторах такие таблицы 16-битные, в нашем же эмуляторе для быстроты расчетов используется 4 бита. Поэтому если заглянуть в исходники, можно увидеть, что уровни громкости от 0 до 3 вообще не воспроизводятся, а уровни от 4 до 9 имеют незначительную громкость на выходе. Действительно, субъективно я это почувствовал еще во время моих экспериментов по написанию музыки. Думаю, что инженеры, разрабатывающие звукогенератор, сделали это намеренно, в соответствии с законом Вебера-Фехнера (интенсивность ощущения пропорциональна логарифму интенсивности раздражителя).

В музыкальном модуле от Dizzy IV используются несложные шумовые эффекты. Их удалось реализовать при помощи простого генератора случайных чисел, работающего по алгоритму xorshift.

Реализация на Arduino

Поскольку проект делался исключительно для веселья, я выбрал плату Arduino Nano. У нее широко распространенный микроконтроллер, но он менее всего подходит для решения этой задачи. Можно было бы выбрать, например STM32, но там есть даже ЦАП, поэтому было бы совсем неинтересно, тем более на STM32 удалось запустить эмуляцию ZX Spectrum, включая генерацию видеосигнала. Что уж говорить о Raspberry Pi и аналогах, ведь на них можно эмулировать спектрум, не написав ни строчки кода.

Генерация ШИМ сигнала обеспечивается TIMER2, вывод OC2B или PD3 (или вывод D3 в терминологии Arduino). Частота ШИМ сигнала выбрана достаточно высокой - 31373 Гц, поэтому выход Arduino удалось подключить напрямую к портативной колонке без каких-либо фильтрующих цепей, посторонние призвуки отсутствовали.

На плате Arduino Nano можно управлять только двумя светодиодами. Я сделал так, что интенсивность одного из них зависит от громкости мелодии. Для простоты реализации, ШИМ-сигнал для этого светодиода формируется из прерывания второго таймера. Это происходит достаточно часто, но до тех пор пока нет цели сэкономить процессорное время, можно оставить так. Другой светодиод управляется через преобразователь uart -> usb, тут удалось вывести на него индикацию канала шума.

Выбор мелодии пока жестко задан программно, но его можно легко поменять, вызывая функцию 'get_music_data_1' или 'get_music_data_2'. Для первой композиции главный голос находится в канале A, для второй - в канале B, это надо учитывать при визуализации мелодии на светодиодах.

Проект можно собрать из каталога arduino-sketch и послушать мелодии на своем Arduino или посмотреть получившийся результат на видео.

Видео мелодии 1
Видео мелодии 2

Как я уже писал, все исходники проекта можно найти на Github.

Автор статьи: Антон Дмитриевский, Максилект.

P.S. Когда-то мы с другом делали клон известной игры Color Lines (тогда было модно делать клоны именно этой игры, их тысячи) и там в дополнение к красивой графике у нас тоже была достойная, на мой взгляд, музыка. Представляю вашему вниманию интро для этой игры. А если возникнет желание послушать внутриигровую музыку, то придется запустить игру в эмуляторе - образ диска TR-DOS можно скачать здесь, после запуска необходимо нажать на пункт меню Выбор мелодии.

Видео с интро

P.P.S. Выражаю благодарность всем авторам эмулятора Unreal Speccy, участникам проекта speccy.info.

P.P.P.S. Мы публикуем наши статьи на нескольких площадках Рунета. Подписывайтесь на наши страницы в VK, FB, Instagram или Telegram-канал, чтобы узнавать обо всех наших публикациях и других новостях компании Maxilect.

Подробнее..

Из песочницы Архитектура операционной системы для ZX Spectrum-совместимых компьютеров

28.09.2020 16:10:09 | Автор: admin
NedoOS многозадачная операционная система для русского ZX Spectrum со средами программирования на ассемблере, Basic, Pascal, C, NedoLang. Работает на TR-DOS, FAT16 и FAT32 с длинными именами, поддерживает tar, gz, zip, rar2 и практически все реально используемые форматы спектрумовских файлов, сетевые утилиты включают Web-браузер и Web-сервер, Telnet-клиент и Telnet-сервер, IRC-клиент и др. Под ОС пишутся игры, в том числе сетевые. Сейчас в репозитории 6 участников. Исходный код всей системы (58 программ) составляет 230 тысяч строк на ассемблере и 70 тысяч строк на Си.

Введение


Архитектура компьютера


ZX Spectrum 8-битный компьютер на базе процессора Z80. От прочих подобных компьютеров отличается тем, что вместо специализированного видеоконтроллера у него просто комбинация счётчиков и мультиплексоров (в оригинале собранная в БМК, но легко переводимая на рассыпуху микросхемы мелкой логики). За счёт этого компьютер сначала победил в ценовой гонке и стал машиной по умолчанию для bedroom programming, а потом легко убежал от оригинального производителя и завоевал важнейшее место в компьютеризации многих стран мира. В том числе стран, бывших в составе СССР, где Spectrum-совместимые машины выпускались околомиллионными тиражами (во всяком случае, больше, чем БК, ДВК и УКНЦ, вместе взятые).

Потрясающий воображение список известных клонов тут. Открытость архитектуры (с точки зрения паяльника а без паяльника наши клоны даже к телевизору было подключить проблематично) превратила ZX Spectrum в весьма навороченную платформу, с нетипичными для других 8-битных платформ (которые уже мертвы или заспиртованы) мегабайтами, мегагерцами, винчестерами и сетевыми картами.

ZX Spectrum до сих пор работает как платформа для инди-игр (см. идущие сейчас конкурсы Yandex Retro game battle и Твоя игра 6, дедлайн которого продлён до 1 декабря), но разработка уже редко происходит в первоначальном формате, т.е. на самом Спектруме. Это объясняется среди прочего тем, что нативные среды разработки, написанные под TR-DOS в 90-х и 2000-х, отстали от жизни, а на смену им не пришло ничего нового.

Необходимость операционной системы


Операционные системы для Спектрума пишутся с давних пор. Операционная система, которая сидит в ПЗУ, позволяет писать на языке Бейсик и возиться с магнитной лентой. Дисковые операционные системы TR-DOS, GDOS, +3DOS и т.п. добавляли в Бейсик команды работы с дискетой, однако серьёзными утилитами обросла только TR-DOS, причём не за счёт довольно неуклюжего бейсик-интерфейса, а за счёт документированных (и не очень) точек входа в ПЗУ TR-DOS.

Если не считать нескольких версий CP/M (которая изначально писалась не для Спектрума и не использует по достоинству его возможности), первой серьёзной спектрумовской ОС была однозадачная iS-DOS (раз, два, три, архив), разработанная в Санкт-Петербурге в самом начале 90-х. Она из коробки предоставляла командер и файловую систему с подкаталогами (ни с чем не совместимую), редактор текстов произвольного размера, много дисков утилит и возможность расширения своими резидентами. К сожалению расширения только в пределах окна ОЗУ размером 48K. Первые версии iS-DOS довольствовались 41K под всю систему, резиденты и программу пользователя, остальное пространство ОЗУ занимал экран размером 6912 байт.


iS-DOS в естественной среде обитания

Последние версии, до сих пор выходящие под названием TASiS (раз, два) и заточенные под клон ATM-Turbo 2+, позволяют развернуться на все 64K адресного пространства, убрать экран из памяти и переключать странички ОЗУ, но ядро системы в адресном пространстве всё равно остаётся. (То же касается и CP/M во всех известных версиях система занимает верхние адреса и неистребима.)

Предпринимались и другие попытки написания ОС. К сожалению, ни одна из таких ОС не получила заметного распространения, а многие и вовсе не были закончены.

Уже упомянутый iS-DOS получил распространение в Санкт-Петербурге и Москве. Примерный функциональный аналог iS-DOS на TR-DOS диске X-DOS остался в пределах Кирова.


X-DOS и её командная строка

Многооконная система ДОМЕН ОС/Pink Floyd, также из Санкт-Петербурга, не дожила до юзабельного состояния. В частности, жёсткие диски она не поддерживала, и в ней не было никаких средств разработки.


ДОМЕН ОС и её документация в HTML

Харьковская система DNA OS, в основном заточенная на копирование файлов, принесла определённую пользу хозяевам винтов, но софт под винт в ней так и не появился.


DNA OS и её файловый менеджер

Не дожили до жизнеспособных релизов московская NK-DOS, братская NeOS, гродненская DOORS\AQUA и саранская ZX-OS/ZXRTK. Из многозадачных ОС ближе всего к пользователю подошли многооконные MythOS (Днепропетровск) и ChaOS (Таганрог), но и они закончили свою жизнь в исходниках тоже без поддержки жёстких дисков и без средств разработки.


MythOS и её консоль


ChaOS и её хаос

Почему же было так много неудач?

Аппаратные требования для многозадачной операционной системы


Проблема всех ранних ОС для Спектрума была в том, что разработчики пытались обеспечить своему творению максимальную совместимость. Например, на iS-DOS с машинами начиная с ZX Spectrum 48K (с дисководом или HDD), а на большинстве последующих систем с ZX Spectrum 128K. Это накладывало неизгладимый отпечаток на распределение памяти.

Дело в том, что на 48K-машинах полное адресное пространство Z80 размером 65536 байт разделялось на 2 части: 48K ОЗУ (из которых 6912 байт отъедал экран, что оставляло 41 килобайт под всё остальное) и 16K ПЗУ Бейсика, от которого реальной пользы для ОС нет. В 128K дела обстояли лучше, но ненамного. Экран из адресного пространства Z80 там можно убрать (выбрав второй видеобуфер), но переключать страницы ОЗУ можно только в верхней четвертинке (с адреса 0xc000) адресного пространства. Остальные 32K ОЗУ не переключаются. А нижние 16K так и продолжают содержать ненужное для операционной системы ПЗУ. Конечно, фирменный 128K позволяет внешним устройствам (таким как LEC Memory Extension, DISCiPLE/+D, MB-02) подменять нижние 16K, а его потомки, начиная с +3, обычно имеют тот или иной встроенный порт для этого (чаще всего там доступна только одна страница ОЗУ), но половина адресуемой памяти всё равно не может меняться с переключением задач.

Представьте, что вы пишете текстовый или графический редактор под операционную систему для ZX Spectrum 128K. Очевидно, верхние 16K слишком маленький объём для текста или иллюстрации (речь не о стандартных экранах в 6912 байт), и надо либо постоянно подгружать файл с диска (что медленно и неудобно), либо раскидать документ по страницам. Где же в этом случае будет располагаться код самого редактора, его переменные и стек? Не в верхних 16K ОЗУ, потому что там документ. Не в нижних 16K, потому что там, скорее всего, ПЗУ. Выходит, всем задачам придётся делить между собой один общий блок в 32K ОЗУ. Релоцируемые резиденты, разбитые, допустим, по 256 байт, вызывают процедуры из верхнего ОЗУ, отдельные резиденты буферы для работы с данными, стек тоже ограничен 256 байтами Это очень неудобно для разработчиков. Результат: под такие системы писали только сами авторы, да и у них хватало запала только на год-два, чего недостаточно даже для создания среды разработки.

Таким образом, для удобной многозадачной системы на Спектруме жизненно необходимо иметь переключаемые страницы ОЗУ в каждой из четвертинок (выбор именно четвертинок по 16К традиционен для Speccy) адресного пространства Z80. Спектрумовских схем, которые умеют это делать, немного: это малоизвестная ZX-MMU от fk0 (2000) и более-менее распространённая ATM-Turbo 2(+) (1992, 1993):


Из документации. Установленный бит 6 включает управление через порт #7ffd (ПЗУ TR-DOS автоматически подменяет ПЗУ 48 Бейсика при исполнении кода в #3dxx), в противном случае бит 7 просто включает заданную страницу ПЗУ. ROM2 бит 4 порта #7ffd, он работает всегда.

Многие авторы операционных систем полагали, что такое требование к подсистеме памяти уметь переключать всё сильно ограничит число пользователей, и не принимали его. В результате пользователей у них получалось примерно 0 из-за отсутствия софта.

Разработка


Предыстория; что такое NedoPC


В 2002-2003 годах на просторах трёх континентов родилось движение NedoPC, которое кратко можно описать как эмм разработку компьютеров из подручных средств. И начали NedoPC с того, что другие на тот момент закончили производить Спектрумы и устройства для них. А в качестве Спектрума взяли тот самый Turbo 2+ (1993) потомок ATM-Turbo 2 (1992), который потомок ATM-Turbo (1991), который потомок Pentagon 128 (1990), известного в узких кругах как АТМ 128 (историю борьбы фирм в лихие 90-е можно прочитать в описании к Honey Commanderу). В своё время Turbo 2+ (к которому уже автоматически приклеилось обозначение ATM, как в прошлых версиях) замахивался чуть ли не на замену IBM PC ранних комплектаций с HDD (потом и CD-ROM), аналогом EGA, XT-клавиатурой (потом и AT), COM-портом, ЦАП, АЦП (также игравшими роль модема) и играми Принц Персии и Gobliiins, передранными абсолютно точно с PC-версии (не упоминаю весь софт, его много). Но часть остроумной схемы была упрятана в ПЛМ, из-за чего скопировать её мог мало кто. На просторах Украины раздавались слухи о замене ПЛМ на ПЗУ и о копировании отдельно контроллера HDD, но в общем и целом компьютер в 90-е встречался куда реже Пентагона. К счастью, потом разработчики Turbo 2+ фирма МикроАРТ передали всю документацию в свободное пользование.

Практически сразу в орбиту NedoPC втянулось несколько разработчиков софта, и пошла речь об операционных системах. Иначе ответ на вопрос куда нам плыть не получался. Первым плодом тяжких раздумий в 2005 году была уже упомянутая система TASiS, ради которой были приобретены исходники iS-DOS.

Параллельно, в 2007 году, один из авторов этой статьи создал виртуального персонажа SMAN, который как раз и разрабатывал многозадачную операционную систему. И да, она тоже прошла через этап резидентов в нижнем ОЗУ. Этот этап затянулся на годы, в 2016-2017 был даже написан компилятор Си-подобного языка NedoLang, влезающий в 48K (также компилирует под ARM Thumb). Гордиев узел был разрублен только с появлением графического редактора Scratch (2018).


Scratch и его меню

Выбор в 2018 году было совершить уже легко: совместимость с ATM-Turbo 2+ была доступна всем пользователям если не на оригинальной железке и не на NedoPCшных ZX Evo и Pentagon 2.666LE, то на ATM3 от Zorelа или хотя бы в эмуляторе (Unreal Speccy, Xpeccy, ZXMAK2, Es.pectrum и др.).


Turbo 2+ (1993, но плата явно новее)


Pentagon 2.666LE (2009), весьма редкая машина


ZX Evolution (2009), можно купить в любой булочной


ATM3 (2017), достать можно только по знакомству или изготовить самому

С этого момента система получила название NedoOS и стала развиваться взрывообразно.

Надо отметить, что для сдерживания фантазий на первоначальном этапе этого взрыва система была построена в основном на командах, совместимых с CP/M и MSX-DOS. До сих пор список команд разбит на три раздела: совместимые с CP/M (сейчас их 13, их использование не рекомендуется из-за неудобной системы FCB), совместимые с MSX-DOS (их 11, там имя файла уже идёт текстом, а вместо структур FCB используются числа хэндлы) и несовместимые (в основном нефайловые, их сейчас 48, но некоторые планируется выбросить).

Система разработки на текущий момент


Исходные тексты NedoOS всё ещё не адаптированы под имеющиеся в системе компиляторы (NedoLang и его ассемблер NedoAsm, Turbo Pascal и BDS C). Пока только 5 утилит компилируются внутренними инструментами. А основная часть пакета собирается на PC с помощью SjASMPlus (основной код) и Z80 IAR C (файловая система FatFs и некоторые утилиты).

Файлы размещаются на выделенном SVN-сервере и состоят из исходников, бинарного релиза и коллекции тулзов для сборки на PC.

Система собирается одной кнопкой (батник или Makefile две системы сборки). Можно также одной кнопкой отдельно собрать один из таргетов (под HDD, SD-карту и т.п.) и сразу запустить эмулятор. Можно отдельно собрать каждую утилиту батником нижнего уровня. Две системы сборки получилось потому, что некоторые разработчики NedoOS сидят в Windows, а некоторые в Linux.

Кроме компиляторов имеются также командный процессор cmd.com (может исполнять *.bat) и написанный с нуля интерпретатор NedoBasic с графическими возможностями.


NedoLang компилирует себя

Архитектура системы


Устройство ядра


Часть NedoOS, видимая программе пользователя, это ряд вызовов в области памяти 0x0000..0x0038, так называемый керналь. Последний из этих вызовов обработчик прерывания 50 Гц, а далее с 0x0080 следует командная строка с параметрами для программы. Пока ещё устройство керналя совместимо с CP/M (вызов через 0x0005), но мы потихоньку от этого отходим (CP/M-вызовы используются только в 4 программах из 58). Все системные вызовы организованы как макросы (программы используют модуль /src/_sdk/sys_h.asm с этими макросами и константами) и могут быть существенно изменены по мере развития ОС. Следствием этого является необходимость пересборки всей системы и прикладного софта при каких-либо изменениях в этих макросах но, как мы видели, это делается одной кнопкой.

Внутренняя часть NedoOS спрятана в страницах ОЗУ и содержит:

  • обратные стороны вызовов керналя;
  • продолжение обработчика прерывания с планировщиком задач (шедулером);
  • системный обработчик прерывания, он без планировщика, зато вызывается всегда читает клавиатуру, мышь и часы, по комбинации клавиш переключает фокус (см. ниже), выставляет палитру и видеорежим;
  • набор файловых и управляющих функций (BDOS), вызываемый через call 0x0005, как в CP/M и MSX-DOS;
  • драйверы блочных устройств (SD-карта на Z-Controller, SD-карта на NeoGS, IDE HDD, дискета, USB flash на плате ZXNetUSB);
  • драйвер клавиатуры (обычная 40-клавишная или PS/2-клавиатура ZX Evo);
  • драйвер мыши (Kempston mouse с колёсиком);
  • драйвер часов реального времени (по схеме Mr. Gluk), также система предоставляет время от начала работы в 50-герцовых квантах;
  • драйвер сетевой карты (Wiznet W5300 на ZXNetUSB);
  • файловую систему FatFs для FAT-16 и FAT-32;
  • файловую систему TRDOSFS для TR-DOS дискет и RAM-диска;
  • описатели смонтированных файловых систем;
  • описатели открытых файлов FatFs, открытых файлов TR-DOS и открытых очередей (пайпов);
  • описатели запущенных задач.

Все драйверы вкомпилированы в ядро, поэтому есть несколько разных таргетов сборки системы (ATM2, ATM2+HDD, ATM3, ZX Evo, Pentagon 2.666LE).

Обработчик прерываний, который располагается в пространстве пользователя, выглядит так:

        push af        push bc        push deuser_fdvalue6=$+1        ld a,fd_system ;зависит от текущей страницы экрана        out (0xfd),a ;уходим в контекст ядра (короткая адресация порта допустима на этом железе), там сохраняются прочие регистры и происходит переключение задач;---------;после выхода из контекста ядра:;bc=memport0000;d=pgmain        out (c),d ;may switch this code pagecurpg16k=$+1        ld a,0        ld b,memport4000/256        out (c),acurpg32klow=$+1        ld a,0        ld b,memport8000/256        out (c),acurpg32khigh=$+1        ld a,0        ld b,memportc000/256        out (c),a        pop de        pop bc        pop af        ei        ret

Переключение задач происходит по кругу (пропускаются замороженные задачи), приоритетов пока нет. Но задача idle выполняется только тогда, когда все остальные либо заморожены, либо в текущем кадре сами вызвали YIELD (системный макрос YIELD отдать время системе до следующего прерывания, системный макрос YIELDKEEP отдать время системе с возможностью возврата управления когда угодно).

Задача может сменить обработчик прерываний, можно с возвратом в него и произвольным кодом после него. Для этого есть определённые рекомендации и примеры.

Система терминалов


Задачи делятся на три типа:

  1. те, которым экран вообще не нужен,
  2. те, которым достаточно текстового терминала,
  3. графические с собственным экраном требуемого разрешения и собственной палитрой.

В NedoOS, помимо понятия текущей задачи, имеется понятие фокус (доступ к клавиатуре, мыши и экрану). Фокус между задачами переключается вручную (по комбинации Symbol Shift+Enter) или автоматически (при включении графики, выключении графики или закрытии задачи).

Задачи типа (1) никогда не получают фокус. Более того, задачи типа (2) тоже не получают фокус, вместо них фокус имеет текстовый терминал, к которому они привязаны. А привязаны они через потоки stdin и stdout, по которым гуляют буквы, цифры, закорючки и коды терминала VT-100 с некоторыми дополнениями. Stdin и stdout реализованы через библиотеку stdio.asm как очереди (пайпы). В ядре очередь имеет буфер в 255 байт. Функции записи и чтения из очереди возвращают, сколько реально прочитано или записано (как и для файлов) и не закрыта ли очередь с другого конца. Эти потоки наследуются от отца к сыну. Но в конечном итоге отображается всё терминалом term.com, который можно скроллить и даже копипастить. Есть также сетевой Telnet-сервер netterm.com. Этот netterm.com можно и не запускать, а вот term.com запускается автоматически при старте системы.


Nedovigator в терминале, а терминал прокручивается колесом мыши

Для задач типа (3) речи о рисовании пикселей через систему, конечно, не идёт для этого не хватает мегагерцев Z80 (у большинства пользователей их всего 14). Поэтому рисовать надо через память. А поскольку экранных областей на ATM всего две (как и на 128K), только одна задача может иметь собственные страницы экрана. Страницы экрана перехватываются при смене фокуса, а вместо них задаче-лузеру отдаётся фальшивый номер страницы страница, которую можно просто портить. Когда задача получает фокус, ей приходит об этом отдельное сообщение как бы от клавиатуры, но не соответствующее ни одной реальной кнопке. Это позволяет задаче вовремя восстановить экран. Ещё задача может включить режим, когда система сама хранит за неё экран и восстанавливает его.

Командная строка


Функции командной строки реализует утилита cmd, которая автоматически запускается при запуске системы. Точнее, первая задача idle запускает term с параметрами cmd.com autoexec.bat. Это значит, что cmd выполнит указанный батник. Команды, прописанные там, выполняются по порядку. По умолчанию команды выполняются с ожиданием окончания, но если команда это запуск программы, то перед ним можно поставить start программа будет работать в фоновом режиме (только это не совместимо с концепцией наследования stdin и stdout данные в очередях могут быть перемешаны).

После окончания операции, указанной в параметре (если параметр вообще был), cmd обычно завершается. Исключение оставлено только для autoexec.bat, чтобы после его окончания не остаться с разбитым корытом. Правда, в случае чего idle ожидает одновременного нажатия C+M+D и может перезапустить term с cmd.

Работа в командной строке напоминает MS-DOS. Можно перенаправить вывод запущенной операции в файл (например, dir > filename) или в другую программу (например, dir | more.com), можно перенаправить ввод (например, more.com < filename). Но передача по цепочке пока не поддержана.

Для более удобной работы с файлами используется командер Nedovigator (nv.com).


Котик, потому что Nedovigator вы уже видели

Размещение системы


Надо уточнить, что каждая файловая система у нас примонтирована к определённой букве, так что пути выглядят как m:/bin/filename.txt. Очереди имеют букву монтирования z:, но пока открываются без имени связь между задачами идёт путём передачи номера (хэндла) очереди.

Чтобы избежать специализированных загрузчиков типа GRUB, NedoOS надеется на то, что в ПЗУ компьютера имеется возможность запуска хобетного файла (*.$C) с нужного устройства например, в ZX Evo файловым браузером или по кнопке 5 в главном меню, а на Pentagon 2.666LE через встроенный копировщик Fatall. В противном случае придётся грузить ОС с TR-DOS дискеты. Системные файлы располагаются в каталоге /bin системного диска, игры лежат в /nedogame. Дополнительные файлы игр обычно размещаются в подкаталоге, одноимённом игре: например, раскрашенная под NedoOS игра /nedogame/br.com (Чёрный Ворон) имеет также каталог /nedogame/br с графикой, музыкой и уровнями.


Цветной Ворон

Текущие возможности


Память: поддерживается до 4M ОЗУ (настраивается в системе сборки), память выдаётся задачам по запросу страницами по 16K, задачи могут и сами их возвращать в систему. Из-за отсутствия защиты памяти в железе всю память можно считать разделяемой. По умолчанию страницы выделяются с начала памяти, не считая нескольких системных страниц. Своп не поддерживается (он рассматривался на ранних этапах, но требует перенумерации страниц, что сильно снизит производительность обычных задач).

Многозадачность: вытесняющая (по прерыванию 50 Гц) и кооперативная; одновременно может быть запущено до 16 задач (одна из них idle, её можно снять, но тогда YIELD не даёт гарантий); можно подставить свой плейер музыки в системный обработчик прерываний будет выполняться в контексте ядра с тремя страницами пользователя (переключать их на лету пока нельзя). Задачи могут быть в замороженном состоянии (если они только что созданы, удаляются или ожидают потомка). Можно в cmd смотреть список задач, их активность и наличие графического режима, снимать с исполнения (при этом освобождаются их страницы, файловые записи FatFs и сетевые сокеты).

Файлы: можно одновременно открыть до 16 файлов FAT, 8 файлов TR-DOS и 8 очередей. Можно одновременно читать и писать несколько файлов (важно для компилятора) даже на дискете! Можно считывать параметры файла, указатель на текущую позицию, менять эту позицию, создавать и переименовывать директории. Очереди предполагают две задачи-пользователя, их требуется открывать один раз (при создании), но закрывать дважды. Файловые операции выполняются в контексте ядра, в это время не работает планировщик задач, но работает системный обработчик музыки.

Работа с сетью: протоколы ICMP, TCP, UDP, одновременно до 8 сокетов. Имеются утилиты ping, time, telnet, netterm (Telnet-сервер), dmirc (IRC-клиент), dmftp (FTP-клиент) 3ws (Web-сервер для копирования и удалённого запуска файлов), NedoBrowser (текстовый браузер с возможностью отдельно смотреть картинки jpg, gif, png, bmp и svg последние два формата с ограничениями; поддерживает протоколы http и gopher, https через прокси), wget (фоновая скачка файлов, запускается из браузера, умеет автоматически запускать просмотр графики и плейер музыки).


NedoBrowser что-то ищет в Интернете

Работа с архивами: .tar и .rar доступны на чтение и запись (ZXRar урезанный аналог Rar 2.x под DOS без ряда кодов, solid архивов, мультимедийного формата и шифрования, ZXUnRar поддерживает все коды и solid архивы, но тоже не поддерживает мультимедию и шифрование), .gz и .zip только на чтение. Пока всё только через утилиты командной строки.

Типы документов: файловые ассоциации прописаны для встроенного командера Nedovigator в файле nv.ext. Сейчас этот файл выглядит так:

bmp:scratch.combat:cmd.comtxt,new,ext,ini,nfo,diz:texted.comgif,jpg,png,htm,svg:browser.comtfc,pt2,pt3,mt3,m  :player.com (pt3 можно редактировать специальной версией Pro Tracker под NedoOS)bas:basic.comzip,gz :pkunzip.comtrd,scl,fdi,tap:dmm.com (программы TR-DOS и ленточные  они запускаются на ZX Evo путём монтирования образа, их можно переключать, сохранять и выключать по кнопке Magic; то есть можно, например, играть в игру и периодически переключаться и писать описание)16c,scr,fnt,img,3  ,888,y  ,+  ,-  ,plc,mc ,mcx,grf,ch$,mg1,mg2,mg4,mg8,rm ,mlt:view.commod:modplay.comtar:tar.comsna,b  ,z80:nmisvc.comrar:unrar.com

Имеется также с десяток игр, в том числе эмулятор Супер Марио (для работы требуется дамп картриджа), раскрашенный Eric and the Floaters, частичный порт Бесконечного лета и сетевой Snake.

Планы


  • Расширение функционала батников (уже передаются параметры)
  • IDE и self-hosting
  • Слои в графическом редакторе
  • ...

Заключение


На текущий момент в NedoOS реализован весь нужный костяк функций, так что при наличии нужного железа системой удобнее пользоваться, чем не пользоваться.

Но впереди ещё много работы. Идеал тем ближе, чем больше разработчиков подключится к проекту.


В основном разработчики NedoOS обитают в IRC-канале #mhm на irc.forestnet.org (также доступно через http://chat.forestnet.org/). Существует вечерний Twitch-канал зеркалом на YouTube). С сайта NedoOS можно скачать стабильную версию и свежие исходники.
Подробнее..

Свой ремейк ZX игры Reskue в Steam

12.06.2021 16:15:59 | Автор: admin

Да, понимаю, что это игра про учёных, но это не игра про немого учёного с монтировкой с цифрой 3, которую все ждут. Что вышло за 4 года разработки.

Официальное описание: Научная станция в глубоком космосе перестала отвечать на запросы. Что там произошло? Вы агент, прибывший выяснить, что случилось и Ваша задача спасти важное открытие, сделанное на станции.

Ученые находятся в комнатах с колбами. Система по очереди открывает криокамеры, и они постепенно отходят от заморозки и плохо соображают. Вам необходимо спасти не менее шести представителей науки: каждый из них обладает важным фрагментом информации. Вражеская техника управляется извне и занимается уничтожением имущества и людей. К счастью в складских помещениях достаточно снаряжения и техники которые могут помочь в вашем деле.

Заправьте свой корабль радиоактивным топливом и спасите ученых. Берегите себя, науку и удачи!

Это ретро экшен, требующий достаточной быстроты, либо ловкости, либо хитрости от игрока. Есть несколько тактик прохождения игры. Кроме арсенала в 10 видов оружия, каждое из которых накладывает особый эффект на врага и имеет несколько режимов стрельбы, есть ещё и хитрость в виде ловушек или предметов сильно отвлекающих противника. некоторых настолько что игрок будет почти невидим для врагов. Даже на нормальной сложности игра не будет лёгкой прогулкой по которой игрока будут водить за ручку и обьяснять Press F to Win. Однако если вам игра покажется слишком лёгкой уровень сложности можно повысить.

В самой игре заложена и пара "пасхалок" напоминающих о спектруме. Я не скажу где они однако одна из них содержит пару обьектов из Boulder dash, а другая ещё что-то.

Ключевые обновления:

  • Добавлен режим хотсита - кооп (. затем kp9) и версус (. затем kp7). (Игра на 2 клавиатурах и/или джойстиках). Cетевая игра увы возможна только через Steam remote play.

  • Все почти враги теперь анимированы (новое видео пока не готово)

  • Внешний интерфейс (USER GUI) доработан. (Инвентарь, выбранное оружие, датчик жизни, кулдаун, селектор оружия.)

  • Встроенная игровая справка по F2 с описанием тактики поведения и арсенала.

Ключевые особенности

  • Редактор карт поддерживает импорт карт M2K (mission 2000), Rescue+ с реального ZX-Spectrum. Карты будут работать если их копировать программой HOBETA.

  • Мультиязычность и кроссплатформенность.

  • Высокая скорость работы даже на устаревших компьютерах.

Подсказка: Максимально просто игру можно пройти вдвоем - Один из игроков должен выбрать ученого при начале совместной игры.

Игра нетребовательная идёт почти на всём. Требования: 64бит и OpenGL 3.3 и хотя бы 30 мб места.

Steam Ранний доступ.

Все списки обновлений переводятся также на 3 языка как и сама игра. Прочесть можно на страничке игры

Я ранее писал статью на DTF и если кто хочет просто попробовать игру Reskue или M2K или Colony (очень ранняя версия) может скачать их ниже.

Видео новее пока нет. если только про кооператив и версус ссылка под видео. С тех пор игра была сильно переработана но я пока не осилил трейлер.

Хотсит на русском.

Новый трейлер на польском.

Я на вопросы иногда делаю выпуски видеоответов. Реже чем надо было бы, но делаю. https://www.youtube.com/watch?v=JJAe2b-kTgs - Руководство о портировании готовой игры на Love в Android APK (с подписью) для Linux. В блоге разработчика (devblog) бывают и арты и рисунки и другая всячина.

Игра написана с нуля и сохранившая в основном идею оригинала (Rescue od Mastertronic) и схожесть с Spectrum играми (тайлы, цветовая гамма, некоторая хардкорность геймплея и некоторые команды в Lua движке.). От оригинальной игры не используется ничего, перерисовано все что возможно. Изначально я делал ремейк собственной игры M2K (mission2000), затем понял что на основе движка могу сделать новую игру что и начал в 2019, вдохновили меня в коллективе confa-gd на конкурсе Джем победы на это. Канал по игре.

C чего всё начиналось:

Это оказался прекрасный фундамент для применения множества идей как Sci-fi так и просто современных удобств геймплея каждую из которых пришлось делать самому, т.к. движок мой авторский на Love framework. Я постарался бережно развить идею так как ранее с ограничениями платформы ее развить было бы значительно сложнее. Я с трудом нашел нескольких художников и аниматоров и за ещё 2 года и 16К получилась эта игра. Отдельная история и целая лекция получилась по работе со Steamworks чтобы игра попала в магазин, это заняло целых полгода в основном доработки тексту. Я даже не думаю что она вообще когда то отобьется и будет кормить меня и принесет мне хоть что то. мне просто хотелось возродить частичку классики так как я её вижу и сделать ее доступной всем.

Также я веду небольшой ютуб и телеграм каналы без мемасиков и приколов посвященный Linux для домашнего использования. Сборка в основном для тестирования Windows игр предназначена. Сам я выбрал Mint c Mate DE немного новостей немного взаимопомощи.

N.B. Людям, которые ждут, что один человек почти в одно лицо накодит им Ведьмака 3 в 3D за денек, прошу выйти из чата. Этим методом получатся только игры для Gry z kosza (польская передача об очень плохих играх).

Мне просто хочется, чтобы в эту игру можно было сыграть и через много лет спустя, я думаю Steam с нами всеми надолго и игра там точно проживёт много лет. Да название я написал в духе названия mortal kombat. А почему нет?

Также я время от времени обновляю код движка на github. У меня там несколько проектов.

Подробнее..

Перевод История создания Dizzy

07.11.2020 22:21:21 | Автор: admin

Оставленный без внимания профильными изданиями, но любимый игроками, Диззи был феноменом среди блокбастеров в Великобритании середины 80-х. А история о том, как улыбающееся яйцо три года доминировало в топах программного обеспечения, это наглядный пример программирования в спальне, доведённого до абсолюта.


Близнецы Оливеры, только что освоившие новенький BBC Micro (один из ранних домашних компьютеров), приняли участие в конкурсе детской телепередачи The Saturday Show по созданию видеоигры. Они победили, оказавшись единственными, кто прислал настоящую игру, а не набросок, нарисованный мелком. Позже братья продали свою Gambit компании Acornsoft за 200 фунтов.


Обнаружив, что видеоигры могут приносить деньги, Эндрю и Филип Оливеры потратили следующий год на написание программ для различных издателей сначала на своём BBC, а затем перешли на Amstrad (другой домашний компьютер). Затем, в сентябре 1985 года, братья посетили первую в истории ECTS (Европейскую компьютерную выставку), где познакомились с Ричардом и Дэвидом Дарлингами. Будущим основателям Codemasters требовались программисты-фрилансеры. Их предложение заключалась в том, что если мы напишем для них игру, то получим 10 тысяч фунтов, вспоминает Филип Оливер. Но было одно условие: игра должна выйти к Рождеству. Поэтому братья поспешили домой и за шесть недель написали платформер Super Robin Hood. А продано было 100 тысяч копий игры.


image


image


Во время работы над следующей игрой для Codemasters Ghost Hunters, Филип начал прорабатывать основной дизайн персонажа, которым стал Диззи. Как он объясняет: Я сидел и работал над главным героем Ghost Hunters рисовал его лицо. Но у меня было только три пикселя в высоту, четыре пикселя в ширину и четыре цвета. Особо тут не разойдёшься, поэтому мне стало скучно, и я начал набрасывать идеи. Мне пришло в голову, что на самом деле нам нужно, чтобы игрок проявил сочувствие к персонажу, и единственный способ если он сможет видеть его лицо. Я подумал: лицо должно стать размером с персонажа. И мы сделали его максимально большим мы могли отрисовать что-то вроде 32 пикселей в ширину и примерно 48 пикселей в высоту, и при этом быстро перемещать его. Разумеется, не было смысла пытаться создать реалистичного человека в таком случае нужен мультяшный персонаж. Мы нарисовали глаза, рот и нос, приклеили пару ног. Руки всегда выразительны, поэтому мы их тоже наклеили. На то, чтобы придумать дизайн Диззи, ушло буквально полчаса.


image


Ghost Hunters вышла с более реалистичным главным героем человеком. Но близнецы не стали выбрасывать свои наработки с яйцевидным персонажем. Они начали придумывать игровую вселенную, подходящую для этого героя. Эта творческая свобода в то время была нормой для программистов Codemasters. В ранние годы разработчиков брали на внештатной основе. Это обычно означало, что команда из одного или нескольких человек программировала игры из дома. Вдобавок к этому только программисты отвечали за свои проекты. Как говорит Эндрю: Они никогда не заказывали что-то конкретное, и вам не надо было дожидаться утверждения. Вы писали игры и отправляли им готовый продукт.


Невероятное приключение


С помощью Диззи Филип и Эндрю решили создать невероятное мультяшное приключение (Dizzy: The Ultimate Cartoon Adventure). Будучи популяризаторами, они хотели охватить массовую аудиторию, которая в то время была молода и неопытна в технологиях. Поэтому братья решили создать тематическую головоломку/платформер/приключенческую игру на основе сказок.


Сказки известны и богаты на материал, их знают во всём мире, утверждает Филипп. Наша основная механика игрового процесса заключалась в том, чтобы взять предмет и отнести его туда, где можно использовать. Очевидно, что такое уже делали раньше, но это было завязано на ключах от запертых дверей, и я считаю это довольно скучным занятием. Таким образом, старая механика расцвела в сказочном мире. Волшебный боб, брошенный в нужном месте, вырастал в бобовый стебель, чтобы обеспечить доступ к высокой платформе. Непроходимую гигантскую крысу можно было увести, играя на дудке, взятой у Крысолова.


image


Процесс производства игры был уникальным для того времени. Как говорит Филип: Мы разделили задний план и передний план, поэтому один из нас делал декорации, а другой брал всех движущихся персонажей.


К тому времени у ZX Spectrum был гораздо больший рынок, чем у Amstrad, поэтому Dizzy была разработана под эту систему. Братья ненавидели клавиатуру Спектрума, поэтому писали игру на своих Амстрадах, попросив друга специалиста по электронике, сделать кабель, способный передавать данные на Spectrum через порт для принтера. Обе машины работали под управлением Z80, они были очень похожи. У них были немного разные графические форматы, но, поскольку мы создавали графику в небольшом редакторе, то просто добавили некоторые параметры для сохранения в форматах Spectrum и Amstrad. В дальнейшем мы делали то же самое с Xbox, GameCube и PS2, объясняет Филип.


image


image


У Amstrad были и другие преимущества, помимо приличной клавиатуры. У машины имелся отличный дисковод, обеспечивающий произвольный доступ, высокую скорость и надёжность. Также к ней был выпущен дополнительный чип MAXAM, который можно было подключить к порту расширения на задней панели машины. Он стоил 80 фунтов и давал возможность писать на ассемблере для Z80 и компилировать его в машинный код. Это главная из причин, почему Оливеры могли так быстро делать игры они не были привязаны к медленной и ненадежной магнитофонной системе записи в Спектруме.


Братья также разработали технологии дизайна и программирования, чтобы придать Dizzy особый вид. Мы создали фон из 255 спрайтов нестандартного размера, около 50 из которых были алфавитом и цифрами. Наш редактор позволял размещать любые спрайты в любом месте экрана с попиксельной точностью, с возможностью смешивания и перекрытия других объектов. Чтобы нарисовать дерево, мы накладывали несколько кусков ствола друг на друга, а затем добавляли несколько случайно расположенных шаров листвы. Всё, дерево готово. Наша программа позволяла переворачивать спрайты по горизонтали и вертикали, что помогло сделать вещи более уникальными и менее повторяющимися. Благодаря этому игры серии Dizzy выглядели довольно органично и сильно отличались от других проектов того времени, в которых использовались выровненные графические блоки 88. С помощью нашей технологии можно было заполнить весь экран, затратив меньше памяти, что позволяло нам создавать большие и интересные карты, которые способствовали успеху Dizzy.


Кстати, своё имя Диззи получил из-за того, что яйцевидный герой Оливеров крутит сальто во время прыжков. Акробатика в игру была добавлена ровно по одной причине редактор братьев умел плавно вращать спрайты, и они обожали пользоваться этой фишкой.


image


image


Первая часть Dizzy, выпущенная в 1986 году, поднималась в чартах продаж довольно медленно. Впрочем, на игру работало сарафанное радио. Она вышла, как и любая другая игра Codemasters в то время, без рекламы и рекордных продаж, хотя компания и получала тысячи писем от довольных фанатов. Другие игры Codemasters продавались в течение месяца после выхода, а затем про них забывали. Но Dizzy держалась на плаву очень долго. И год спустя, когда мы закончили Treasure Island Dizzy, первая часть всё ещё была в чартах. И когда мы выпустили новый проект, он сразу попал в топ.


image


image


С этого момента близнецы Оливеры превратились в конвейерную линию из двух человек, создавая игру за игрой и укладываясь в шесть недель на каждую. В Fantasy World Dizzy (третьей игре серии) они придумывали по две карты в день, рисуя их на бумаге, прежде чем написать код. Игра была завершена в течение месяца. В 1986 году на долю братьев приходилось семь процентов всех игр, выпущенных в Великобритании, и по их оценкам в следующем году около 50 процентов продукции Codemasters содержало их имена в титрах.


Трудовые будни


В этот напряженный период середины 80-х Оливеры часто занимались программированием по 20 часов в день, семь дней в неделю. Они стали экспертами по выдаиванию игровых франчайзов. Позже, после выхода первых игр про Диззи, братья занялись другими проектами Codemasters, такими как Advanced Pinball Simulator и Jet Bike Simulator. Как объясняет Эндрю: Чтобы избавиться от скуки, мы делали игру серии Dizzy, потом брались за игру-симулятор, затем снова возвращались к Диззи, после ещё один симулятор. А время от времени создавали что-то вроде 3D Starfighter.


image


Codemasters выпустила около 14 игр серии Dizzy на множестве платформ. Игровой процесс был схожим во всех играх (кроме таких ответвлений, как Fast Food клона Pac-Man и Dizzy Panic головоломки в стиле Тетриса). Высокие оценки игры получали уже редко, но серия сохраняла хорошие продажи. Dizzy была самым прибыльным франчайзом компании до появления Micro Machines, помогая ей пережить судебные споры с Nintendo и Sega. По иронии судьбы единственная игра, удостоенная хоть какой-то индустриальной награды, The Fantastic Adventures of Dizzy 1991 года для NES, это последняя часть, выпущенная Оливерами. Когда Codemasters погрязла в судебном процессе с Nintendo из-за выпуска чит-устройства Game Genie, братья поняли, что это помешает разработке игр, и вскоре ушли, сделав ещё пару частей Dizzy, которые были опубликованы только относительно недавно (в 2015 году Оливеры выпустили Wonderland Dizzy, а в 2017-м Mystery World Dizzy: все они доступны бесплатно в интернете).


В дополнение к сказанному


В 1991 году братья основали свою собственную студию Interactive Studios, которая в 1999 году сменила название на Blitz. Blitz Games закрылась в 2013 году, но в октябре того же года Оливеры вместе с давним другом и коллегой Ричардом Смитисом основали Radiant Worlds, чтобы разработать SkySaga: Infinite Isles для корейской компании Smilegate. SkySaga была амбициозной онлайн-игрой на основе вокселей, основанной на оригинальной концепции, разработанной членами команды Blitz Games Studios. В августе 2017 года Smilegate приостановила разработку SkySaga, а Оливеры и Смитис выставили свою компанию на продажу. В январе 2018 года британский разработчик и издатель игр Rebellion приобрёл компанию и переименовал её в Rebellion Warwick. Близнецы оставались в Rebellion до февраля 2019 года, после чего ушли, чтобы основать игровой консалтинговый бизнес.


image


Касательно Диззи


В мае 2017 года Оливеры объявили, что будут работать над новой игрой Dizzy первой за более чем 20 лет. В видео для проекта ZX Spectrum Next на Кикстартере они сказали, что игра будет вдохновлена классической книгой Волшебник страны Оз автора Л. Фрэнка Баума и будет называться Wonderful Dizzy. Делают её, кстати, преимущественно российские разработчики, который незадолго до того выпустили замечательный ремейк Crystal Kingdom Dizzy для ZX Spectrum.


image




Статья была взята из журнала Edge Special Retro 02/2003, переведена и немного дополнена.
Изначально выкладывал материал на ресурсе Идеальный Пиксель сайт понравится всем фанатам ретро-игр и старых компьютеров.

Подробнее..

Прикоснемся к магии или как я вступил в ряды MISTического общества

27.03.2021 00:13:02 | Автор: admin

Ниже предложен рецепт приготовления деликатеса, позволяющего Вам попробывать различные 8 и 16-битные приставки и компьютеры. Основное же блюдо для меня miniMIG эмулятор Амига с графикой OCS/AGA/RTG и CPU до 68020 в 20 раз быстрее стандартной A600.


В свои студенческие годы после ZX-Spectrum (Пентагон-128 с дисководом) я прикоснулся к волшебному миру Амига, сначала A600, затем A1200, аксели от 030-40MHz до PPC603+040. И вот, совсем недавно я узнал о Apollo Vampire (цена конечно кусачая) решил поискать что-нибудь подобное. Нашел несколько вариантов, но самый интересный, на мой взгляд, проект MIST доделанный Павлом Рябцовым. Проштудировал ветку Сборка, настройка платы MiST v 1.31 , заказал на сайте CHIPkin две печатные платы (как оказалось потом правильное решение, попеременно возникали проблемы то с одним, то с другоим экземпляром) и детали, которые были в наличии. Остальное было куплено на Али и "Чип и Дип", по мере прибытия деталей, начал сборку, о чем и хочу рассказать вам. Если Вы являетесь таким же OLD-фагом старых компьютеров, как и я, пожалуйста, приготовьтесь к прочтению.


1. Собираем цепь питания и индикации. Устанавливаем на плату силовые микросхемы IC1 LM3940IS-3.3, IC2 1117-2.5V, IC4 1117-1.2V, электролиты C4, C6, C7, C10, C19, C22, также можете накидать парочку блокировочных конденсаторов на 100n. Припаяем цепь индикации красный LED3, зеленый LED2, желтый LED1 светодиоды и токоограничивающие резисторы R3, R7, R45 на 220 Ом к ним. Питание я подавал на con jack DC +5V уж больно microUSB по мне хлипенькие, кнопку поставил 6 контактную, хотя видел и вариант с угловой на два. Не забудьте припаять 0 резистор R1 с обратной стороны платы или кинуть "соплю" на контакты. При подключении питания и включении кнопки должен засветиться зеленый светодиод. Проверьте напряжения со стабилизаторов 3.3V, 2.5V, 1.2V. Вот что у меня получилось :



2. Запаиваем IC7 AT91SAM7S256 и все что нужно для её запуска транзистор T1 IRLML6402, резисторы R20, R46-R50, R72, R76, R78, R80, R82-R85, конденсаторы C33, C42-C48, C57-C64. В конце припаяем кварцевый резонатор Q3 18.432MHz, кнопки S2-S4, двойной dip переключатель S5, разъем SV3 для вывода отладочной информации, гнездо ARM JTAG SV4 и перемычку JP1. Разъем microUSB я подобрать не смог, может вам повезет больше, припаял провода от сломанного кабеля.



Теперь можно приступить к программированию ARM, для этого установим SAM-BA v2.18 (for Windows) качаем с сайта www.microchip.com. Первое включение на 5сек провести с замкнутой перемычкой JP1, в это время должен проинициализироваться USB загрузчик и при повторном включении без перемычки в диспетчере устройств появится новый USBSerial/COMxx порт. Запустите программу SAM-BA, выберите нужный COM порт, тип процессора и жмите Connect.



В следующем окне сначала выбираем Erase all flash жмем Execute, затем выберите файл прошивки поновее и нажмите кнопку Send File. Подробнее читайте мануал HowToInstallTheFirmware, там же найдете о программировании через JTAG.



В следующем окне сначала выбираем Erase all flash жмем Execute, затем выберите файл прошивки поновее и нажмите кнопку Send File. Подробнее читайте мануал HowToInstallTheFirmware, там же найдете о программировании через JTAG.


Все вышеперечисленное у меня получилось лишь на второй плате с МК rev. D, заказанным из магазина "Чип и Дип", первую плату с контроллером rev. C заказанным с Алика я тоже потом завел, замкнув вывод ERASE на 5сек. Возможно контроллер был б.у. поэтому и потребовались подобные фокусы.


3. Пора паять обвязку SD карты резисторы R77, R79, R81, дроссель L1, заодно контроллер USB U1 MAX3421E, резистор R65, конденсаторы C36, C40, C41 и резонатор Q2 12MHz. Не забываем припаивать конденсаторы на 100nF, вот что у меня получилось :



Подключите к SV3 USB-COM адаптер типа такого :



Если у вас все запаяно правильно и установлена карта, в терминалке увидите :


Minimig by Dennis van Weeren
ARM Controller by Jakub Bednarski
Version ATH201126
SDHC card detected
spiclk: 24 MHz
usb_init
max3421e_init()
Chip revision: 13
busprobe()
usb_reset_state
...

У меня упорно выдавался "Chip revision: ff" на второй плате, пока я не прозвонил все ноги. Оказалось не пропаял вторую ногу ARM к земле.


4. Раз все нормально, распаиваем USB HUB IC6 TUSB2046B, резисторы R51, R53, R55, R56, R66-R75, конденсаторы C35, C37, C38, C39, C49-C56. Обратите внимание, что номинал C38, C39 100pF, в BOM листе с сайта zx-pk.com ошибка, они там указаны 100nF, с такой ёмкостью USB HUB работать не будет. Также вместо резисторов R57-R64 в моем варианте платы место под резисторные сборки на 4 резистора по 15КОм с первым общим. Исправленный список деталей смотрите в полезных ссылках. В конце установим кварц Q1 6MHz, термопредохранитель R54 на 1.1A и двухэтажные USB гнезда :



5. Теперь, самое интересное, FPGA IC5 EP3C25E144. Здесь поаккуратней, на одной плате у меня был непропай с нее на CAS ОЗУ, пришлось любоваться графическими артефактами, пока не прозвонил все ноги. Необходимый минимум для ее запуска генератор OSC1 на 27MHz, дроссель L1, резисторы R4-R6, R8-R10, R12-R15, как обычно конденсаторы по питанию на 100nF.



C обратной стороны платы припаяйте мощным жалом подложку и блокировочные конденсаторы, без пропайки подложки у меня корка зашивалась с ошибкой.



Если FPGA рабочая и не перемаркировка, в дебажном выводе читаем лог про FPGA:


FPGA bitstream file opened, file size = 385575
[************************]
FPGA bitstream loaded
FPGA configured in 1918 ms
ident = a3
Identified MiST core
...

Код ident зависит от корки, для TurboGFX он равен a4, главное чтобы не было ошибок.


6. Теперь можно запаять память IC3 MT48LC16M16A2, ее заказал с префиксом 75D, так как увидел на схеме такую строчку :
SDRAM model is MT48LC16M16A2, speed variant -75 (tAC=6ns, tOH=3ns)
У одного человека увидел SDRAM H57V2562GTR-75C, но в нашей деревне ее найти оказалось сложнее, а мой вариант :



7. Распаиваем видео DAC однопроцентные резисторы R22-R42 и на синхро R16, R17 и конечно X2 узкий VGA разъем. С первой платой я возился неделю, почему нет видео, хотя по логам все ОК, оказалось пожалел пасты на строчный резистор.


8. Допаиваем оставшиеся блокировочные конденсаторы и аудиотракт резисторы R18, R19, R43, R44 и конденсаторы C28, C29, C31, C34 и линейный выход X1. Наушники тоже работают, домашняя специфика позволяет слушать только через Sennheiser, Infinity пока простаивают без дела. Насчет конденсаторов C30, C32 прочитал на форуме что без них "звук повеселее", на одной плате я их не запаял, действительно стало побольше высоких частот. Однозначно сказать не могу, решать Вам, попробуйте оба варианта.


9. Так как Midi пользоваться точно не буду, а на часы сразу детали не пришли, осталось припаять термопредохранитель R52 на 0.2A и разъемы X3,X5 папа DR9 для оригинальных джойстика и мыши (еще не проверял). В итоге получилось так :



Осталось залить амижную корку с ROM и другими необходимыми файлами и полюбоваться на картинку :



Последний раз подобное я видел около 20 лет назад, смахнул скупую слезу и пошел качать образы HDD для эмулятора. Использовать для каждого девайса свою флешку неудобно, я пользуюсь Sorgelig's startup menu для выбора систем через core менеджер. С ним у меня не заработали TurboGFX и Амижная, но под последнюю я и планировал отдельную карту. Очень порадовал ZX, игру Target Renegade с General Sound я чуть-ли не прошел до конца.



Если у Вас ошибка при загрузке FPGA, советую припаять разъем JTAG SV1 и через ByteBlaster с помощью Quartus 13 прошить последовательно уроки с 1 по 4, подробнее почитайте раздел SOC в MIST developer tutorials, возможно это наведет Вас на путь истинный. Обязательно переведите ползунок 1 переключателя S5 в ON перед подключением.


Полезные ссылки :


  1. Обещанная ссылка на исправленный BOM list
  2. Сайт разработчиков MiST FPGA retro gaming .
  3. Статья FPGA MiST Guide на сайте arekuse.net.
  4. Архив SD Amiga на сайте MEGA.

И самое главное, ради чего затевалось данная публикация. Есть у меня идея заменить Atmail на STM32F4, автоматически выкинутся часы и наверное MAX3421E. В будущем можно поставить Cyclone 4 пожирнее. Если у Вас есть мысли по этому поводу, милости просим.

Подробнее..

8 битный компьютер Sprinter Спринтер

19.06.2021 12:05:20 | Автор: admin

Памяти Ивана Петровича Макарченко
(1966-2013)
От поклонников его творчества, и по совместительству моих собеседников

Привет Хабра люди! Это моя первая статья на Хабре.

Я эпизодически интересовался компьютерами из серии сделай сам, те которые пользователь может спаять самостоятельно. Интересовался спектрумом и его многочисленными клонами, смотрел современные видео самостоятельных сборок спектрума на ютубе. Совершенно случайно, через знакомого я узнал, о редком, забытом 8 битном компьютере Спринтер, чья разработка внезапно ожила в последнее время. И который, возможно собрать своими руками.

Информации о данном проекте в интернете чрезвычайно мало, есть темы на форуме http://winglion.ru/ . Основные свои представления о Спринтере, я почерпнул из личного общения и telegram, поэтому возможно в моем посте будут содержаться фактические ошибки, или же простое недопонимание. Простой поиск по Хабру показал, что на нем нет статей по компьютеру Спринтер / Sprinter, есть только упоминания о нем в статьях посвященных zx spectrum. Моя статья это попытка закрыть этот пробел. Надеюсь, эта статья будет полезной для популяризации компьютера Sprinter, так и интересной для любителей ретро техники. Хотя, она может и выглядит довольно сумбурной.

Персональный компьютер Спринтер, достаточно современный 8 -битный компьютер, чья окончательная версия была представлена фирмой Петерсплюс/Peters Plus 7 августа 2000 г. Хотя рабочий прототип был впервые представлен на компьютерной выставке enlight'96, в 1996 году. Его производство было остановлено в 2003 году. 1 февраля 2007 Иван Мак - Иван Макарченко- winglion (разработчик компьютера Спринтер) объявил о том, что фирма Петерсплюс отдала ему все наработки, по - этому компьютеру, и теперь он готов со временем открыть проект. После его смерти, поддержкой, восстановлением проекта, и дальнейшей разработкой данного компьютера занимается группа энтузиастов.

Sprinter от Петерсплюс известен как, sp2000, был компьютер Sp97, который был прототипом.

Как мне стало известно из открытых источников, Спринтер в 90-х разрабатывался как полноценный, дешевый заменитель дорогого IBM PC совместимого пк.

Реклама на сайте Петерсплюс сообщала, что персональный компьютер Sprinter является универсальным компьютером на базе 8-ми битного процессора Z-80 корпорации Zilog. Архитектура компьютера основана на перепрограммируемой логической матрице (PLD) корпорации Altera. Так же указывалось, что: использование PLD позволяет программно изменять архитектуру компьютера без замены каких-либо компонентов платы компьютера. Компьютер Sprinter имеет две конфигурации для различных режимов работы. Конфигурация Sprinter является главной конфигурацией, обеспечивающей наиболее интересные возможности компьютера по выводу графики и звука. Конфигурация ZX Spectrum является первой конфигурацией служащей для совместимости с другими популярными компьютерами. Вы можете использовать режимы нескольких клонов компьютера Spectrum, не покидая ваш Sprinter. Компьютер Sprinter использует стандартную современную периферию. Это позволяет вам использовать доступный принтер для печати документов и рисунков, проигрыватель компакт дисков (CD-ROM) для прослушивания аудио CD, винчестер для хранения ваших файлов.

После объявления Иваном Макарченко о публикации прошивки компьютера Спринтер началось так называемое второе пришествие Спринтера.

После смерти Ивана Макарченко , спустя несколько лет спонтанно собралась Sprinter Team 24.11.2020. Создана группа в telegram: https://t.me/zx_sprinter, с очень лояльными для новых пользователей правилами: запрещены мат и личные оскорбления. Репозиторий исходный кодов, расположен по адресу: https://gitlab.com/sprinter-computer. Создан сайт http://sprinter8.com/, только он похоже пока не наполнен. Полноценный , наполненный сайт находится по адресу http://sprinter8.net/ . Официальные форумы: http://www.nedopc.org/forum/viewforum.php?f=60 https://zx-pk.ru/forums/121-sprinter.html.

Именно с 2020 года начинается так называемое Третье Пришествие Спринтера. На данный момент, платформа спринтера начала развиваться заново, выходят свежие ревизии материнских плат, добавляются новые возможности в архитектуру компьютера. Идут оживленные дискуссии о дальнейшей линии развития компьютера Спринтер, идеологии платформы, его будущей аудитории, вопросы ретро-гейминга, восстановление редких, и казалось бы утерянных игр (Thunder in the Deep). Довольно активно ведутся стримы с трансляциями запусков игр, и разработки нового программного обеспечения.

На сегодняшний день этот компьютер обладает следующими характеристиками: микроконтроллер z84c15 с частотой 21 mzh. Z84C15 микроконтроллер с ядром z80 и несколькими интегрированными периферийными чипами от Zilog.

Стандартные графические режимы:

  • 640х256 4 палитры по 16 цветов из 16 млн., две страницы ( по умолчанию в странице 0 установлена палитра 0, а в странице 1 палитра 1).

  • 320х256 4 палитры 256 цветов из 16млн., две страницы ( по умолчанию в странице 0 установлена палитра 0, а в странице 1 палитра 1).

Текстовые режимы:

  • 80х32 текстовый режим,

  • 40х32 текстовый режим (он нигде не используется).

Так же присутствует ZX Spectrum графический режим, он может иметь тайминги Пентагона или тайминги Скорпиона.

Расширенные графические режимы появившиеся буквально недавно:

  • 352*280 точек, 4 палитры по 256 цветов из16 мл. цветов, 2 страницы,

  • 704*280 точек 4 палитры по 16 цветов из 16 млн. 2 страницы.

Экспериментальный режим 368*288 точек, 4 палитры по 256 цветов из 16 мл. цветов, 1 страница - может быть полностью видимым только при подключении через скандаблеры или некоторые адаптеры SCART-HDMI.

Соотношение сторон монитора 5:4.

Поддерживаются разъемы IDE, FDD, присутствует шина ISA-8. Возможно подключение ISA-8 карт расширений. Для использования уже существующих карт расширений на базе шины ISA-8, будет достаточно написать драйвера. Оперативная память SIMM , установлен 4 mb оперативной SIMM памяти. Имеется поддержка клавиатуры PS/2 и com мыши. Compact Flash поддерживается через IDE переходник. Аудио ЦАП 16 бит.

Имеется аудио разъем. Недавно был сделан полноценный com разъем, теперь стало возможным организовать полноценную связь между компьютерами и подключить множество периферии по rs232.

Ведется разработка оборудования предназначенного для выхода в интернет. Ведется довольно активная разработка софта: обновлен файловый менеджер FlexNavigator по сведениям из телеграмма, написана масса дополнительных полезных утилит, создан редактор для разработки программ для zx spectrum. Разработку программного обеспечения и его тестирования можно вести прямо на спринтере, без использования ПК.

Спринтер можно оценивать как самобытный компьютер основанный на процессоре Zilog Z80/Z84 с шиной ISA-8, который в качестве дополнительной возможности, и в силу своей перепрограммируемой архитектуры основанной на применении PLD, может выступать как zx spectrum, с поддержкой таймингов пентагона и скорпиона.

У компьютера Sprinter собственная DOS подобная операционная система Estex DSS 1.60 с поддержкой FAT16 файловой системы, имеется собственный набор софта.

Интересные Факты:

  • Иван Макарченко является автором и разработчиком серии софт процессоров серии EQUINOX.

  • Иван Макарченко вынашивал идею использования в гипотетическом компьютере Sprinter II стекового софт-процессора, собственной разработки.

  • Под Спринтер существует минимум 3 Forth машины.

  • Спринтеров произвели около 115 штук.

  • По легенде начала 21 века Вячеслав Медноногов обещал поддержать софтом, если спринтеров реализуют 300 штук.

  • Иван Макарченко сделал программу управления конфигурациями компьютера Спринтер на языке Forth / Форт.

  • Пик популярности Спринтера пришёлся на 2002 год.

  • У Sprinter есть собственный маскот - Тхундер - герой игры Thunder in the deep.

  • Иван Макарченко увлекался физикой и писал фантастику.

Видео по Спринтеру

Иван Макарченко

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru