• 256 байт intro «Springs» для компьютера Vectrex

      Решение написать что-нибудь для Chaos Constructions пришло, как водится, довольно внезапно (в первую очередь потому, что до последнего момента не было очевидно, состоится он в этом году или нет). Так что, времени написать что-то большее, чем работу для конкурса Tiny intro (256 байт для любой платформы) уже не оставалось. Это же определило и выбор платформы, так как под Vectrex я уже писал пару лет назад и проще было вспомнить ассемблер 6809, чем изучать следующий.

      Чем (среди прочего) мне нравится демосцена, так это тем что, приступая к работе, понятия не имеешь, что в итоге получишь. Среди нескольких идей, что именно написать, конкретно вот этой не было точно. Две были отброшены потому, что изображение на эмуляторе и реальном Vectrex'e слишком уж отличалось — после каждой сборки заливать всё это в эмулятор ПЗУ и перетыкать его в Vectrex чтобы посмотреть, что получилось — нереально.

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


      Читать дальше →
      • +31
      • 3,9k
      • 5
    • Разработка игры Frogger для компьютера Vectrex

        Какое-то время назад я переводил рассказ Chris Salomon о его разработке игры Frogger для компьютера Vectrex. Тот рассказ, написанный им в 1998 году, является, на мой взгляд, очень интересным документом, позволяющим проникнуться как духом этой необычной платформы, так и спецификой разработки на ассемблере вообще.

        Chris не забросил Vectrex и, сравнительно недавно, довёл до релиза собственный эмулятор Vectrex для Windows (лучший, на данный момент) под названием «Vide». Мне, к слову, приятно, что мои исходники Electric Force помогли ему реализовать приличную поддержку отображения векторных кривых в этом эмуляторе.

        И вот, получив в руки такой мощный инструмент, Chris не смог отказать себе в удовольствии вернуться к своему старому Frogger'у, чтобы доработать и улучшить его. Об этом он рассказал в своём блоге.

        Таким образом, здесь я публикую две части моего перевода — первую, об оригинальной разработке 1998 года (из файла progger.txt, бродившего вместе с исходниками игры) и вторую — о её продолжении (из блога автора).
        Читать дальше →
        • +11
        • 3,1k
        • 2
      • Архитектура и программирование Philips Videopac (Magnavox Odyssey 2)

          «Hardware is just software crystallized early»
          — Alan Kay


          Компьютер Magnavox Odyssey 2 (Videopac) появился в 1978 году и позиционировался как игровой, однако с возможностью более серьёзного применения (для чего у него имелась встроенная плёночная клавиатура). Серьёзных приложений, учитывая назначительный объём памяти, было очень мало, так что, по факту, правильнее считать Videopac игровой приставкой.

          Что касается названий, Magnavox Odyssey 2 продавался в США и выдавал NTSC видеосигнал (через RF выход). Philips Videopac G7000 (он же C52) продавался в Европе, соответственно, с PAL видео. Кроме этого различия (которое, разумеется, влияло на работоспособность части игр) компьютеры совершенно одинаковые.

          Videopac был одной из первых игровых приставок, для которой игры выпускались в виде картриджей с программами. Поэтому ничего удивительного, что и технически это устройство весьма аскетично.
          Читать дальше →
        • Архитектура и программирование компьютера Vectrex

            — А видеовыход у него есть?
            — И как ты себе это представляешь?
            (из разговора о Vectrex)

            Vectrex выпускался GCE в 1982 — 1983 гг. и представляет собой игровой компьютер (приставку) ключевая особенность которой, векторный дисплей, делает его одним из самых необычных и интересных 8-разрядных компьютеров. С некоторой натяжкой можно сказать, что он является упрощённой версией векторных игровых автоматов Cinematronics, технически более совершенных.

            В качестве процессора в Vectrex используется Motorola 6809 — он похож на MOS 6502/6510, но добавлены 16-битные регистры, дополнительные режимы адресации, умножение.
            Тактовая частота — 1.5MHz.

            Поскольку компьютер был выпущен как игровая приставка и игры для него продавались на картриджах, программа размещается в ПЗУ картриджа (32 кб), а ОЗУ — совсем крохотное (1 кб — две штуки 2114) и предназначено больше для данных.

            Также есть встроенное ПЗУ с BIOS'ом (8 кб — одна 2363), который включает набор подпрограмм для рисования векторов и вывода текста, несколько примитивных мелодий и даже одну игру — Minestorm (многим известную как Asteroids).
            Читать дальше →
            • +45
            • 12,6k
            • 8
          • Архитектура и программирование компьютера Texas Instruments TI-99/4a

              Компьютер Texas Instruments TI-99/4a почти неизвестен за пределами США, однако он был там весьма популярен (выпущено более двух миллионов машин). Хотя этот компьютер создавался как домашний, существенной особенностью (во многом определившей его архитектуру, а затем и судьбу) было то, что за основу был взяли уже существовавший серьёзный мини-компьютер TI-990, собранный на обычной ТТЛ логике. Фактически, микропроцессор TMS9900 в компьютере TI99/4A является реализацией TI-990, но в виде чипа. TI-990 был выпущен в 1975 году, а TMS9900 в 1976 году.

              Таким образом, TI99/4a (в 1979 был выпущен чуть более простой TI-99/4, а в 1981 уже TI-99/4a) получил в наследство крайне странную, для домашних компьютеров, архитектуру. Во-первых, микропроцессор TMS9900 в нём 16-разрядный — с честной 16-разрядной шиной данных (это в конце 1970-х!). Во-вторых, на чипе нет регистров (кроме PC, флагов и указателя «регистров» WP). То, что можно назвать регистрами, находится в отдельной микросхеме 16-разрядного статического ОЗУ размером 256 байт и может адресоваться одновременно как память и (первые 16 слов) как регистры R0..R15. Называется это «scratchpad».
              Аппаратного стека нет, вместо этого сохранение значений при вызове подпрограмм осуществляется изменением указателя начала регистров WP в этом самом ОЗУ (напоминает регистровые окна в Sparc'ах). В предке (TI-990) это также использовалось для переключения контекста при реализации многозадачности.
              Хотя тактовая частота TMS9900 — 3 МГц, инструкции занимают довольно много тактов — не менее 8. При этом реализовано даже умножение и деление (124 такта).
              Читать дальше →