ZX Spectrum
Владимир Трушкин
Рис. 103. ZX Spectrum +3: последняя и самая функциональная модель фирменного «Спектрума», производившаяся компанией Amstrad с 1987 по 1990 год. В отличие от первых, классических, ZX Spectrum 16K/48K, эта модель представляет собой полноценный ПК, имеющий приличные параметры памяти (128 Кбайт ОЗУ и 64 Кбайта ПЗУ), хорошую плёночную клавиатуру (58 кнопок), полный набор разъёмов (включая выход для принтера и два для джойстиков), поддержку популярной ОС CP/M, а главное — встроенный 3-дюймовый дисковод
Рис. 104. Как и у многих других игровых ПК, на последних «Синклерах», наконец, появились встроенные разъемы для джойстиков
Рис. 105. ZX Spectrum +3, в отличие от предыдущих фирменных «Спектрумов», имеет полный набор разъемов: сзади есть выход на второй дисковод, системная шина, выход на принтер и даже последовательный порт (он же MIDI).
Рис. 106. Несмотря на радикально лучшие параметры, схема +3 проще схемы 48К — всего 20 микросхем вместо 26, причём используются очень современные на тот момент комплектующие: ПЗУ по 32 Кбайта (2 шт), ОЗУ по 64 Кбайта (тоже лишь 2 микросхемы!), специализированная БМК (ULA), контроллер дисковода, звукогенератор с параллельным портом и т.д.
Что же представлял из себя оригинальный ZX Spectrum, и почему он занял такое исключительное положение на нашем рынке начала 90-х? Эта модель появилась в 1982-м году в Великобритании, причём сделана фирмой знаменитого изобретателя-бизнесмена Клайва Синклера, начавшего, например, впервые в мире выпуск карманных калькуляторов и карманных телевизоров. «Спектр» изначально был создан как самый дешёвый домашний ПК с поддержкой цветной графики. Для снижения себестоимости в нём применена даже простейшая клавиатура всего из 40-ка кнопок, каждая из которых несла до шести функций, в том числе могла вводить несколько операторов Бейсика. Представьте себе, из сорока клавиш тридцать шесть были необходимы для ввода цифр и английских букв и лишь ЧЕТЫРЕ клавиши использовались для других целей — таких как пробел, ввод, шифт и т.д. В результате такой экономии не было даже отдельной кнопки стирания. Тем не менее, многофункциональность каждой клавиши преподносилась создателями «Спектрума» даже как достоинство! Но самое уникальное в «Спектруме» — это его графический режим. Во-первых, он всего один, в отличие от большинства других ПК тех лет, обычно имевших несколько видеорежимов (до десятка!), во-вторых, «волшебники» Клайва Синклера, создававшие этот ПК, умудрились разработать видеосистему, выводящую 15-цветную графику достаточно высокого для игр разрешения 256×192 точки и требующую менее 7 Кбайт видеопамяти. Напомню, у большинства тогдашних моделей ПК видеопамять была около 16 Кбайт, то есть разработчики Синклера сэкономили целых 9 Кбайт. Что же это им дало? Во-первых, появилась возможность выпуска самого дешёвого варианта «Спектрума», имеющего всего 16 Кбайт ОЗУ (включая 6,75 Кбайт видеопамяти), конкурировать с которым по стоимости не мог никто. Во-вторых, как показало время, им удалось-таки создать очень дешёвый и очень популярный в Европе компьютер, долгие годы соперничавший с, казалось бы, намного более продвинутыми машинами типа тех же «Атари», MSX, Amstrad, Acorn, Commodore и других. Однако такие фокусы с объёмом видеопамяти не проходят бесследно — всё же возможности цветной графики «Спектрума» оказались очень ограниченными. Воспроизвести на нём детальную многоцветную графику просто невозможно. В «Спектруме» используется так называемая атрибутная система работы с цветом, которую по большому счёту вообще нельзя отнести к настоящей цветной графике — это фактически «псевдоцветная» графика. Весь экран компьютера разбит на знакоместа размером 8 на 8 точек, и для каждого знакоместа в отдельной области видеопамяти записывается байт атрибута, содержащий три бита цвета изображения, определяющих цвет точек, которым соответствуют единицы в основной видеопамяти, три бита для цвета фона (нули в видеопамяти), один бит признака повышенной яркости и один бит признака мерцания. Таким образом, для каждого из 768 знакомест экрана (24 ряда по 32 знакоместа) можно выбрать один из восьми цветов изображения, один из восьми цветов фона, задать обычную или повышенную яркость, а также задать автоматическое мерцание с частотой несколько герц. Так и получается 15 доступных цветов (чёрный повышенной яркости выглядит так же, как и чёрный обычной яркости), но ни о каком произвольном задании цветов для любой точки, как это возможно на многих других ПК, здесь речи не идёт — в каждом знакоместе из 64 точек может быть использовано только два цвета. В целом, несмотря на очень низкое цветовое разрешение, такая организация экрана позволяет рисовать довольно сложные и многоцветные статичные картинки-заставки, выводить цветной текст на цветном фоне или одноцветные графические объекты на несложном цветном фоне, создавать интересные цветовые эффекты вроде быстрого цветного мерцания объектов или цветных «переливов» и т. д., но, конечно, не дает такой свободы в выборе цвета, как на ПК с игровыми видеопроцессорами типа MSX, Commodore 64 или «Атари» и, тем более, как на ПК с произвольной многоцветной графикой вроде «Вектора-06Ц» или Amstrad CPC. На практике большинство игр для «Спектрума» рисуют либо одноцветные объекты на чёрном фоне (но каждый объект может иметь свой цвет), либо чёрные объекты на несложном цветном фоне, либо вообще чисто монохромную графику с использованием всего двух цветов. При этом, в отличие от ряда других ПК, «Спектрум» не имеет аппаратной поддержки вертикального и горизонтального сдвига экрана — это делается чисто программно, существенно загружая процессор в играх.
Программно реализуется в нём и работа со спрайтами — движущимися объектами, накладывающимися на фоновую картинку, причём программное наложение спрайтов на неоднородный фон обычно требует не только значительной загрузки процессора, но и повышенного расхода памяти, поскольку подразумевает хранение в ОЗУ не только самих спрайтов, но и так называемых теневых масок спрайтов, имеющих такой же размер, как и сами спрайты. Собственно, здесь мы подошли к главному достоинству сверхэкономной видеосистемы «Спектрума» — размер его видеопамяти настолько мал, что даже вполне обычный 8-разрядный микропроцессор Z80 легко успевает чисто программно, без участия каких-либо аппаратных ускорителей, с очень хорошей скоростью отрисовывать любую игровую графику. За несколько десятков миллисекунд процессор может и сдвинуть фон в нужном направлении, и наложить подвижные объекты на сложный фон, и скопировать получившееся изображение из буфера на экран, и вывести звуковые эффекты на динамик, и многое другое. При этом ещё раз заметим, что процессор «Спектрума» вовсе не обладал особо выдающимся быстродействием — у большинства зарубежных моделей микропроцессоры были не слабее. Поэтому для создания хороших игр от программиста требовалось весьма искусное владение ассемблером и очень точный расчёт временных интервалов.
Интересной особенностью «Синклера» был очень широкий бордюр — рамка между изображением и границами экрана, из-за которого, с одной стороны, заметно уменьшалась полезная площадь экрана, что вроде бы нехорошо, зато, с другой стороны, точки изображения становились мельче, и разрешение экрана казалось выше, чем на самом деле, а чёткость изображения улучшалась.
В общем, как ни странно, «Спектрум», не имеющий никакой специальной аппаратной поддержки игровой графики, к концу 1980-х оказался одним из самых популярных именно игровых компьютеров в Великобритании и во всей Европе, включая и Восточную. Впрочем, главные причины этого — вовсе не особые технические достоинства, а дешевизна и доступность (в том числе благодаря множеству клонов, выпускавшихся в разных странах), плюс европейское происхождение ПК и довольно широкая известность его первоначального производителя — Клайва Синклера. Вообще, если сравнивать «Спектрум» с другими недорогими популярными игровыми ПК, то, с одной стороны, бросается в глаза некая примитивность и однообразность графики во многих играх, особенно с монохромным игровым полем — конечно, от игрового ПК обычно ждёшь чего-то более красивого и яркого. С другой стороны, качество игр на «Спектруме», в среднем, очень высокое и по сложности они зачастую даже опережают аналоги на компьютерах с развитой аппаратной поддержкой игр. Неизгладимое впечатление производит и невероятное количество доступных на этом ПК игр — их тысячи, любых жанров и на любой вкус. Судя по числу игр, «Спектрум», безусловно, был одним из наиболее массовых и удачных игровых ПК.
К большому достоинству игровой графики «Спектрума» можно отнести сравнительно высокое разрешение: все-таки 256×192 точки — это намного чётче и лучше, чем характерное для многих других игровых моделей, таких как «Коммодор 64», «Атари» и «Амстрад», низкое разрешение порядка 160×200 точек и меньше с достаточно грубым, сильно ступенчатым изображением. Однако для более серьезных задач разрешения 256×192 уже явно маловато, что ограничивало применение «Синклеров» в основном именно играми и делало их мало подходящими даже для простого редактирования текстов с последующим выводом на печать (на оригинальном «Спектруме» и многих аналогах не было и параллельного или последовательного портов, что не позволяло непосредственно подключать стандартные принтеры — для этого нужен был ещё дополнительный контроллер). Из других особенностей ПК можно отметить отсутствие нормального звукового генератора в классической модели ZX Spectrum 48K, как и в подавляющем большинстве советских аналогов — звук у них воспроизводился программно, с большой нагрузкой на процессор. Правда, в более новой модели ZX Spectrum 128 уже был трёхканальный звуковой генератор на классической микросхеме AY–3–8912 или аналогичных и очень многие игры для «Спектрума», начиная с 1986 года, его поддерживали. У нас значительная часть владельцев спектрум-совместимых моделей самостоятельно или с чьей-то помощью подключали такие звукогенераторы к своим ПК и также получали нормальный звук в играх и демках.
Из обзора Советские домашние компьютеры 1980-х. Часть III.
28 июня 2016