Персональный компьютер 80-х годов ZX Spectrum 128

20 марта 2023

Мне несколько раз доводилось слышать истории вроде «в детстве у меня / моего бати был компьютер ZX Spectrum, там были игры, и, в общем, в итоге я стал программистом». ZX Spectrum не было ни у меня, ни у кого-то из моих друзей. Поэтому я слабо представлял, о чем речь. А недавно я подписался на несколько YouTube-каналов про ретро-игры, где эта тема всплыла вновь. Было решено разобраться, что же представляет собой ZX Spectrum. И не просто разобраться, но и попробовать самому.

Суть идеи

ZX Spectrum — это серия персональных 8-и битных компьютеров, разработанных в Великобритании, и выпускаемых Sinclair Research, а позднее — компанией Amstrad, с 1982-го по 1992-ой годы. ПЭВМ на тот момент уже были, но стоили больших денег. Их могли держать разве что директора крупных компаний у себя в офисе. Ключевая идея ZX Spectrum заключалась в том, чтобы сделать дешевый ПЭВМ. Его «продвинутая» версия с 48 Кб RAM в 1983-м году стоила 129 фунтов. Сегодня это было бы эквивалентно примерно 560$ или 49 000 руб. Базовая версия с 16 Кб RAM стоила 99 фунтов.

Внешне ZX Spectrum выглядит как клавиатура. Корпус этой клавиатуры также содержит в себе и компьютер. Сделано так для удешевления конструкции. В роли монитора выступает телевизор. Картинка подаются через антенный вход телевизора и принимаются как обычное аналоговое TV-вещание. Звук в первых версиях воспроизводился на встроенный динамик. Позднее он также стал передаваться в TV-сигнале. Вместо каких-нибудь дискет используются аудиокассеты. Чтение и запись осуществляются при помощи магнитофона, который также нужно подключить к компьютеру. Предполагается, что телевизор и магнитофон у пользователя уже есть.

Примечание: Аудиокассета является доступным, но очень медленным носителем. Загрузка серьезной программы под ZX Spectrum может занимать около 5-и минут.

Название «Spectrum» — это такой маркетинговый ход. Оно подчеркивает тот факт, что компьютер умеет выводить цветную картинку. Тогда это было большим прорывом и выгодно отличало Spectrum, например, от своего предшественника, Sinclair ZX81.

Разрешение составляет 256x192 пикселей. Доступно восемь цветов с двумя уровнями яркости — потемнее и посветлее. Для черного цвета яркость роли не играет, что дает нам 15 уникальных цветов. Пространство 256x192 пикселей разбито на квадраты 8x8. Один такой квадрат называется «знакоместо». В одном знакоместе можно использовать только два цвета, «чернила» (передний план) и «бумага» (задний план), а также один уровень яркости. Так сделано для экономии оперативной памяти. Ее было мало и стоила она дорого.

За счет названных ограничений, а также использования в палитре довольно кислотных цветов, картинка в ZX Spectrum выглядит очень специфично и легко узнаваемо. Вот, к примеру, одна из классических игр под спектрумы «Dizzy II»:

Dizzy II, классическая игра под ZX Spectrum

Поскольку фотографировать телевизоры сложно, здесь показан скриншот игры, запущенной в эмуляторе ZEsarUX. Заметьте, что левая рука главного героя получила цвет фона и стала желтой вместо белой. Так произошло из-за ограничения на количество цветов в одном знакоместе. Данный эффект называется colour clash, или клэшинг.

Характерно, что игры под спектрум часто используют черный фон. Такое решение дает более читаемую и приятную глазу картинку, поскольку с черным цветом сочетается любой другой цвет. В связи с этим, действие многих игр происходит ночью, в космосе, в подземельях, или на морском дне. Словом, где-то, где должно быть темно.

Используя программные приемы, размер знакоместа можно уменьшить по высоте вплоть до 8x1 пикселей. В таких случаях говорят, что программа использует «мультиколор». Как это работает можно прочитать здесь, а как выглядит — посмотреть здесь и по ссылкам в описании к видео. Но у мультиколора много недостатков. Он потребляет дополнительные процессорное время и RAM. Также мультиколор завязан на тайминги, и потому имеет проблемы с переносимостью.

Благодаря сочетанию цены и качества в свое время спектрумы завоевали огромную популярность. Было продано 5 млн одних только официальных спектрумов, и это число не включает в себя совместимые компьютеры («клоны»). Последние в огромном количестве производились на территории бывшего СССР, в Южной Америке, и не только. В качестве примера клона, который считается довольно удачным, можно привести в пример Sintez-2.

Наборы для сборки спектрум-совместимых компьютеров вроде «Пентагон 128» продаются и по сей день. Даже сегодня спектрумисты (то есть, энтузиасты ZX Spectrum) каждый год создают десятки, если не сотни, новых программ — игр, демок, музыкальных композиций, и так далее. В большинстве случаев они распространяются бесплатно в виде .tap-образов. Также разрабатывается и новое железо — «эмуляторы магнитофонов», читающие образы программ с SD-карт, адаптеры для подключения VGA-мониторов, и всякое такое прочее.

Другим коммерчески успешным ПЭВМ, современником ZX Spectrum со схожими идеями, был Commodore 64. Он вышел на несколько месяцев позднее, стоил дороже, и изначально ориентировался на рынок США. В США используется стандарт TV-вещания NTSC, тогда как в Европе используется PAL, и это нужно было учитывать при разработке компьютера. Commodore 64 в рамках этого поста рассматриваться не будет.

ZX Spectrum 128

Эмуляторы — это хорошо, но они дают лишь поверхностное представление об использовании настоящего устройства. К моему удивлению, поиск по Avito выдал немало релевантных объявлений. В большинстве случаев предлагались спектрум-совместимые компьютеры, но также было и несколько предложений оригинальных ZX Spectrum. Изучив доступные варианты, я остановился на таком:

Sinclair ZX Spectrum 128

Это ZX Spectrum 128, также называемый «toastrack» или «тостер» из-за большого радиатора. Позже я узнал, что именно эта модель считается особенно удачной, и что в наши дни ее не так-то просто найти. Существует британская и испанская версия ZX Spectrum 128. Они немного отличаются, в частности, распиновкой разъемов. Поэтому нужно знать, какая у вас версия. В испанской версии надпись «128K» сделана белым цветом, а в британской — красным.

Компьютер достался мне в очень хорошем состоянии. Похоже, что им почти не пользовались. Он шел с родными блоком питания, кабелями, инструкцией и коробкой. Пенопласт из коробки как будто бы вступил в какую-то реакцию с кабелем блока питания. Он словно расплавился и обволакивал поверхность кабеля, как какая-то краска или лак. Судя по этому видео, я не единственный, кто наблюдал данный эффект. Пенопласт счищается с кабеля с помощью изопропилового спирта.

Внутри нас ждет следующее:

Содержимое корпуса ZX Spectrum 128 и его блока питания

Перед нами основная плата компьютера, а также его блок питания. На плате указана ее версия 6U и год производства — 1985. Этот компьютер старше меня.

Блок питания линейный, нерегулируемый. Без нагрузки в режиме измерения постоянки на выходе БП мы должны видеть что-то около 12-14 В. Штекер используется обычный DC, но полярность обратная привычной — плюс снаружи, минус внутри. Будьте осторожны, так как защиты от переполюсовки здесь нет.

Схема устройства доступна онлайн и занимает всего лишь два листа. Ее можно распечатать как постер и повесить на стену. Основные компоненты:

  • Zilog Z8400APS — 8-и битный процессор Z80. В данном случае работает на частоте 3.5 МГц;
  • 27256-25/PO63 — это EPROM. На схеме данный чип обозначен, как IC5. Здесь хранится программа, получающая управление после включения устройства. Она умеет интерпретировать код на BASIC, загружать внешние программы с аудиокассет, и т.д. ZX Spectrum 128 имеет 32 Кб ПЗУ (ROM), против 16 Кб в более ранних моделях;
  • OKI M3764A-15 — 8 Кб DRAM в корпусе DIP16. Здесь используется 16 таких чипов, что дает нам 128 Кб RAM против 16-и или 48-и в более ранних спектрумах;
  • AMSTRAD 40056 — Uncommitted Logic Array, или ULA. Это в некоторой степени аналог современных FPGA, только конфигурация ULA происходит физически, на заводе. Здесь отвечает за формирование видео-сигнала, по факту выступая в роли графического сопроцессора. Применение ULA было одним из решений, которое позволило сделать спектрумы дешевыми;
  • ZX8401 — еще один ULA. Сконфигурирован, как мультиплексер, и отвечает за переключение банков памяти. Дело в том, что одновременно процессор Z80 может работать только с 64 Кб памяти. Если мы хотим 128 Кб, как в этом устройстве, то их приходится переключать;
  • PAL10H8CN — Programmable Array Logic, или PAL. Грубо говоря, хитро сконфигурированный логический вентиль. По всей видимости, как-то участвует в переключении банков памяти: следит, чтобы 40056 не подрался с Z80 при обращении к видеопамяти, или вроде того. Здесь приводится зависимость между сигналами на входе и выходе;
  • AY-3-8912A — так называемый «а-игрек», трехканальный генератор звука. В более ранних моделях он отсутствовал. Можно было только управлять встроенным динамиком, или «бипером», при помощи Z80. Как звучит бипер можно послушать зесь, а здесь для сравнения AY. Преимущество использования AY заключается в более богатом звуке и, что намного важнее, освобождении ресурсов процессора;
  • TEA 2000 — энкодер RGB-сигнала в композитное видео;
  • MC1376 — ДМВ (UHF) амплитудный / частотный модулятор. Здесь, насколько я понимаю, используется для модуляции звука;
  • Astec UM1233 — модулятор TV-сигнала. Переводит аналоговый НЧ сигнал от TEA 2000 в ВЧ сигнал, принимаемый телевизором. Выполнен в виде модуля, находящегося под металлическим экраном. Сигнал передается на 36-м канале ДМВ, которому в UK соответствуют частоты 591.25‐597.25 МГц;
  • UA7805 — линейный регулятор 5 В на огромном радиаторе. Через него питается вся остальная схема. Радиатор со временем заметно греется, хотя и не обжигает. Может иметь смысл заменить внешний линейный блок питания современным импульсным на 7.5 В 2 A. Это снизит падение напряжения на регуляторе и уменьшит рассеиваемое тепло;

Невзирая на почтенный возраст, компьютер оказался полностью рабочим. Однако это не помешало мне провести кое-какие восстановительные работы:

  • Все электролитические конденсаторы безусловно подлежат замене. На основной плате используются аксиальные конденсаторы, а в блоке питания — огромный конденсатор 4700 мкФ 16 В. Ничего из этого в запасах не нашлось, поэтому конденсаторы пришлось заказывать. Список конденсаторов на основной плате доступен здесь. Процесс их замены наглядно показан в этом видео;
  • Регулятор 7805 был плохо прижат к радиатору. Термопасты под ним не оказалось. Я положил под регулятор силиконовую прокладку и как следует прижал его к радиатору;
  • На обратной стороне платы я нашел с десяток контактных площадок, которые были не очень хорошо пропаяны. Насколько я понимаю, здесь использовалась пайка волной припоя, и это особенность техпроцесса. На всякий случай я тщательно просмотрел плату в поисках подобных мест и все их пропаял;

Клавиатура в этом спектруме механическая. Она легко разбирается и собирается обратно, благодаря чему ее легко чистить. Я заглянул под пару клавиш и не заметил никакой грязи. Поэтому чистить клавиатуру я не стал.

ZX Spectrum 128 имеет дополнительный разъем DIN8, куда выводится сигнал видео в RGB. Используя этот разъем, компьютер можно подключить к телевизору со SCART-входом. Это дает намного более качественную картинку, чем при использовании антенного входа, особенно на ЖК-телевизорах:

ZX Spectrum 128: вывод изображения при помощи антенного входа и SCART

Сделать переходник не сложно [PDF]. Но я нашел готовый на Avito, и подумал, что в данном случае мне проще заплатить 900 руб. К сожалению, звук на разъем DIN8 в этой модели спектрума не выведен. Поэтому в переходнике делают дополнительный штекер 3.5 мм. Он втыкается в разъем MIC компьютера.

В ZX Spectrum 128 есть простая диагностическая программа. Для ее запуска нужно зажать клавишу BREAK и, не отпуская ее, сбросить компьютер при помощи кнопки рядом со разъемом MIC. Программа выводит изображение, использующее все доступные цвета, а также воспроизводит тон с частотой 440 Гц один раз в секунду. Как выглядит диагностическая картинка можно посмотреть здесь [PDF] на странице 11.

Дополнение: Неплохой конвертер SCART в HDMI можно найти на AliExpress по запросу «HD 1080P Video Converter SCART to HDMI». Он не универсальный, но конкретно с ZX Spectrum работает очень хорошо.

Пример использования

Чтобы окончательно убедиться в исправности компьютера, напишем программу на BASIC и попробуем сохранить ее на кассету. Для этого лучше всего иметь магнитофон. Со смартфоном или mp3-диктофоном может получиться, а может и нет. Учтите, что скорость вращения ленты может зависеть от напряжения питания. Использовать магнитофон, питаемый от батареек, в общем случае нежелательно.

Подключение к магнитофону осуществляется при помощи пары кабелей со штекерами 3.5 мм. В комплекте с ZX Spectrum 128 идет сдвоенный кабель с двумя парами штекеров разного цвета. Разъемы EAR и MIC компьютера подключаются к разъемам EAR и MIC магнитофона соответственно. Если используется SCART-кабель, то пока оставляем его штекер 3.5 мм в порту MIC компьютера.

На магнитофоне нужно подобрать громкость, при которой программы успешно считываются. Мне показалось, что максимальная громкость работает лучше всего. Если имеются какие-то дополнительные настройки вроде эквалайзера, все их нужно либо выключить, либо поставить в положение по умолчанию. Нам нужен простейший магнитофон, без рюшечек.

Заходим в «128 BASIC» и вводим следующий текст программы:

10 PRINT "hello"
20 BEEP 0.5, 1

Проверяем, что все работает, выполнив команду RUN.

Теперь, чтобы сохранить программу:

  1. Перематываем ленту на желаемое место;
  2. Если используем SCART: вынимаем штекер из разъема MIC и втыкаем штекер, идущий к магнитофону;
  3. Вынимаем штекер из разъема EAR;
  4. Говорим SAVE "hello";
  5. Запускаем на магнитофоне запись;
  6. Нажимаем любую клавишу на клавиатуре;
  7. Ждем, пока программа запишется;
  8. Останавливаем запись на магнитофоне;
  9. Возвращаем штекер в разъем EAR;
  10. Если используем SCART: вынимаем штекер из разъема MIC и втыкаем штекер SCART-кабеля;

Чтобы загрузить программу:

  1. Перематываем ленту туда, где записана программа;
  2. Говорим LOAD "hello";
  3. Включаем на магнитофоне воспроизведение;
  4. Ждем, пока программа загрузится;
  5. Останавливаем воспроизведение на магнитофоне;

Может сложиться впечатление, что все это как-то сложно. Но ведь и задачу мы решаем нешуточную — сохраняем / загружаем файл, когда на дворе 80-ые. Впрочем, я не уверен, считается ли это файлом, если нет файловой системы.

Заключение

Ссылки по теме:

Итак, у нас есть ZX Spectrum. Спрашивается, что же с ним теперь делать? По большому счету, все, на что у вас хватит фантазии.

Есть люди, которым просто нравятся старые игры, и они держат ZX Spectrum рядом с NES / Famicom и Sega Genesis. Кому-то нравится работать с железом. Эти люди делают различные аксессуары для ZX Spectrum, замену вышедших из строя оригинальных компонентов на ПЛИС, и так далее. Кому-то нравится звучание чипа AY, и эти люди пишут под него музыку. А кто-то хочет писать игры, но не желает разбираться в монструозных Unity и Unreal Engine, и поэтому пишет игры на ассемблере Z80 под ZX Spectrum.

Уместить игру, да и в целом какую-то программу, в 48 Кб (для совместимости с большинством спектрумов) тоже ведь по-своему интересно. Задумайтесь, как это мало. Самая маленькая картинка в этой статье занимает в 1.5 раза больше, а суммарный размер всех картинок — в 7 раз больше. Это самое настоящее искусство, особенно если игра красивая и проходится не за полчаса.

Не удивительно, что интерес к ZX Spectrum не угасает, даже спустя 40 лет с момента его появления.

Дополнение: В продолжение темы ретро-железа вас могут заинтересовать посты Восстановление магнитофона 80-х годов National RQ-8100, Ноутбук 90-х годов IBM ThinkPad 345C и Советский компьютер Электроника БК-0010-01.

Метки: , , .


Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.