ZX Spectrum

ZX Spectrum — 8-разрядный домашний компьютер, созданный английской компанией «Sinclair Research Ltd» на основе микропроцессора Zilog Z80. В ходе разработки компьютер назывался «ZX81 Colour» и «ZX82», название «ZX Spectrum» должно было подчеркнуть одно из главных отличий от его предшественника ZX81 — цветное изображение. Почитатели этого компьютера часто называют его «Спекки» ().

В начале 1980-х «ZX Spectrum» был одним из самых популярных компьютеров в Европе, а его многочисленные клоны в начале 1990-х получили широкое распространение на территории бывшего СССР/СНГ. Благодаря невысокой цене за первые 17 месяцев было продано более миллиона этих машин. Низкая стоимость компьютера была обусловлена рядом факторов: использованием технологии , с помощью которой большая часть схемы размещалась в одном чипе, низкими техническими и пользовательскими характеристиками по сравнению с более дорогими компьютерами того времени, использованием бытового телевизора в качестве монитора и магнитофона в качестве внешнего накопителя.

В 1980-х основным соперником ZX Spectrum на европейском рынке был «Commodore 64». Другими важными конкурентами были 8-битные «Atari», «BBC Micro», «Amstrad CPC» и в некоторых странах MSX.

Технические особенности 
«Sinclair ZX Spectrum» был представлен в апреле 1982 года в двух вариантах — с 16 и 48 килобайтами оперативной памяти.

«ZX Spectrum 48» имел ПЗУ объёмом в 16 Килобайт, в котором был «прошит» диалект языка Бейсик, так называемый Sinclair BASIC. Эта же программа ПЗУ обеспечивала базовый ввод-вывод и пользовательский интерфейс. Системными процедурами (например, печатью на экран) можно было воспользоваться из машинного кода, вызвав их по абсолютным адресам. Архитекторами компьютера была принята политика не изменять программу ПЗУ, несмотря на наличие в ней ошибок. Расположение такой «операционной системы» и языка программирования в постоянной памяти обеспечивало перезагрузку компьютера за пару секунд, включая тестирование ОЗУ, и, что важно, уменьшало размер программ (программист мог использовать «стандартные» процедуры ПЗУ, не расходуя доступную оперативную память и не теряя при этом совместимость).

Первая модель «ZX Spectrum» имела недорогую в производстве клавиатуру, состоявшую из 40 резиновых клавиш. Такая клавиатура мешала быстро печатать — отсюда, по распространённому мнению, произошли пять режимов ввода интерпретатора Бейсика, экономившие нажатия. Режим ввода отображался с помощью курсора. Такими режимами были:
  — для ввода строчных букв
  — для ввода заглавных букв
  — для ввода основных ключевых слов BASIC, в этом режиме ключевые слова вводятся одним нажатием клавиши
  — для ввода дополнительных ключевых слов и операторов
 и  — для ввода псевдографических, управляющих символов и символов, определённых пользователем.
Режим переключался как автоматически, так и с помощью управляющих клавиш  и . Например, в начале набора BASIC ждёт номер строки или команду, поэтому курсор находится в режиме . Однократное нажатие клавиши  в таком режиме приводит к автоматическому вводу оператора . После этого курсор переходит в режим  и позволяет набрать число, имя переменной по буквам или математическое выражение (в том числе с помощью режима ). Более поздние модели (начиная с «ZX Spectrum 128») позволяли в качестве альтернативы набирать команды языка по буквам.

Не менее характерным был единственный аппаратный графический режим компьютера при отсутствии текстового. Цвета (8 цветов и два уровня яркости, плюс атрибут мерцания) и собственно графика хранились в разных участках памяти. При этом, хотя графическое разрешение составляло 256×192 точек, цветовые атрибуты задавались по знакоместам. Каждое знакоместо размером 8×8 пикселей могло иметь только два приписанных ему цвета (называемые цветами «чернил» и «бумаги» в Sinclair BASIC) и по одному атрибуту яркости и мерцания. Таким образом, область 8×8 пикселей кодировалась 9 байтами ОЗУ (8 байт — побитовая картинка 8×8 пикселей, 1 байт — атрибуты цвета: 3 бита — цвет знака, 3 бита — цвет фона, 1 бит повышенной яркости и 1 бит мерцания знакоместа). Такая организация вызывала определённые сложности (конфликт атрибутов) при создании компьютерной графики. С другой стороны, малый объём экранной памяти (около 7 КБ) позволял быстрее обновлять экран и увеличивать долю ОЗУ, используемую собственно программой, что было существенно для компьютерных игр. Кроме того, особая организация графического режима позволяла существенно оптимизировать вывод текста при отсутствии текстового режима.

Программистам ZX Spectrum удавалось обойти ограничения стандартного аппаратного видеорежима, и были разработаны программные видеорежимы, такие как GigaScreen, 3xColor, MultiColor и другие.

Первые модели «ZX Spectrum» имели встроенный динамик, осуществлявший однобитный выход звука. Воспроизведение музыки, особенно многоголосной, требовало использования почти всего времени процессора, так как звук полностью генерировался программно. В модели «ZX Spectrum 128» была добавлена микросхема звукогенератора AY-3-8912, позволяющая воспроизводить трёхканальный звук (плюс канал шума и огибающей) без больших затрат процессорного времени. Подключение этой микросхемы также было возможно и для моделей с объёмом памяти 48 КБ.

Модели

Модели Sinclair Research 
Оригинальные модели «ZX Spectrum», выпущенные «Sinclair Research»:
 ZX Spectrum 16K/48K (1982)
 ZX Spectrum+ (1984)
 ZX Spectrum 128 (1986)

Аппаратную часть ZX Spectrum 16K/48K разработал Ричард Альтвассер (Richard Altwasser) из «Sinclair Research», корпус машины был создан промышленным дизайнером Риком Дикинсоном (Rick Dickinson). Программное обеспечение для нового компьютера разработал Стив Викерс (Steve Vickers) по контракту с компанией «Nine Tiles Ltd», в которой был создан «Sinclair BASIC». Модель имела резиновые клавиши, миниатюрный корпус и характерный логотип в виде спектра. Компьютер был выпущен на рынок в 1982 году по цене в 125 фунтов за модель с 16 КБ ОЗУ и 175 фунтов — за модель с 48 КБ; эти цены позже были снижены до 99,95 и 129,95 фунта, соответственно. Владельцы модели с 16 КБ памяти могли приобрести обновление на 32 КБ; для обновления пользователи могли выслать свой «Spectrum» в «Sinclair Research» по почте. Сторонние фирмы также предлагали ОЗУ-модуль на 32 КБ, подключаемый в порт расширения.

С июня 1984 года разработчики готовили ZX Spectrum+, который был выпущен в октябре того же года. Это был «Spectrum» c 48 КБ памяти, обновлённым корпусом и клавиатурой; на корпусе появилась кнопка сброса. Довольно быстро новая модель стала продаваться вдвое лучше предыдущей; тем не менее, некоторые продавцы заявляли о высоком проценте поломок.

«Sinclair Research» разрабатывала ZX Spectrum 128 совместно со своим испанским дистрибьютором «Investrónica». «Investrónica» помогла адаптировать «ZX Spectrum+» к испанскому рынку после того, как испанское правительство обложило особым налогом все компьютеры с памятью в 64 КБ и ниже, не поддерживающие испанский язык. Новая модель содержала 128 КБ ОЗУ, трёхканальный звук через AY-3-8912, а также бипер, способный выводить программно синтезируемый двухканальный звук одновременно с AY-3-8912, что в целом обеспечивало 5 каналов, совместимость с MIDI, порт RS-232, RGB-выход на монитор, а также 32 КБ ПЗУ с улучшенным Бейсик-редактором. Машина была впервые представлена и запущена в продажу в сентябре 1985 года в Испании. В Великобритании, из-за наличия большого числа нераспроданных «Spectrum+», продажи были отложены до февраля 1986 года; начальная цена была установлена в £179,95.

Процессор Z80 имеет 16-разрядную шину адреса, что означает, что он может адресовать только 64 КБ памяти. Для доступа к дополнительным 80 КБ ОЗУ было внедрено переключение банков памяти (), таким образом, вся оперативная память разделена на восемь страниц, каждая из которых может быть отображена в верхней части адресного пространства. Подобным образом реализовано переключение между новыми 16 КБ ПЗУ и оригинальными 16 КБ ПЗУ в нижней части адресного пространства.

Для использования новых звуковых возможностей в «Sinclair BASIC» появилась инструкция PLAY, а с помощью новой инструкции SPECTRUM компьютер переключался в режим «Spectrum 48K». Новые инструкции заняли место двух существующих символов, определяемых пользователем, что вызвало проблемы совместимости с некоторыми старыми бейсик-программами.

Модели Amstrad 

Модели «ZX Spectrum», выпущенные компанией «Amstrad» после передачи прав на всю линию машин:
 ZX Spectrum +2 (1986)
 ZX Spectrum +3 (1987)
 ZX Spectrum +2A / +2B (1987)

В 1986 году, вскоре после приобретения бренда «Sinclair» и прав на всю линейку «Spectrum», компания «Amstrad» выпустила ZX Spectrum +2. Машина имела серый корпус с пружинной клавиатурой, двумя портами джойстиков, а также встроенным кассетным магнитофоном, именуемым «Datacorder» (как в «Amstrad CPC 464»), но в остальном машина была полностью идентична «ZX Spectrum 128». Цена производства была снижена, в результате чего розничные цены упали до £139-£149.

Новая клавиатура не имела надписей с ключевыми словами BASIC, за исключением LOAD, CODE и RUN, которые были нужны для запуска программ, но это не было большой проблемой, поскольку в «+2» имелась система меню, подобная меню в «ZX Spectrum 128», где можно было переключаться между старым BASIC 48K и BASIC 128K с набором ключевых слов побуквенно.

ZX Spectrum +3 выглядел подобно модели «+2», но вместо магнитофона содержал привод 3-дюймовых гибких дисков (как в «Amstrad CPC 6128»); корпус был чёрного цвета. Модель была выпущена в 1987 году с начальной ценой в £249, которая позже упала до £199. Это был первый «Spectrum», способный запускать операционную систему CP/M без дополнительного оборудования.

В «+3» появилось ещё 2 × 16 КБ ПЗУ, в виде одного чипа на 32 КБ. Половину этого объёма заняла вторая часть реорганизованного 128 ROM, вторую половину — дисковая операционная система +3DOS, которая по сути являлась изменённой версией AMSDOS. Для возможности использования других операционных систем механизм переключения банков памяти был изменён таким образом, что ОЗУ могло отображаться на все 64 КБ адресного пространства. Такие коренные изменения привели к ряду несовместимостей, некоторые игры для 48K и несколько игр для 128K перестали работать на новой машине.

«ZX Spectrum +3» стал последней официальной моделью «Spectrum», которая пошла в серию; производство модели продолжалось до декабря 1990 года. Хотя в то время продажи «Spectrum» составляли треть продаж всех домашних компьютеров, «Amstrad» прекратила производство в попытке перевести потребителей на линейку «CPC».

ZX Spectrum +2A был сделан для того, чтобы линейка машин стала более однородной. На корпусе по-прежнему была надпись «ZX Spectrum +2», но цвет корпуса вновь стал чёрным, как у первых моделей. «+2A» был сделан на основе «+3», с моделью ПЗУ 4.1 и с материнской платой, на которой было значительно уменьшено количество чипов — большинство из них было интегрировано в ASIC-микросхему. Привод диска и оборудование для него из модели «+3» был заменён на кассетный привод, как в оригинальном «+2». Первоначально «Amstrad» планировала вывести интерфейс для диска, но это так и не было сделано. Как и в случае с «ZX Spectrum +3», некоторые игры для 48K и несколько игр для 128K были несовместимы с этой моделью.

Позже, в 1987 году, появление ZX Spectrum +2B означало перевод производства из Гонконга в Тайвань.

Модели, не вышедшие на рынок 
В 1983 году Мартин Бреннан (Martin Brennan) разрабатывал в Sinclair Research игровую приставку LC3 (Low Cost Colour Computer), реализованную всего на двух микросхемах, с играми на картриджах. Стив Берри (Steve Berry) разрабатывал для LC3 многозадачную операционную систему с оконным графическим интерфейсом. Проект был остановлен в ноябре 1983 года — усилия были направлены на Sinclair QL.

В середине 1980-х в Sinclair Research разрабатывался проект Loki, в качестве намного более дешёвого (около £200) конкурента компьютера Amiga. Предполагалось, что Loki будет работать на Z80H на частоте 7 МГц, располагать не менее 128 КБ ОЗУ. Для звука и видео использовались две специализированные микросхемы. Проект был закрыт в 1986 году, после сделки с Amstrad.

Периферия 

«Sinclair» предоставляла для «ZX Spectrum» следующие модули расширения:
 ZX Printer — уже был доступен к моменту выхода «ZX Spectrum» на рынок, поскольку порт расширения сохранял обратную совместимость с портом ZX81.
 ZX Interface 1 — модуль, включающий 8 КБ ПЗУ, последовательный порт RS-232, контроллер локальной сети (ZX Net), а также интерфейс для подсоединения до восьми ZX Microdrive.
 ZX Interface 2 — модуль с двумя портами для джойстиков и одним портом для картриджа ПЗУ.
 ZX Microdrive — не особенно надёжное, но быстрое устройство хранения на картриджах с закольцованной плёнкой, выпущено в июле 1983 года.
 Keypad — дополнительная цифровая клавиатура для модели 128K.

Помимо этого, предлагался ряд расширений от сторонних производителей, в частности:
 Kempston joystick — интерфейс для подключения джойстика.
 Morex Peripherals Centronics/RS-232 — параллельный и последовательный порт.
 Currah Microspeech — модуль синтеза речи.
 Videoface Digitiser — дигитайзер.
 RAM pack — модуль расширения оперативной памяти.
 Cheetah Marketing SpecDrum — ударная установка.
 Multiface — отладочный инструмент от компании Romantic Robot.
Также пользовались популярностью клавиатуры различных производителей.

Существовало несколько интерфейсов для подключения дисковода, в частности:
 SPDOS (Abbeydale Designers/Watford Electronics, 1985)
 KDOS (Abbeydale Designers/Kempston, 1985) — обновлённая версия SPDOS со своей операционной системой KDOS
 Opus Discovery (Opus Supplies Ltd, 1985)
 DISCiPLE (Miles Gordon Technology, 1987) — контроллер дисковода, содержащий также два порта джойстика, параллельный порт, интерфейс локальной сети и «волшебную кнопку».
 Beta Disk Interface (Technology Research Ltd, 1984) и Beta 128 Disk Interface (1987)
На Западе наиболее популярным стал интерфейс DISCiPLE, в странах Восточной Европы и в России — Beta Disk Interface.

Производные и клоны 

«Sinclair» лицензировала «Spectrum» американской компании «Timex». Её модели, порождённые от «Spectrum»:
 Timex Sinclair 2068 (TS2068) — значительно более сложная машина, чем оригинальный «Spectrum»; добавился порт картриджа, звуковой чип AY-3-8912, а также улучшенная ULA с несколькими графическими режимами. Модель продавалась в основном в США, хотя почти идентичные версии распространялись в Португалии и Польше под названиями «Timex Computer 2068» (TC2068) и «Unipolbrit Komputer 2086» (UK2086).
 Timex Computer 2048 — машина, очень похожая на «Spectrum», но с улучшенной ULA, позволяющей переключаться в другие графические режимы; продавалась только в Португалии.
 Timex Sinclair 2048 — версия TS2068 с 16 КБ ОЗУ; не была выпущена на рынок.

В конце 1989 года в Великобритании компания «Miles Gordon Technology» (производитель периферии) выпустила компьютер «SAM Coupé» в качестве потенциального наследника «Spectrum», сохраняющего совместимость с ним. Однако, в то время «Commodore Amiga» и «Atari ST» уже вышли на рынок.

В Индии в 1986 году «Decibells Electronics» представила лицензированную версию «Spectrum+» под именем «db Spectrum+». До того, как в начале 1990-х прекратились продажи, было продано несколько тысяч машин.

Благодаря дешевизне и простоте конструкции широкое распространение получили «неофициальные» клоны «Spectrum» в СССР. Они изготавливались как радиолюбителями, так и кооператорами/частными МП и промышленностью СССР / СНГ. Нелицензионные клоны производились также в Польше, Румынии, Чехословакии, Аргентине, Бразилии и ряде других стран.

В 2014—2015 годах компания «Retro Computers» выпускала консоли «ZX Vega» и ZX Vega+, содержащие около 1000 лицензионных игр — редизайн «ZX Spectrum», предназначенный прежде всего для ретро-игроков.

Пресса 

В Северной Америке и Западной Европе ZX Spectrum быстро сформировал вокруг себя клуб пользователей, были созданы специализированные журналы: Sinclair User (апрель 1982 года — апрель 1993 года), Your Sinclair (с января 1984 года как Your Spectrum, с начала 1986 года по сентябрь 1993 года как Your Sinclair) и Crash (февраль 1984 года — апрель 1992 года). Вначале, журналы писали по большей части о технической части, публиковали тексты программ и руководства по программированию; позже они стали ориентироваться на игровую индустрию.

В постсоветском пространстве публиковалось несколько сот наименований электронных журналов и газет, в том числе: Spectrofon (1994—1996, 23 выпуска), «ZX-Format» (1995—1998, 9 выпусков) и Adventurer (1995—2004, 15 выпусков).

Печатные издания в постсоветском пространстве:
 «ZX-Ревю» (Москва, январь 1991 года — декабрь 1997 года) — одно из самых известных в постсоветском пространстве постоянное издание, публиковалось научно-техническим кооперативом «Инфорком»
 «Всё о ZX Spectrum» — серия из 9 книг издательства «Питер», издавались с 1991 по 1995 годы
 «Абзац — газета для спектрумистов» (Вологда, октябрь 2000 года — октябрь 2009)

Программное обеспечение 

«Spectrum» был дёшев и лёгок в обучении — как использования, так и программирования. Благодаря этому он стал отправной точкой для многих программистов и инженеров, вспоминающих его с ностальгией. Успех ранних моделей «Spectrum» в качестве игровой платформы вероятно был связан с низкой стоимостью компьютера и внешней привлекательностью, так как особыми «игровыми характеристиками» этот компьютер не обладал.

Семейство компьютеров «Spectrum» обладает крупной библиотекой программного обеспечения из более чем 25 тысяч наименований. Хотя большая часть этой коллекции — игры, набор программ очень разнообразен и включает в себя языки программирования, базы данных (например, VU-File), текстовые процессоры (Tasword II), электронные таблицы (VU-Calc), инструменты рисования (OCP Art Studio, The Artist) и даже 3D-моделирования (VU-3D).

Наиболее популярные игры 

Игры для «ZX Spectrum» создаются силами энтузиастов и в настоящее время, как на территории бывшего СССР, так и за рубежом.
Существуют пакеты для автоматизированного создания игр многих жанров (например, IF Creator для интерактивных книг, 3D Construction Kit для трёхмерных квестов), но чаще используется язык ассемблера. Проводятся конкурсы по написанию игр (например, Твоя Игра, Mini Game Compo, Crap Game Compo, конкурсы в рамках различных демопати, иногда в общем конкурсе с играми для других платформ).

Эмуляция 
Современные компьютеры, включая мобильные телефоны, карманные компьютеры и коммуникаторы, имеют техническую возможность эмуляции компьютера ZX Spectrum.
Благодаря большой базе готового программного обеспечения (в основном игр) «Sinclair ZX Spectrum» является, возможно, наиболее эмулируемой платформой в мире. Существует более полутора сотен эмуляторов для всех распространённых операционных систем для ПК, в частности под архитектуру Windows, игровых приставок и мобильных телефонов.

31 августа 1999 года компания Amstrad разрешила распространять ПЗУ для компьютеров ZX Spectrum, поэтому эмуляция этого семейства является законной.

Проекты эмуляторов ZX Spectrum на МК STM32:

 Spectrum-48 против пачки сигарет, каша из топора или что может STM32F103C8T6+video (Хабр)
 Zx spectrum128, CP/M 2.2 и терминал на STM32F407 (Хабр)
 Spectrum ZX 48K emulator (using STM32F407 microcontroller) (Github)

Примечания

Ссылки 

 zx.pk.ru — русскоязычный форум о ZX Spectrum
 World of Spectrum — фэн-сайт, официально одобренный компанией Amstrad
 Страница Spectrum на Planet Sinclair
 speccy.info — энциклопедия SpeccyWiki на викидвижке

Домашние компьютеры
История компьютерной техники
Появились в 1982 году в Великобритании
Компьютеры семейства ZX Spectrum
Компьютеры Sinclair Research