ZX Spectrum 128k своими руками. Часть 2
Первая частьздесь
Все изображения кликабельны.
Прошло больше года c того момента как я написал статью про сборку клона ZX Spectrum «Ленинград». И за это время его возможности существенно расширились. Не думал что я буду писать ее продолжение, но все таки статей по ретрокомпьютерам не так уж и много, поэтому решился.
Порт расширения
Компьютер к которому ничего нельзя подключить очень ограничен в возможностях и я решился припаять к нему порт расширения. Кроме 40 pin IDE на плату больше ничего не влезало, но подсчитав количество нужных мне контактов вышло что хватит и этого. Минус один контакт на ключ, 2 контакта на +5в, 2 контакта на землю.
Клавиатуру в корпус
Ранее я использовал внешнюю клавиатуру, но хотелось более аутентичного форм-фактора. На момент сборки мне подогнали клаву от спектрума из 90х с наклейками. Порты для синклер джойстиков и кнопку РЕСЕТ прикрутил к ней же. Дело нехитрое, вырезаем прямоугольник в корпусе и крепим к плате на стойки. Заднюю часть тоже пришлось немного попилить.
Игры без загрузок
Картриджи для спектрума у нас популярны не были, если только не считать игровую приставку АЛЬФ. Не то что бы они были популярны и в европе, так как требовали недешевого устройства ZX Interface 2. Официально было выпущено всего 10 игр. Картридж это всего лишь ПЗУ с предзаписанной игрой на плате с набором контактов, так что сделать это устройство совсем несложно. Я давно хотел попробовать вытравить плату и сейчас как раз тот случай. Но сначала ее надо еще и развести, для этого использовал программу sprint layout.
На самой плате ленинграда только впаял резистор подтяжки на 20 контакт ПЗУ и сам контакт вывел на порт расширения. При подключении картриджа на него будет подаваться +5в и отключит ПЗУ компьютера. Ну и контакт /RDROM тоже на порт расширения вывел. Что ж, плата разведена, выпиливаем из куска советского текстолита квадратик.
Засовываем в принтер страницу из глянцевого журнала, печатаем и включаем утюг.
Плата двусторонняя, делаем конвертик из страниц при помощи степлера.
Получилось как то так, надо было конечно некоторые участки закрасить получше маркером.
Для травления выбрал хлорное железо, хотя знаю что полно других новомодных способов.
Получилось так себе.
И тут люто накосячил, перепутал слои при распечатке, заметил только после того как плата была вытравлена. Новый кусок текстолита вырезать было лень и отчаявшись я сделал переходные отверстия. Зря я стал лудить дорожки так как иногда оставались куски фольги на жале паяльника, без МГТФ и тут не обошлось. ПЗУ для картриджа так же как и для самого ленинграда выбрал EEPROM W27C512. Для выбора игр (4 штуки по 16 кб) использовал счетчик 74HC393, чтобы при нажатии кнопки РЕСЕТ они бы переключались как в сборниках на ДЕНДИ. Но это было плохой идеей и в итоге счетчик я выпаял и сделал переключение двумя дип свичами. Заливаем термоклеем для жесткости место пайки 40 пинового контакта.
Программатор на тот момент я уже приобрел свой. Заливаем все хиты от Ultimate Play The Game включая Jetpac. Конечно я потом попробовал и другие, в том числе так и не вышедшие игры, такие как Gyruss и Star Wars.
Подключаем дисковод
Хотя лента и картриджи как носители информации у меня уже имеются, но самая мяготка конечно в использовании флоппи-привода. Под этот носитель написаны лучшие игры, такие как Черный ворон, НЛО: враг неизвестен, а в скором будущем появится и POWER BLADE, кроме того под него портированы почти все игрушки с ленты. Скорость загрузки раз в 15–20 быстрее загрузок с магнитофона, объем форматированой в TR-DOS дискеты 640 кб, профит очевиден. Но дисковод сам по себе к спектруму не подключишь, придется еще собирать полспектрума — контроллер накопителя гибких магнитных дисков, он же КНГМД. Схему данного устройства решил взять с сайта zxbyte.ru, как и многие другие доработки ленинграда.
Я решил быть реалистом и схему на 15 микросхем я разведу наверное только к следующему столетию, поэтому собирать стал на макетке. Ну и очень хотелось поместить плату в компактный корпус. Сердцем отечественных контроллеров дисковода была микросхема КР1818ВГ93. Недостаток у нее довольно существенный, она требовала 12 вольт и надежностью не отличалась. Поэтому я заказал микросхему аналог MB8877, которая прекрасно работает и от пяти. Не знаю китайцы мне прислали оригинал или подделку, но она работает и это замечательно. Выбрав схему КНГМД С-48, которая и создана была для подключения к ленинградам и балтикам, столкнулся с неприятной деталью, на узле чтения логика ФАПЧ была реализована на микросхеме ППЗУ К556РТ4, про которую мой китайский программатор не знал. Попробовал вместо нее поставить использованную ранее W27C512, но то ли я что то накосячил, то ли в самой EEPROM были проблемы, но флоппик не заработал, хотя в TR-DOS я уже смог войти. Пересобрал потом узел чтения по схеме пентагон-128 без ФАПЧ и как результат дисковод смог отформатировать дискету. Кстати стандартным дискетам повышенной плотности нужно заклеивать отверстия в уголке, дабы они виделись в приводе как дискеты двойной плотности.
Какое же облегчение пользоваться дискетами, после загрузок, даже ускоренных с ленты/телефона. Схема КНГМД у меня упрощенная и работать может только с двумя дисководами (в том же пентагоне и многих других клонах до 4), хотя и этого хватит за глаза. Наигравшись с 3,5» дисководом я захотел приобрести 5,25» и он заработал без проблем, к слову я впервые потрогал пятидюймовые дискеты, они такие гибкие гибкие, в общем кайф. Для удобства прошил вместо BASIC-128 Quick commander, он умеет и музыку играть и изображения смотреть и всякие операции с файлами.
Для записи образа дискет TR-DOS на PC я использую програмку ZX Studio, а для сборки собственного образа ZX Spectrum Navigator.
Смотрим демки
Демосцена у нас развивалась преимущественно под клон спектрума пентагон-128, а он в силу особенностей схемотехники имел 71680 тактов на прорисовку одного кадра, когда как фирменный zx spectrum 69888 тактов, а ленинград всего 65184 тактов из за задержек ответа от памяти. Для большинства игр и других программ это не имело особого значения, но только не для демок. Отрезаем сигнал /WAIT и сажаем его на +5в. на ножку 9D5 подаем землю вместо сигнала /БК. Но спектрумовские мультиколоры могут не заработать с пентагоновскими таймингами, поэтому сделаем джампер спектрум/пентагон. C КМОП версией процессора (Z84) такой вариант не заработал, но с U880 проблем нет. 100% совместимости с пентагоном компьютер не получил, но демки, написанные под пентагон теперь не тормозят. Мне очень понравилась REFRESH, разработанная в далеком 1998 году.
Работаем в СР/М-80
Немногие клоны могли запускать данную ОС, можно вспомнить БАЙТ-01, Кворум-64, ZS Scorpion 256, Профи. Для работы с СР/М компьютер должен иметь поддержку теневого ОЗУ. А так как ZS Scorpion 256 это ленинград на спидах, то не будет больших сложностей его немного доработать. Качаем схему и изучаем. Отключается ПЗУ битом 0 порта #1FFD так же как и на spectrum +3, который из коробки имел возможность запускать СР/М. А битом 4 переключаются страницы по 128 кб. У меня же переключается битом 6 порта #7FFD, что конфликтует в некоторых случаях с программами, хотя проблема у меня была только с одной демкой. Пришлось перерисовывать схему расширения для поддержки порта #1FFD. Делал это в пейнте, получилось как то так.
Места на плате у меня больше нет, 100 раз пожалел что не взял плату 20×30 под ATX корпус. Так как 6 бит порта #7FFD мы уже не используем, микросхема 1533ТМ2 теперь лишняя, вместо нее ставим 1533ТМ9, на которую заводим 0 и 4 бит порта #1FFD. Используем по максимуму 1533КП12 в схеме расширения тем самым освобождая необходимый нам элемент ИЛИ. Проверяем, предварительно записав на дискету СР/М от комплекта скорпиона. Работает!
Немного непривычно видеть СР/М с серым фоном и черными буквами, но те кто портировали ее видимо хотели схожести с родным BASIC-48. По дефолту ОС имеет 48 кб ОЗУ и RAM диск на 160 кб, запускается с 64 символами в строке (3 пикселя в ширину+пробел), что не шибко хорошо читается, но терпимо. Утилитой mode, можно поменять на 32,40,48 и требуемых для большинства программ 80 (3 пикселя в ширину без пробелов, нечитаемое месево) символов. Некоторые клоны имели режимы повышенного разрешения, например Байт-01 с режимом 512×192 что делало его вполне пригодным для работы с СР/М. Но у фирменного spectrum +3, скорпиона 256, и большинства других клонов такого счастья не было, что возможно и послужило причиной непопулярности данной ОС на спектрумах. О самой СР/М-80, а точнее ее версии 2.2 от 1979 года можно писать отдельную статью, я всего лишь пробегусь по софту.
ОФИС
Текстовый редактор WORDSTAR, очень функционален для редактирования текста, один из прародителей MS WORD.
Электронные таблицы Варитаб, советско-болгарская разработка, очень-очень напоминающая SuperCalc, была ли это переведенная на великий и могучий западная программа, или сделанная по образу и подобию, ну или было какое то лицензирование, надеюсь в комментариях подскажут. Существует еще Варитаб-86 для МС-ДОС, ей возможно многие пользовались. Еще одна электронная таблица Multiplan от MicroSoft у меня нормально запустится не смогла, возможно ей требовалось 25 строк вместо 24.
Программирование
На СР/М просто рай для программистов, тут и Turbo Pascal и компилятор Си, компилятор Фортран, компилятор языка ADA, язык ФОРТ-83, ассемблер, MS BASIC, транслятор языка PL/1 и многое другое.
Игры
Да, на СР/М были игры, в основном это текстовые квесты, такие как трилогия ZORK, к сожалению с моим уровнем английского оценить их я не смогу.
Так же были популярны шахматы, такие как SARGON.
Но были и экшны, например Ladder, вполне играбельный платформер.
Клон PAC MAN.
И как же без его величества ТЕТРИС.
Эпилог
По итогу получилось довольно функциональная машинка для ретро и не очень гейминга, просмотра демок, прослушивания чиптюна и других развлечений. Аппетит приходит во время еды и возникают мысли собрать контроллер мыши, контроллер жесткого диска, COVOX, вывести наконец кемпстон джойстик по стандарту zx spectrum next, разогнать компьютер до 7 Мгц…, но стоит ли оно того?