• Звук на чипе AY-3-8910 (или Yamaha YM2149F) родом с ZX Spectrum на PC через USB

      Прошло около года, с момента успешного подключения музыкального синтезатора YM2149F к LPT порту компьютера. LPT это конечно хорошо, однако время не стоит на месте, и найти компьютер или ноутбук с LPT портом становится все сложнее и сложнее. Да и сам автор (то есть я) устал лазить каждый раз под стол, где стоит системник, и перетыкать LPT плату на что-то другое, например программатор (у меня LPT-программатор Willem, ну да не суть). Поэтому на сей раз подключать чип YM2149F будем к USB. Ну и конечно, чтобы соотвествовать эпохе, будем это делать на копеечном древнем микроконтроллере PIC16F628.

      image

      Вкратце, YM2149F (или ее функциональный аналог AY-3-8910) — микросхема звукового трехголосного синтезатора, применялась в старых компьютерах типа Atari ST, Amstrad CPC, ZX Spectrum, MSX и некоторых других для проигрывания музыки. В России чип приобрел определенную известность благодаря установки в различные клоны ZX Spectrum'а. За время шествования ZX Spectrum по бывшему СССР музыкантами были написаны тысячи мелодий под этот звуковой программируемый генератор. Да и сейчас можно вполне найти людей, создающих музыку именно под этот чип. В конце статьи будут приведены ссылки на огромнейший архив чип-тюнов для YM/AY на сотни часов непрерывного прослушивания.
      Читать дальше →
    • Звук на чипе AY-3-8910 (или Yamaha YM2149F) родом с ZX Spectrum на PC через LPT-порт

        У меня не было в детстве спектрума, поэтому о его музыкальных возможностях с дополнительным музыкальным «сопроцессором», как иногда называют микросхему трехканального генератора Yamaha AY-3-8910, мне было мало что известно.
        Читать дальше →
      • Программируем микроволновку или контроллер 40-летней давности

          Привет, недавно мне совершенно случайно попалась в руки такая железка:
          image

          Ну железка и железка, подумал я… На плате присутствует микроконтроллер РВЕ035, расширитель IO m5l8243p, ИР12 между РФ5 и контроллером и там еще где-то ЛН1 в стороне болтается. Мне сразу понравилась хорошая раритетная ПЗУ на 2Кб РФ5 в панельке в золоте. Думаю, сниму ее, а остальное смело в утиль, бо вся плата залита лаком по самое небалуйся..А потом все-таки стало интересно, а что это такое вообще?
          Читать дальше →
        • Записи и наброски в старых тетрадях (привет из 90-х)


            Привет! Совсем недавно разбирался на даче и нашел пару тетрадей, блокнотиков и листочков с приветом из славных 90-х. Перенесемся на время в 96 год. Итак, я школьник, учусь в 8-ом классе. Дома гордо красуется ПЭВМ «Поиск». После работы он аккуратно накрывается тряпочкой. Там MS-DOS 5.0 на дискетке вместе с debug.exe. Позднее появляются Norton Utilites с красивым интерфейсом, Norton Commander. Ну, игрушки конечно тоже есть.

            Читать дальше →
          • Пишем эмулятор приставки ч2, или немного о CHIP16

              В предыдущей своей небольшой заметке я описывал принцип построения эмулятора старой игровой платформы CHIP-8 из далеких 70-х. Здесь же речь пойдет о своего рода наследнице – CHIP16. Итак, что же такое CHIP16?

              CHIP16 – “вымышленная” игровая приставка, которой никогда не существовало в “железе”. Всю спецификацию на нее разрабатывали (-ют) энтузиасты с одного англоязычного форума. Смысл в том, чтобы максимально упростить написание эмулятора, иметь хорошую документацию и поддержку комьюнити. Тем самым позволяя даже новичкам в программировании создать полностью рабочий эмулятор с нуля на фактически любом языке программирования. Сразу оговорюсь, что здесь я не буду приводить примеры кода эмулятора, цель – просто рассказать об этой платформе. И да, конечно все Just for fun!

              Читать дальше →
            • Немного о JIT-компиляции или пишем оптимизированный интерпретатор Brainfuck

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

                >+>+>+>+>++<[>[<+++>-
                 >>>>>
                 >+>+>+>+>++<[>[<+++>-
                   >>>>>
                   >+>+>+>+>++<[>[<+++>-
                     >>>>>
                     >+>+>+>+>++<[>[<+++>-
                       >>>>>
                       +++[->+++++<]>[-]<
                       <<<<<
                     ]<<]>[-]
                     <<<<<
                   ]<<]>[-]
                   <<<<<
                 ]<<]>[-]
                 <<<<<
                ]<<]>.


                Дождались конца выполнения? Согласитесь, что это было не так быстро, как могло показаться сразу. Что ж, давайте посмотрим, как сделать интерпретатор, который будет выполнять данный код не больше чем за несколько секунд.
                Опять brainfuck, ассемблер и паскаль
              • Создаем эмулятор приставки

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



                  В этой заметке я хотел бы поговорить о создании простого эмулятора игровой платформы CHIP-8 из далеких 70-х. Во-первых, мы прикоснемся к истории, а во-вторых, эта платформа из за своей простоты позволит создать полностью функциональный эмулятор даже начинающим программистам.
                  Читать дальше →
                • Забытая музыка или немного о Nokia 3310, PC-Seaker’е и генерации MIDI файлов (ч1)

                    Здесь мы немного поговорим о формате мелодий (RTTL) в старых моделях телефонов, о воспроизведении таких мелодий с помощью обычного PC-Speaker’а компьютера, а так же о создании (генерации) MIDI файлов. Все мои мысли я буду подкреплять кодом на языке Pascal.
                    Читать дальше →
                  • Виртуальные путешествия по знаменитым местам мира в 3D

                      Совершенно случайно наткнулся на интересный и ранее не освещенный на Хабра-хабре проект — Vizerra.com. Скачав и установив небольшой клиент появляется возможность попутешествовать по 3D моделям известных мест мира.

                      image

                      Доступен режим свободного перемещения, так и режим интерактивного гида (с русской или английской озвучкой).
                      Еще картинки и как это работает...