Inferno #10
30 апреля 2007
  Железо  

ZX Клоны - Мультиплатформенность на ZX Spectrum. Компьютеры SAM Coupe и MSX.


Аппаратное обеспечениеКомпьютерыОбзор и обсуждение существующих компьютеров

      Мультиплатформа
   Посколько  теперь каждый выпускаемый ZX
Spectrum  имеет  режим  "цвет  на  точку", 
то  можно  посмотреть  в сторону некоторой 
кроссплатформенности.Рассмотрим для начала 
компьютеры  MSX (конкретно MSX2 - с видео─ 
 контроллером V9938 и выше) и SAM Coupe. 
   Оба  они имеют Z80 в качестве централь─
ного процессора,некое подобие бипера и не─ 
которое  подобие AY (в случае SAM - весьма 
далёкое подобие  под  названием  SAA 1099, 
однако на  MSX - вполне реальный AY, в том 
 случае, когда он не встроен в чипсет). 
   И  MSX2, и  SAM  имеют интересующий нас
растровый режим 256x192 в 16 цветов (с на─ 
страиваемой  палитрой). Аппаратные спрайты 
нас на данном этапе не интересуют.Разговор 
о сборке  ОДНОЙ И ТОЙ ЖЕ программы ПОД ВСЕ 
ЭТИ МАШИНЫ. 
                        ,
                SAM Coupe
                    ,
   Вкратце, SAM Coupe  -  это неправильный
Спектрум. Машина  совместима с ZX Spectrum
48k, но не более. , 
   Авторы SAM Coupe решили,что переключать
память  в окнах по 16k - излишняя роскошь.
Поэтому можно  щёлкать только по 32k сразу
(2 окна: #0000..#7fff и #8000..#ffff ),но 
указывать  проецируемый  туда кусок памяти
можно с точностью в 16k. Такое решение во─
всю используется местным бейсиком. Он ело─
зит  по  #8000-#bfff, а  когда  пересекает
#c000, переключает память в области #8000- 
#ffff и опять  начинает двигаться с #8000. 
Таким образом организована виртуальная па─
мять (почти 256k ), которую  можно  занять
немеренной бейсик-программой.
   Чип  SAA 1099  не имеет огибающей, зато
имеет  несколько тембров звука для 6 кана─
лов. Утверждают, что  проблема конвертации
звука с AY на SAA 1099 решена, но я не ви─
дел конвертор и вообще сомневаюсь.
   Машина распространена довольно слабо, и
людей,у которых можно проконсультироваться
по техническим вопросам, можно пересчитать
по пальцам.В первую очередь это Simon Owen
- автор  эмулятора Sim Coupe. Однако необ─
ходимый набор утилит для разработки,кросс-
разработки в том числе, имеется.

                   MSX

   Если SAM - это неправильный Спектрум,то
MSX - это  ОЧЕНЬ  неправильный Спектрум :) 
Совместимости не ожидайте никакой.
   Например, импульс  прерывания (INT) там
сам по себе не снимается.Его нужно снимать
вручную (обратившись  к порту  устройства,
его  вызвавшего) в обработчике прерывания,
иначе  после  EI  обработчик  будет вызван
снова. Видимо, это было самым простым спо─
собом  решить  задачу обработки прерываний
от многих источников, чтобы ни одно из них
не потерялось.
   В  7-м регистре AY нельзя устанавливать
оба канала ввода-вывода на вывод - MSX мо─
жет сгореть.Оба на ввод - можно (так дела─
ет сама система). Вообще же для правильной
работы  джойстика на вывод должен работать
только порт B. Указанная защита уже преду─
смотрена  в существующих плейерах музыки и
эффектов.
   Сцена  на MSX очень большая и активная,
компьютер широко распространён (в том чис─
ле  в бывшем  СССР)  и производится до сих
пор (One-chip MSX). Документацию  по любой
железке и программному ухищрению можно на─
йти, потыкав в интернете,поэтому я не буду
углубляться в дальнейшие технические дета─
ли. Железа на MSX слишком много,и даже по─
ловину не нужно знать,чтобы написать игру.
   Принципиальными проблемами при програм─
 мировании на MSX являются следующие.
  1. ОЗУ процессора  сильно ограничено. На
разных  моделях  разное количество ОЗУ, но 
следует  рассчитывать на 64k, причём #d400 
и  выше  заняты  системой. ВидеоОЗУ (VRAM) 
 на MSX2 обычно 128k. 
  2. Предпочтительной   частотой  кадровой
развёртки  является  60 Hz. Конечно, 50 Hz 
годится для Европы,но для расширения ауди─ 
тории лучше выбрать 60 Hz (европейская те─ 
хника  60 Hz тоже терпит). Хорошего источ─ 
ника прерываний  с частотой  50 Hz  в этом 
случае не будет, поэтому AY музыку следует 
перевести в другой темп.Мне попадался один 
журнал ( Disk ),в котором предусмотрен вы─ 
 бор 50 Hz / 60 Hz. Однако это нетипично. 
  3. Расположение  букв на матрице клавиа─
туры  меняется в зависимости от модели MSX 
(точнее,от страны,на которую ориентирована 
данная модель). Программно определить рас─ 
кладку нельзя,разве что путём программного 
определения  модели машины - а это затруд─ 
нительно  при  огромном числе существующих 
моделей. Поэтому лучше не опрашивать буквы 
в программе, а  обходиться  управляющими и 
функциональными клавишами. 
   Из того,что можно использовать дополни─
тельно  -  популярное  звуковое устройство
FM PAC (MSX Music), имеющее 9 мелодических 
каналов,или 6 мелодических+5 каналов удар─
ных. Один инструмент можно переопределять.
Не исключено, что музыку под TurboSound FM
можно  грубо переделать под FM PAC, выбрав
другие инструменты.

                  * * *
 

   Как  вы  могли  заметить  по исходникам
Ball Quest Gold Release, из этих  исходни─ 
ков можно скомпилировать вполне работоспо─ 
собную  версию  под  MSX2 (под минимальную 
машину: 64k RAM + 64k VRAM ).  Необходимые 
для сборки утилиты лежат там же. Почему не 
выложена  сама  MSX версия? Потому что она 
отправлена  на MSX2 game development chal─ 
lenge, организатор которого Snout не силь─ 
 но торопится открывать сайт конкурса. 
    Ждём-с.
   Из исходников Ball Quest можно без тру─
да сделать ещё какую-нибудь игру на том же 
движке, и она  будет работать на ATM Turbo 
2/2+, Pentagon1024SL v2.x и MSX2. Для MSX2 
нужно собрать используемые спрайты в общий 
bmp, который  во время игры будет лежать в 
видеопамяти (VRAM). 

Alone Coder 



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

Ликбез - Аккумуляторы. Практика использования.

Ликбез - Аккумуляторы. Результаты опытов с различными аккумуляторами.

Возможности Спектрума - Описание формата ani-файлов на ZX.

Inferno - Авторы журнала.

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

Возможности Спектрума - О поддержке формата DVD на ZX.

Gameland - О конкурсе нелепых (или корявых) игр для ZX Spectrum - Crap Games Competition.

Графика - Как быстро рисовать цветные картинки.

Inferno - Вступление от редактора.

Inferno - Ошибки в предыдущих номерах.

For Coderz - Код Грея и оптимизация программ.

For Coderz - Построение графического пользовательского интерфейса.

Форматы - Подробно о декодере jpeg.

Железо - Описание микросхемы К561ПУ4.

Inferno - Письма в редакцию.

Форматы - Формат пакованного файла MegaLZ.

Scorpion ZS - Структура разметки винчестера на компьютере Scorpion.

ZX Клоны - Мультиплатформенность на ZX Spectrum. Компьютеры SAM Coupe и MSX.

Реклама - Реклама NedoPC.

Inferno - Об оболочке.

Активный отдых - Команда "Спектрум" на соревновании по ночному ориентированию Окинчица 2004.

Sofтинка - Сравнительная таблица результатов упаковки кодовых файлов различными упаковщиками.

Реклама - Реклама King of Evil.

Sofтинка - Программы для печати в приложении к журналу.

Sofтинка - Музыкальный редактор Pro Tracker v3.71. История изменений.

Реклама - Реклама от В. Богдановича.

Железо - О некоторых RND-генераторах.

Возможности Спектрума - Аппаратный скроллинг на ZX Spectrum.

Pentagon - Синхроселектор видеосигнала на Pentagon. Проблемы и схема.

DIY - Универсальный TAPE интерфейс. Схема загрузки и записи с ленты.

Звук - Особенности звукового устройства TurboSound FM.

DIY - Схема анализатора состояния TTL вывода.

Будущее Спектрума - Видеоконтроллеры V9990. Расширение графических возможностей ZX Spectrum.

Sofтинка - Обновления в просмотрщиках картинок: ANSI viewer, MCX viewer.

Интервью - Интервью с музыкантом X-Raizor из Omega Hackers Group.


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

Похожие статьи:
Система - статья о вопросах совместимости и модификации отечественных клонов ZX Spectrum'a.
Железо - Макси-извращенные "прибамбасы" PowerZX.
Iron Making - впечталения от KAY-1024.

В этот день...   18 июля