ZX Spectrum 128k своими руками. Часть 2

image
Первая частьздесь

Все изображения кликабельны.

Прошло больше года c того момента как я написал статью про сборку клона ZX Spectrum «Ленинград». И за это время его возможности существенно расширились. Не думал что я буду писать ее продолжение, но все таки статей по ретрокомпьютерам не так уж и много, поэтому решился.

Порт расширения


Компьютер к которому ничего нельзя подключить очень ограничен в возможностях и я решился припаять к нему порт расширения. Кроме 40 pin IDE на плату больше ничего не влезало, но подсчитав количество нужных мне контактов вышло что хватит и этого. Минус один контакт на ключ, 2 контакта на +5в, 2 контакта на землю.

qutk-g-uv0q8dsjkuk_9bm41ajo.jpeg

twlxrtx6s4rkrbbvsog1jai1-lg.jpeg

Клавиатуру в корпус


Ранее я использовал внешнюю клавиатуру, но хотелось более аутентичного форм-фактора. На момент сборки мне подогнали клаву от спектрума из 90х с наклейками. Порты для синклер джойстиков и кнопку РЕСЕТ прикрутил к ней же. Дело нехитрое, вырезаем прямоугольник в корпусе и крепим к плате на стойки. Заднюю часть тоже пришлось немного попилить.

nynhdjjpjue_avdd_qpepewrtuc.jpeg

Игры без загрузок


Картриджи для спектрума у нас популярны не были, если только не считать игровую приставку АЛЬФ. Не то что бы они были популярны и в европе, так как требовали недешевого устройства ZX Interface 2. Официально было выпущено всего 10 игр. Картридж это всего лишь ПЗУ с предзаписанной игрой на плате с набором контактов, так что сделать это устройство совсем несложно. Я давно хотел попробовать вытравить плату и сейчас как раз тот случай. Но сначала ее надо еще и развести, для этого использовал программу sprint layout.

a_bt06lorwtzq5wdnn4ylp5pgu0.png

На самой плате ленинграда только впаял резистор подтяжки на 20 контакт ПЗУ и сам контакт вывел на порт расширения. При подключении картриджа на него будет подаваться +5в и отключит ПЗУ компьютера. Ну и контакт /RDROM тоже на порт расширения вывел. Что ж, плата разведена, выпиливаем из куска советского текстолита квадратик.

iefof926tixw9mib9n_lwokvjf4.jpeg

Засовываем в принтер страницу из глянцевого журнала, печатаем и включаем утюг.

p-jodheeqywabfekwz60d-c4vvu.jpeg

Плата двусторонняя, делаем конвертик из страниц при помощи степлера.

m65lbgi6pz1kg3rbzjhobhgnggy.jpeg

Получилось как то так, надо было конечно некоторые участки закрасить получше маркером.

i7nnlmw_epjwtpoudx-risobgem.jpeg

Для травления выбрал хлорное железо, хотя знаю что полно других новомодных способов.

3uz5nozg2igriv3t-b4-p-owd2y.jpeg

Получилось так себе.

dud_xjjv-u3yvayjwd0z4elzxns.jpeg

И тут люто накосячил, перепутал слои при распечатке, заметил только после того как плата была вытравлена. Новый кусок текстолита вырезать было лень и отчаявшись я сделал переходные отверстия. Зря я стал лудить дорожки так как иногда оставались куски фольги на жале паяльника, без МГТФ и тут не обошлось. ПЗУ для картриджа так же как и для самого ленинграда выбрал EEPROM W27C512. Для выбора игр (4 штуки по 16 кб) использовал счетчик 74HC393, чтобы при нажатии кнопки РЕСЕТ они бы переключались как в сборниках на ДЕНДИ. Но это было плохой идеей и в итоге счетчик я выпаял и сделал переключение двумя дип свичами. Заливаем термоклеем для жесткости место пайки 40 пинового контакта.

0z0oi4b_x4192qhz0awos4_9qya.jpeg

i4zmv6ulq3-mtg8jieibvanavmg.jpeg

Программатор на тот момент я уже приобрел свой. Заливаем все хиты от Ultimate Play The Game включая Jetpac. Конечно я потом попробовал и другие, в том числе так и не вышедшие игры, такие как Gyruss и Star Wars.

gevq7s4alvhikj6v3mmjjht7xes.jpeg

ct-cex6gr8xklawfs4asf75_kdo.jpeg

Подключаем дисковод


Хотя лента и картриджи как носители информации у меня уже имеются, но самая мяготка конечно в использовании флоппи-привода. Под этот носитель написаны лучшие игры, такие как Черный ворон, НЛО: враг неизвестен, а в скором будущем появится и POWER BLADE, кроме того под него портированы почти все игрушки с ленты. Скорость загрузки раз в 15–20 быстрее загрузок с магнитофона, объем форматированой в TR-DOS дискеты 640 кб, профит очевиден. Но дисковод сам по себе к спектруму не подключишь, придется еще собирать полспектрума — контроллер накопителя гибких магнитных дисков, он же КНГМД. Схему данного устройства решил взять с сайта zxbyte.ru, как и многие другие доработки ленинграда.

--m8-d_nmspbzxdfxifky7elw9m.png

Я решил быть реалистом и схему на 15 микросхем я разведу наверное только к следующему столетию, поэтому собирать стал на макетке. Ну и очень хотелось поместить плату в компактный корпус. Сердцем отечественных контроллеров дисковода была микросхема КР1818ВГ93. Недостаток у нее довольно существенный, она требовала 12 вольт и надежностью не отличалась. Поэтому я заказал микросхему аналог MB8877, которая прекрасно работает и от пяти. Не знаю китайцы мне прислали оригинал или подделку, но она работает и это замечательно. Выбрав схему КНГМД С-48, которая и создана была для подключения к ленинградам и балтикам, столкнулся с неприятной деталью, на узле чтения логика ФАПЧ была реализована на микросхеме ППЗУ К556РТ4, про которую мой китайский программатор не знал. Попробовал вместо нее поставить использованную ранее W27C512, но то ли я что то накосячил, то ли в самой EEPROM были проблемы, но флоппик не заработал, хотя в TR-DOS я уже смог войти. Пересобрал потом узел чтения по схеме пентагон-128 без ФАПЧ и как результат дисковод смог отформатировать дискету. Кстати стандартным дискетам повышенной плотности нужно заклеивать отверстия в уголке, дабы они виделись в приводе как дискеты двойной плотности.

g-cy9mjvutbjzl-sh9xydzk_q5e.jpeg

4fschhmiyin4t93m34gopiqtijq.jpeg

Какое же облегчение пользоваться дискетами, после загрузок, даже ускоренных с ленты/телефона. Схема КНГМД у меня упрощенная и работать может только с двумя дисководами (в том же пентагоне и многих других клонах до 4), хотя и этого хватит за глаза. Наигравшись с 3,5» дисководом я захотел приобрести 5,25» и он заработал без проблем, к слову я впервые потрогал пятидюймовые дискеты, они такие гибкие гибкие, в общем кайф. Для удобства прошил вместо BASIC-128 Quick commander, он умеет и музыку играть и изображения смотреть и всякие операции с файлами.

m9sqiemh41bedgei-eiinov5u3k.jpeg

Для записи образа дискет TR-DOS на PC я использую програмку ZX Studio, а для сборки собственного образа ZX Spectrum Navigator.

zu-wks4rwamxg93jntictpd5j0c.jpeg

czsbh3hqp5s_nx2lpwmrpe8zt_s.jpeg

Смотрим демки


Демосцена у нас развивалась преимущественно под клон спектрума пентагон-128, а он в силу особенностей схемотехники имел 71680 тактов на прорисовку одного кадра, когда как фирменный zx spectrum 69888 тактов, а ленинград всего 65184 тактов из за задержек ответа от памяти. Для большинства игр и других программ это не имело особого значения, но только не для демок. Отрезаем сигнал /WAIT и сажаем его на +5в. на ножку 9D5 подаем землю вместо сигнала /БК. Но спектрумовские мультиколоры могут не заработать с пентагоновскими таймингами, поэтому сделаем джампер спектрум/пентагон. C КМОП версией процессора (Z84) такой вариант не заработал, но с U880 проблем нет. 100% совместимости с пентагоном компьютер не получил, но демки, написанные под пентагон теперь не тормозят. Мне очень понравилась REFRESH, разработанная в далеком 1998 году.

7nfjs38140c13rpimje7pefwcvm.jpeg

Работаем в СР/М-80


Немногие клоны могли запускать данную ОС, можно вспомнить БАЙТ-01, Кворум-64, ZS Scorpion 256, Профи. Для работы с СР/М компьютер должен иметь поддержку теневого ОЗУ. А так как ZS Scorpion 256 это ленинград на спидах, то не будет больших сложностей его немного доработать. Качаем схему и изучаем. Отключается ПЗУ битом 0 порта #1FFD так же как и на spectrum +3, который из коробки имел возможность запускать СР/М. А битом 4 переключаются страницы по 128 кб. У меня же переключается битом 6 порта #7FFD, что конфликтует в некоторых случаях с программами, хотя проблема у меня была только с одной демкой. Пришлось перерисовывать схему расширения для поддержки порта #1FFD. Делал это в пейнте, получилось как то так.

bpohwivj_i1rpkid_ufynzewxwm.png

Места на плате у меня больше нет, 100 раз пожалел что не взял плату 20×30 под ATX корпус. Так как 6 бит порта #7FFD мы уже не используем, микросхема 1533ТМ2 теперь лишняя, вместо нее ставим 1533ТМ9, на которую заводим 0 и 4 бит порта #1FFD. Используем по максимуму 1533КП12 в схеме расширения тем самым освобождая необходимый нам элемент ИЛИ. Проверяем, предварительно записав на дискету СР/М от комплекта скорпиона. Работает!

2rqjhnb6o8mbpncu2dduclmf2ug.jpeg

Немного непривычно видеть СР/М с серым фоном и черными буквами, но те кто портировали ее видимо хотели схожести с родным 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.

08wnxwlfzoow8v03l3b2ppaaycs.jpeg

Электронные таблицы Варитаб, советско-болгарская разработка, очень-очень напоминающая SuperCalc, была ли это переведенная на великий и могучий западная программа, или сделанная по образу и подобию, ну или было какое то лицензирование, надеюсь в комментариях подскажут. Существует еще Варитаб-86 для МС-ДОС, ей возможно многие пользовались. Еще одна электронная таблица Multiplan от MicroSoft у меня нормально запустится не смогла, возможно ей требовалось 25 строк вместо 24.

g6qykxzqgycpqnupcjxztruy2h4.jpeg

Программирование
На СР/М просто рай для программистов, тут и Turbo Pascal и компилятор Си, компилятор Фортран, компилятор языка ADA, язык ФОРТ-83, ассемблер, MS BASIC, транслятор языка PL/1 и многое другое.

Игры
Да, на СР/М были игры, в основном это текстовые квесты, такие как трилогия ZORK, к сожалению с моим уровнем английского оценить их я не смогу.

yqdo6jysfj_qjimpxnc1bgyqflw.jpeg

Так же были популярны шахматы, такие как SARGON.

yhpfkfcu_a4e4dh2a39ty4eozvi.jpeg

Но были и экшны, например Ladder, вполне играбельный платформер.

fwjs3panewhm83uixvhhpirldw4.jpeg

Клон PAC MAN.

mbcv2viprfp4wid1xiwr707bfaa.jpeg

И как же без его величества ТЕТРИС.

vcluev6iiv5l__zd7dirlaqs9qu.jpeg

Эпилог


По итогу получилось довольно функциональная машинка для ретро и не очень гейминга, просмотра демок, прослушивания чиптюна и других развлечений. Аппетит приходит во время еды и возникают мысли собрать контроллер мыши, контроллер жесткого диска, COVOX, вывести наконец кемпстон джойстик по стандарту zx spectrum next, разогнать компьютер до 7 Мгц…, но стоит ли оно того?

© Habrahabr.ru