АТМ 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" ждёт!