АТМ Turbo 2+ как стандарт
ьу Alone Coder
В этом году мы решили провести конкурс игр, который бы порвал со
стереотипом "Спектрум - это 48K/128K" и закрепил положение
Спектрума как одной из мощнейших 8-битных машин.
Проблемой Спектрума с давних пор было отсутствие стандарта на
расширения. Каждый производитель делал свои несовместимые
устройства, и в результате накапливались библиотеки
hecobmectumoro софта. Нужен был стандарт, от которого требуются
широкие возможности, наличие софта, распространённость и
повторяемость.
Широкие возможности - это память, звук, графика...
АТМ Turbo в начале 90-х был дороже конкурентов, далеко не каждый
мог его купить. Это сейчас он не дороже других Спектрумов и
производится самыми большими тиражами, так что из новых
Спектрумов его купить легче всего! Такая вот ирония судьбы,
связанная с тем, что авторы компьютера - фирма МикроАрт -
запросто передали спектрумистам всю документацию и права на
производство Turbo 2+.
Впрочем, как прямой потомок Пентагона 128 (причём от тех же
авторов - первая версия его платы даже называлась АТМ 128 ),
АТМ Turbo достаточно распространился уже на заре демосцены. Ведь
уже в одной из первых русских дем - Best 0 Super Demo (август
1993) авторы ругают компьютер Profi, как бы противопоставляя его
АТМ: они пишут про цвет не на точку, а на 8, отсутствие игр под
расширенную память, две платы вместо одной и несовместимость
из-за открытых дополнительных портов. А Magic Soft в интре к
игре Scorpions (1996 год) решили использовать АТМ-овскую
развёртку как единственную альтернативу пентагоновской для
показа мультиколоров. Так же поступил автор MegaScreen
Multicolor Editor v2.5, причём АТМ он поставил по умолчанию.
АТМ-овские параметры развёртки по время от времени ставили по
умолчанию и авторы мегадем с мультиколорами (Resonance Megademo,
Sensation Megademo, Gift for Alex Raider (1995) ).
Так АТМ Turbo попал на демосцену. Но до участия в демопати
оставался долгий путь.
Как известно, первые польские и русские демы писались в основном
под 48K+AY. Это была распространённая комплектация, которая
гарантирована максимум зрителей. Первым демокомпо в России
должен был стать конкурс журнала Sinclair Town, объявленный в
апреле 1995 года, причём редакция, как она сама пишет в первом
номере, ориентировалась на этот самый 48K+AY. В связи с
закрытием журнала конкурс не состоялся. Инициативу подхватил
журнал Speccy, который объявил свой конкурс в сентябре 1995 и
собрал довольно много дем, все под тот же 48K+AY.
Дальше история сложилась так, что на Enlight `96 компо-машиной
был выбран (не без участия группы Prestige ) Пентагон 128 и что
он же был компьютером организатора Funtop Wlodek`а Black`а.
Таким образом, первыми расширениями, которые попали на
российские спектрумовские демопати, стали AY, 128K, Beta Disk
(Beta 128), а также прозрачный доступ к памяти (по wait) и
пентагоновская развёртка. Конкурс Artcomp `98, объявленный для
Profi, оказался нeдооцeнeн сценой, а Chaos Constructions `98,
объявленный для Скорпиона, был отменён.
Covox довольно быстро нашёл своё место на демопати (Paradox `99,
CAFe `999) - это было то, что легко припаять к любому клону, а
на АТМ Turbo он вообще присутствовал по умолчанию. Освоили и
General Sound (CC `999) - его легко было воткнуть в Scorpion или
KAY. Turbo использовали время от времени (оно поддержано в ряде
3D дем, начиная с 1997 года, а Lifeforms на CC `2001 был впервые
показан в турбо-режиме). А дальше? Уже память адрeсовалась в
разных клонах настолько по-разному, что в ZX-Format #5 решили
опубликовать универсальный драйвер. Демомейкинг и драйвер...
понятно, что идея не прижилась.
В 2003 году закрылись двери последнего производителя Спектрумов
- и надо было срочно что-то решать. Нужно было новое железо.
Причём такое, где бы можно было использовать накопленный софт и
при этом идти дальше. В том числе накопленный софт под Covox,
Turbo-режим, расширенную память, цвет на точку... И тут
совершенно кстати nодвeрнулись авторы АТМ Turbo!
Прошло 10 лет. Теперь дополнительные возможности АТМ используют
демы на демопати, интры и, конечно же, новые игры (авторы
Shiru, Transman, Hippiman, Alone Coder и др.). Режимы АТМ Turbo
поддержаны во многих эмуляторах и в компьютерах ZX Evo и
Pentagon 2.666, причём в них даже появилось новое развитие -
так называемый "АТМ 3", имеющий пентагоновскую развёртку и
адресующий до 4 мегабайт ОЗУ.
Уже написано как минимум 314 программ под расширенные
возможности АТМ, не считая софта под стандартный CP/M, дублей
CP/M-софта под MSX-DOS и пцшных утилит:
http://alonecoder.nedopc.сом/zx/atmsoft.txt
* * *
Теперь представьте, что вы захотели написать игру под цвет на
точку.
Вывод графики - далеко не самая сложная часть игры. Да, на 48K
это была самая сложная часть, и то не всегда. А на АТМ нет
таких проблем ни с памятью, ни со скоростью, ни с лучом.
У нас есть две экранных области. Пока одна видна, мы заполняем
другую. Потом видна другая - и мы заполняем первую. Видимая
переключается 3-м битом порта #7FFD, как и на 128K.
Одна экранная область лежит в 1 и 5 страницах, другая в 3 и 7
страницах. Можно подключить страницу в любую четверть памяти
Z80. Для этого есть порты #ЗFF7, #7FF7, #BFF7 и #FFF7. Туда надо
писать номер страницы XOR #7F. Содержимое младших битов порта
#7FFD при этом игнорируется.
Вот как включить режим EGA (320х200) и доступ к этим портам:
LD A,%10101000 ;режим EGA, turbo
CALL OUTSHADON
...
OUTSHADON
LD ВС,#FD77 ;вкл.теневые порты
LD HL,10835
PUSH HL
JP #3D2F
Каждая экранная область в режиме EGA делится на 4 части по 8000
(40*200) байт. В одной части лежат пиксели X mod 7 = 0,1, в
другой 2,3, в третьей 4,5, в четвёртой 6,7. Таким образом,
полный столбец всегда целиком доступен через элементарный
ADD HL,DE (DE=40).
В каждом байте лежит 2 пиксела: %RLRRRLLL (представьте, что это
байт атрибутов - cxemho так оно и есть).
Каждый из 16 цветов можно задать. Для этого надо выставить на
бордере нужный номер цвета (цвета 8..15 задаются через
порт #F6 ) и потом записать в порт #FF значение для этого цвета
в формате %grbG11RB, где Gg, Rr, Вь - составляющие цвета в
инвертированном виде.
Готовая процедура заполнения палитры, которая использовалась в
CatDemo, The Board, The Board II и NedoDemo 2 :
SETPAL ;HL=указатель на последний байт палитры
LD DE,#A80F ;D=режим EGA, turbo
LD ВС,#BD77 ;открытые порты и палитра
OUT (C),D ;включить доступ к палитре
ATMPAL0 LD A,E
BIT 3,E
RES 3,A
OUT (#FE),A
JR Z,$+4
OUT (#F6),A
LD A,(HL)
DEC HL
OUT (#FF),A
DEC E
JP P,ATMPAL0
LD ВС,#FD77 ;открытые порты без палитры
OUT (C),D ;выключить доступ к палитре
RET
Вот и все хитрости! "Твоя Игра 5" ждёт!
Other articles: