Хотел сделать демку с тех самых пор, как познакомился с этим явлением компьютерной субкультуры на классическом примере польской Lyra II. Также регулярно хотел выставить что-нибудь на крупнейшем российском демопати, Chaos Constructions, но каждый раз не доходили руки. Наконец-то удалось удовлетворить обе потребности сразу, в стиле Ван Дамма (двойной удар, с вертушки) — сделать и выставить AONDEMO. В конкурсе ZX Spectrum 640K Demo.


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

История


Телефоны с Автоматическим Определителем Номера (АОН), также известные как «определитель» или «электронный секретарь», появились в СССР примерно в 1989 году, и в последующие 15 лет бурно развивались, пройдя путь от средства заработка студентов, безработных инженеров (наряду со сборкой Спектрумов) и целых кооперативов, до основного предмета деятельности довольно крупных компаний. В середине 1990-х годов подобный телефон встречался чуть ли не в каждой квартире, и любой пользователь телефонной сети на раз мог по характеру гудков в трубке понять, определяется ли сейчас его номер (поддельные гудки и характерный звук запроса). К 2004 году популярность подобных аппаратов сошла на нет, сам сервис определения номера на АТС сначала стал платным, а потом и вовсе был упразднён, сменившись на более современный европейский стандарт. Повсеместное распространение мобильной связи быстро загнало проводные телефоны в глубокий андерграунд, где всё ещё выходят непонятно кем востребованные «элитные» потомки АОН 90-х (Палиха).

Сцена разработчиков и сборщиков ранних АОН — это как бы параллельная отечественному Спектруму реальность. Радиолюбительские корни и романтика. Стихийная разработка, развитие и кустарное производство. Схожее железо, схожие интересы, схожий период и объём популярности. Многие люди поначалу одновременно занимались тем и другим. Юные авторы всесоюзно известного ПО (Павлу Суходольскому, автору Руси, было тогда около 15 лет), невозбранное заимствование кода друг у друга, копирайты и послания в коде, фидошные адреса, статьи в прессе, книжки, мифология, и многое другое. Весьма масштабная, но уже основательно занесённая песками времени история начала цифрового века, ещё ждущая своих исследователей.

АОН и я


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

В 2013 году при раскопках самых дальних углов квартиры я наткнулся на пару сохранившихся телефонов и вспомнил былые времена. Немного позже тогдашние изыскания в области 1-битной музыки, DIY-синтезаторов и особо старых компьютеров типа KIM-1, навели меня на мысль, что АОН — это же готовый, вполне полноценный одноплатный компьютер, который может быть задействован в нестандартных музыкальных целях (как драм-машина или секвенсор). Исполнившись энтузиазма, я начал писать эмулятор и разбирать старые прошивки, но вскоре обнаружилось, что найденные ранее телефоны были вполне успешно выброшены в процессе уборки. Тема была отложена в долгий ящик.

Постепенно различные интересы, затеи и предметы — разработка PCSPE для PC Speaker, воспоминания и интерес к старым телефонам с АОН и их истории, чтение сайта 155la3 про редкие советские радиодетали (изумительные сегментные индикаторы!), старые идеи про музыкальное применение этого железа, приобретение множества АОНов на Avito, а также электронных запчастей и инструментов для разных проектов, продолжение работы над эмулятором, и так далее — сложились в нужную схему. Незадолго до Мультиматографа 2018 наконец-то оформилась логическая связь между сущностями «демо» и «телефон» (насколько я могу вспомнить, это было вызвано увиденным словосочетанием «демка для калькулятора» ), и началась целенаправленная работа. Конечно, ничего существенного за неделю с небольшим сделать не удалось, дело замедлилось, но возобновилось с приближением CC2018. В лучших традициях, ударным трудом и неимоверными усилиями за два дня и ночь перед пати удалось допридумать, донаписать и отладить большую часть задуманного, снять и смонтировать видео, и рано поутру отправить работу на конкурс.

Уже после релиза я узнал, что семисегментные дисплеи не редкий гость в работах для Wild Сompo. Но я таковых не видел и про них ранее не слышал.

Железо




По сути АОН представляет собой простейший одноплатный компьютер с семисегментным дисплеем, телефонной клавиатурой и интерфейсом сопряжения с телефонной линией. На протяжении полутора десятка лет железо менялось, начиная от конструкции на КР580ВМ80 (i8080) 1989 года и заканчивая заказным чипом R100-XP компании Русь-Телеком 2003 года (8051, периферия и аналог AY-3-8910 на одном кристалле), со множеством промежуточных остановок и ответвлений.

Я выбрал самую классическую и популярную версию разработки 1990 года, исторически и технически наиболее близкую духу Спектрума: Z80 на частоте 4 МГц ровно, 2 килобайта статического ОЗУ, 8-64 килобайт ПЗУ, порт 8255 и таймер 8253 со входной частотой 1 МГц. Один из каналов таймера генерирует прерывания, другой звук, третий не задействован. Эта схема была представлена в виде «большой» и «маленькой» плат, первая предназначалась специально для установки в корпус латвийского кнопочного телефона VEF-TA-12, вторая ставилась в самые разнообразные импортные телефоны, в основном клоны офисных Panasonic. Для этих плат существовали разнообразные прошивки, в частности, Арктур-36, Селена, Лира, Алло. И, конечно, самая знаменитая — Русь, до 23 версии включительно.

Перепрограммировать телефон очень просто — достаточно любого 5-вольтового ПЗУ нужного объёма и программатора. Я использовал различные EEPROM со старых материнских плат и свежие Winbond W27C512, закупленные в Китае, а также самый простой и доступный программатор WizardProg-87.

Наибольшей сложностью при работе с железом оказалось состояние панелек под ПЗУ на платах древностью в четверть века и более. Они изначально не отличались высоким качеством, а в наше время контакт в них постоянно теряется, что затрудняет определение — ошибка ли это в написанном коде или просто неконтакт в панельке. Я пытался решить этот вопрос установкой ZIF-сокета, но высота других компонентов на плате не позволила его впаять, а этажерка из разъёмов для наращивания высоты, вставляемая в оригинальную панельку, также страдала от постоянной потери контакта.

Эффекты




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

Код писался в обычном SjAsmPlus. У АОН довольно причудливая карта памяти, вероятно следствие минимизации переделок железа при расширении объёмов ПЗУ под новые, более крутые прошивки. В результате, хотя и можно установить до 64 килобайт ПЗУ, в памяти доступно только 32 килобайта, чередующиеся банками по 8 килобайт с ОЗУ. 32-килобайтные половинки полного объёма ПЗУ можно переключать выводом в порт, но для демо это не понадобилось, всё поместилось в 32К. В образе ПЗУ 8-килобайтные банки должны идти подряд, без зазоров, поэтому посредством директив ассемблера и BAT-файла пришлось организовать размещение банков по нужным адресам с дополнением нулями, раздельное сохранение и объединение в финальный образ.

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



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

Первые имена в блоке приветствий — дань уважения энтузиастам прошлого. Это имена авторов прошивок АОН, найденные в заставках и коде.

Хотя это и было не совсем в тему, упустить возможность показать знаменитую семисегментную надпись ЕГГОГ было бы непростительно. Наиболее логичное место для неё нашлось в самом конце — демо начиналось имитацией сбоя, и завершилось сообщением об ошибке.

Разбор программной реализации эффектов не имеет особого смысла, всё достаточно прозрачно. Главной особенностью платформы, о которой стоит упомянуть, является необходимость программной динамической индикации, то есть надо постоянно перебирать разряды дисплея и включать нужные сегменты. Это сделано посредством прерываний. Частота прерываний выбрана довольно высокой, 960 герц (~4166 тактов на прерывание), а индикация сделана посредством списка произвольной длины, описывающего порядок включения разрядов. Помимо стабильной индикации с приличной яркостью это позволило легко сделать два эффекта — «зависание» с характерной яркой восьмёркой (перестаёт работать перебор разрядов) и эффект изменения яркости (в одном цикле некоторые разряды включаются несколько раз). В нормальном режиме индикации частота обновления дисплея составляет около 106 герц, что устранило заметное глазу мерцание и упростило последующую съёмку на видео.

Музыка


Единственный звуковой канал АОН построен на одном из каналов таймера 8253 и по сути копирует устройство PC Speaker, только с другой входной частотой — то есть он может гудеть звуком заданной высоты, пока процессор занимается своими делами. Возможности изменять форму и громкость сигнала при этом нет. Так как я уже некоторое время плотно занимался темой музыки на классическом PC Speaker'е — написал VST-инструмент PCSPE для удобного создания таковой музыки в современных DAW и накопил опыт аранжировки строго монофонических мелодий (в один момент времени всегда звучит только одна нота) — решение было очевидно: не писать очередной 1-битный движок, а просто сделать музыку в PCSPE и адаптировать под АОН. Это и менее трудозатратно, и аутентично по звучанию, и идеологически верно — выжать необычное из привычного.



Музыка писалась в Reaper. Так как художественной задумкой для начала демо была имитация стандартного запуска прошивки Русь, я точно повторил эту мелодию, имитировал некоторые типичные звуки (нажатие кнопок, стандартный звонок), и построил из них ритмическую композицию. Далее трек постепенно развивался, исходя из начальной идеи, по пути постепенного усложнения — всё больше и больше партий, создающих иллюзию одновременного звучания нескольких каналов. Так как идеей самого сложного в демо эффекта был бегающий влево-вправо символ с разными уровнями яркости, напоминающий светотехнику машины Kitt, я также сделал вставку с мелодией из Knight Rider и нашёл ей подходящее место.

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

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

Помимо звуков, прошивки для АОНов были примечательны голосовыми сэмплами. В процессе работы я разобрал в общих чертах их формат хранения и прослушал сэмплы, в которых нашлось немало любопытного (3-4 разных голоса, ненавязчивое заимствование их из прошивки в прошивку, фразы отсылания абонента в различные места). Была идея сделать в демо речевую вставку, составленную из этих сэмплов, говорящую что-то неожиданное узнаваемым голосом. Но на придумывание хорошей идеи и её реализацию не хватило времени. Как интересный факт, голос в старых прошивках хранится в виде 4-битных сэмплов с частотой дискретизации 4500-5000 Гц, и играется через ШИМ на таймере.

Видео


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



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

Интересной особенностью этого дисплея, калькуляторного АЛС318, оказалось то, что у всех экземпляров АОНов с ним, которые есть у меня в наличии, часть разрядов заметно утратила яркость. Скорее всего дело в том, что АОНы любили зависать, а при зависании динамическая индикация перестаёт работать и надолго зажигается полной яркостью один из разрядов. Хотя можно было бы выбрать и поставить наиболее живой дисплей, я не стал ничего предпринимать по этому поводу, решив, что это добавит аутентичности в видео.

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

Релиз и результаты


Раздел для тех, кто интересуется жизнью демосцены и организационными тонкостями.

Как получилось, что демо оказалось в категории ZX Spectrum. Буквально за две недели до события была введена поправка в правила, говорящая, что к участию в этой категории допускаются работы «для ZX Spectrum совместимых компьютеров и других компьютеров выпущенных не позднее 1991 года». Фактически категория превратилась в Combined Oldschool Demo, то есть демо для любых старых компьютерных платформ, причём по соображениям сценово-политического характера название осталось прежним. Конечно же это вызвало некоторое количества непонимания и критики, и уже начало становиться локальным сценовым мемом.

Дополнительно, на самом пати по причине недостаточного количества работ в разных конкурсах большую часть демо для редких платформ и Wild объединили в Combined Demo, а в ZX Demo помимо моей работы попала только одна не-ZX работа. В сложившейся ситуации я считаю, что уместнее было бы выделить эти две работы в Combined, оставив на этот раз конкурс с ZX Spectrum в названии только для ZX Spectrum. Если бы я знал о таком положении вещей на момент отправки работы, то выбрал бы категорию Combined Demo.

По каким соображениям я решил не выставляться в категории Wild (в ней традиционно выставляются работы в формате видео и анимации, хотя теоретически она также предназначена и для работ на нестандартных платформах). Не спорю, что по сути работа очень близка к этому направлению. Но всё же это реальное демо, с реальным TRD бинарником и исходниками, для реальной и весьма популярной в прошлом платформы, родственной нашим домашним компьютерам. Его можно легко запустить и посмотреть на реальном железе — нужен только программатор, как и в случае с приставками. Само железо тоже вполне доступно, определённо доступнее, чем, например, ZX-81. Также есть какой-никакой эмулятор. Иными словами, это не разовая уникальная сложно повторяемая акция в виде видеоролика (типа демки для банкомата или редкой модели фотоаппарата), посмотреть мою работу и сделать нечто подобное теперь достаточно легко сможет любой желающий.

Скачать


AONDEMO с исходниками
AONZ80Emu для Windows
LED9ED для Windows
PCSPE для DAW с поддержкой VSTi

Комментарии (26)


  1. VEG
    31.08.2018 19:08

    Помню эту мелодию и заставку очень хорошо, потому что свет пропадал достаточно часто, и каждый раз при включении АОН этой мелодией сигнализировал на весь дом — свет вернулся!

    Я и не думал, что эти телефоны собирались любителями. Когда разбирал свой АОН в детстве — удивлялся как кустарно там всё сделано, какими-то газетами были скручены провода, плата не самого заводского вида. Но работал шикарно лет 10-15, пока его не отправили на пенсию из-за морального устаревания.

    Вот такой у меня был, с надписью Panaphone:
    image


  1. kolu4iy
    31.08.2018 21:28
    +2

    Завидую демщикам белой завистью. Но это вот вызывает скорее восхищение, чем зависть. Сродни не так давно найденному тетрису в прошивках "газели" )


  1. NikitosZs
    31.08.2018 21:46

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


  1. darkfire77
    31.08.2018 22:34

    Спасибо, за рассказ, и видео. Ностальгия пробирает, сколько было продано таких аппаратов на радио-рынке, сколько времени было потрачено на подстройку у клиентов, на дому.
    Всё-таки раньше старались всё делать с запасом, хочешь комп, хочешь АОН, хочешь ещё, что нибуть. А сейчас? Хочешь новую программную фичу, да без проблем. Новый проц, в 2 раза больше памяти, в 3-раза больше дискового пространства, в 4 раза более мощную дисковую подсистему, в 8 раз более мощный графический ускоритель, и 10 раз более мощную подсистему питания. Про охлаждение всей системы лучше, даже не заикаться.


  1. Naves
    31.08.2018 23:33

    Следующим этапом нужно соединять два таких телефона и запускать гонки с препятствиями, трёх полос по горизонтали вроде хватит.


    1. frog
      01.09.2018 00:11
      +2

      Лучше два светофильтра и будет 3D со стереозвуком :)


  1. kAIST
    31.08.2018 23:57

    А ведь в них прошивка была сделана на совесть (не без глюков мелких конечно), и по количеству фич, даст даст фору многим современным дайлерам на смартфонах. Главное было в этом всем разобраться и запомнить сочетания клавиш и хитросплетений меню.
    Я был школьником старших классов, помню как радовался когда на звонок классной руководительницы смог настроить автоответчик "перезвоните по номеру 04" ) или когда появился первый пейджер, настроил уведомление о пропущенных звонков от друзей на пейджер. Да да, этот АОН сам перезванивал на пейджингувую службу (был спец номер) и с помощью DTMF "диктовал" номер телефона, который нужно было сбросить на пейджер.


  1. demoded
    01.09.2018 01:00

    сильно прифигел, что прошивку Русь написал 15 летний чувак о_О


    1. emmibox
      01.09.2018 03:36

      17 летний вообще то на тот момент. Журналисты приукрасили немного да и Паша приврал.
      А точнее там даже два человека код писали, и 3-го человека идеи как все это должно было работать (основная — переход в функциональное меню через 2-е нажатие *)…


    1. mistergrim
      01.09.2018 06:16

      Справедливости ради — под Z80 было очень, очень легко писать. До сих пор скучаю по командам CALL <условие> / RET <условие>.


      1. bugdesigner
        01.09.2018 08:25

        У меня был зверь на i8031 — более поздний вариант. А на z80 я целую кучу АОНов запустил, наряду с Спектрумами всех мастей. Интересное было время.


  1. oisee
    01.09.2018 02:40

    А если музло на AY/YM играть, то можно воспользоваться авто-сирилом для конвертации из midi в VortexTracker (ProTracker3.x).


  1. mistergrim
    01.09.2018 06:17

    Интересно, а есть какие-нибудь демки под калькуляторы вида МК-61? Вот где драконовские условия были.


    1. rt3879439
      01.09.2018 13:18
      +1

      Прошлогодний победитель сделал дему для casio.


    1. frog
      01.09.2018 15:58

      В МК-61 не получится что-либо целенаправленно выводить на экран во время работы программы. И даже если бы было возможно, отдельными сегментами индикатора всё равно не поуправляешь.


      1. 3lo1i
        02.09.2018 21:37

        В МК-61 все же есть «ПСЧ-режим», с ним наверное можно сделать подобие демо.
        А вот на МК-85 и МК-90 демки получились бы не хуже, чем для casio.


  1. terra-slav
    01.09.2018 10:23

    В свое время собирал и реставрировал кучу таких аппаратов и даже неплохо на этом зарабатывал, однако после введения АТС-ками платы за использование АОН все дело рухнуло:(
    Насчет третьего канала 8253. Насколько помню туда прописывался «плавающий бит» для периодического принудительного сброса процессора на случай зависания.


    1. Wolframium13
      01.09.2018 12:27

      Сейчас, на сколько я понимаю, т.к. дома АОН работает, плату АТСки не берут. Но кому уже какое дело?


    1. shiru8bit Автор
      01.09.2018 21:03

      Видимо третий канал как watchdog timer стал применяться не сразу, или наоборот, упразднили. В электронном виде есть пять-шесть вариантов схемы на Z80, отличия незначительны, даты неизвестны. В некоторых версиях сброса по таймеру нет, только RC цепочка, а выход таймера висит в воздухе. В реальном железе я этого не видел, но есть две схемы, где каналы 0 и 1 включены каскадом (т.е. выход канала 0 на вход канала 1), и выход канала 1 на сброс.

      А 'плавающие биты' в значении 'недопрошитые ячейки ПЗУ, выдающие разные значения при чтении' (полумифическая тема тех лет) применялись для защиты прошивок от копирования, в частности есть такое упоминание про Селена-2.


  1. engine9
    01.09.2018 10:57

    Офигенно!!! Мне показалось или там был PinWizz в титрах упомянут?


    1. shiru8bit Автор
      01.09.2018 21:05

      Не показалось. Упомянутая в статье изначальная идея 2014 года применить АОН в каких-нибудь музыкальных целях как раз спонтанно родилась в диалоге с ним про DIY синтезаторы, и мы какое-то время её обсуждали.


  1. rharunzade
    01.09.2018 18:32

    Это ахуенно. Извините.


  1. DGN
    02.09.2018 16:10

    Остался один маленький шаг до игры в АОНе.


    1. shiru8bit Автор
      02.09.2018 18:20

      Такая идея у меня тоже была, ещё с поры ковыряний с этими телефонами и чтения статей про игры на ПМК в детстве. Есть план реализовать что-то подобное через некоторое время, в виде одной прошивки-сборника мини-игрушек. Принимаются идеи для игр!


      1. DGN
        02.09.2018 19:51

        Помню на Радио86РК была программа шахмат. По идее, АОН ее может потянуть, тем более, ничего рисовать не надо. Буквы взять от Т9, звездочку на «забрать ход», решетку на ввод/подсказать ход.

        Камень-ножницы-бумага и ее более широкие разновидности, вплоть до 10 объектов.

        Ходилка вперед, при этом различные объекты требуется преодолевать разными способами (10 кнопок), ну там подпрыгнуть, пригнуться, выстрелить, съесть. Сопровождать звуками процесс.

        Разложение чисел. Появляется число и надо выбрать для него наибольший делитель из ряда 1-9. Таймер обратного отсчета. Вести hiscore. В процессе числа растут и таймер ускоряется.

        Теннис. Игрок может поставить ракетку вверх или вниз, подойти или отойти в пределах своей трети экрана. Мяч движется по диагонали. Игрок может подкрутить мяч (летит по прямой 2 клетки) если нажмет кнопку строго в момент контакта. Игра PvP и PvАОН ;-)

        Тренажер приема морзянки и DTMF на слух (цифры).

        Угадай следующую ноту в мелодии. Проигрывается мелодия и игрок должен нажать кнопку следующей и последующих нот. Счет. Hiscore.


        1. shiru8bit Автор
          02.09.2018 21:14

          Спасибо!