Из журнала Info Guide #10, Рязань, 05.2007 Мультиплатформа Посколько теперь каждый выпускаемый 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