7 / 8 018
Версия для печати
История одного Спектрума или "Pentagon" моей мечты
Эта история началась давным-давно, когда у меня был "Композит", потом "Байт-128" со встроенным телевизором, в котором после выгорания импульсного блока питания ни одной целой микросхемы не осталось... Это грустная история... Но горе было недолгим, и спустя пару месяцев у меня появился симпатичный Pentagon-128 в корпусе от "Корвета". В таком виде Pentagon меня никак не устраивал, и начались бесконечные доработки...
Сначала расширил память до 512К по схеме из "Спектрофона", это было легче всего сделать. В то время (1998 год) можно было купить по символической цене 1$ рабочую материнскую плату от 286-го компа с целым мегабайтом памяти на микросхемах 41256 (256K*1) в DIP-корпусах. На них и было сделано расширение Pentagon'а до 512К. Заодно набрался микросхем 41256 на долгие годы (этих микросхем хватило на расширение многих Спектрумов, часть подарил, и всё равно ещё остались про запас). К слову, немного позже на радиорынке барыги (которые даже не знали для чего эти микросхемы предназначены) пытались продать мне их по 2$ за штуку, аргументируя цену словами "это ж супер-пупер редкая и ценная микросхема".
Следующим пунктом для доработок стала клавиатура:
Плёночная клавиатура, использовавшаяся в моём Pentagon-128
Плёночная клавиатура, использовавшаяся в моём Pentagon-128
Родная клавиатура была хоть и хорошей, но неудобной для быстрой печати. Быстрая печать нужна была для быстрого набора текстов в iS-Assembler, который я тогда только начинал осваивать. Самой удобной для работы мне показалась PC-шная клавиатура, и поэтому по случаю удалось приобрести контроллер AT-клавиатуры и COM-мыши:
Контроллер AT-клавиатуры и COM-мыши для ZX-Spectrum (предположительно скопирован с контроллера от Scorpion)
Контроллер AT-клавиатуры и COM-мыши для ZX-Spectrum (предположительно скопирован с контроллера от Scorpion)
По тем временам контроллер стоил целое состояние (15$), и на него ушла вся стипендия. А какой же контроллер без клавиатуры и мыши? Для их приобретения была занята необходимая сумма, в результате чего пришлось жить остаток месяца впроголодь, но это уже другая история, не для сайта...
Как оказалось, схема контроллера была взята от аналогичного контроллера для Scorpion'а, даже ПЗУ по-моему было одинаково. Судя по плате, контроллер был изготовлен где-то в Минске. Работал контроллер более-менее нормально, вот только вносил довольно большие задержки процессора по сигналу /WAIT, что при нажатии клавиш ощутимо подтормаживало программы, а некоторые программы вообще повисали, потому что при определённых условиях контроллер начинал выдавать /WAIT постоянно. Насколько я помню, это было из-за определённых способов опроса клавиатуры в программах. В качестве решения проблемы была установлена дополнительная кнопка сброса контроллера, которая нажималась каждый раз, когда контроллер подвешивал компьютер.
Поддержка COM-мыши в этом контроллере была особенная - перепутанные левая и правая кнопки мыши и незадействованная средняя кнопка. До того у меня была пассивная мышь, и от неё остались очень хорошие впечатления, в том время как COM-мышью я был не очень доволен. Но выбирать не приходилось...
Чтобы работать в любимом iS-DOS Assembler нужна была самая малость - iS-DOS, и желательно, чтобы система работала не с дискеты, а с винчестера. К счастью тогда уже вышел 8-й номер электронного журнала ZX-Format, где была статья о Nemo-IDE, и, самое главное - драйвер винчестера для iS-DOS. Аккуратно перерисовав схему из журнала, я её спаял, подключил к Pentagon'у, купил подвернувшийся под руку винчестер Seagate аж на 40 мегабайт и включил систему... Естественно, ничего не заработало. Как оказалось позже, дело было в подгоревшей микросхеме в контроллере IDE, но тогда я этого не знал. Я понял, что придётся самому во всём разбираться. Пришлось по журнальной статье во всех подробностях изучить всю логику работы IDE, все команды. На основе этого я вычислил все порты Nemo IDE и написал собственный простой драйвер винчестера, который, о чудо, заработал! (Заработал он только потому, что был неоптимизированный и жутко тормозной, что сыграло, как ни странно, положительную роль, потому что на таком тормозном драйвере та самая глючная микросхема в контроллере IDE почему-то работала нормально). Помня поговорку, что "лучшее - враг хорошего", я оставил драйвер как есть и долгое время его не трогал. Пусть себе работает.
Тот самый контроллер IDE, немного разукомплектованный, но если установить в него все микрохемы, будет работать:
Самодельный контроллер IDE-винчестера (по схеме Nemo) для ZX-Spectrum
Самодельный контроллер IDE-винчестера (по схеме Nemo) для ZX-Spectrum
Чуть позже, когда я устанавливал плату компьютера в новый корпус, та самая подгоревшая микросхема дала о себе знать - контроллер нормально работал только в определённых положениях относительно корпуса компьютера. Тогда я подумал, что не должно так быть, и стал последовательно менять микросхемы в контроллере. Когда глючная микросхема была заменена, контроллер стал работать как часы, на нём заработали все драйверы винчестера - ide+3.blk, ide+5.blk и даже самый быстрый jason.blk. После этого я окончательно забросил свой драйвер винчестера и перешёл на jason.blk.
Оставим пока в покое винчестер и вернёмся к компу. А точнее к его музыкальной части - музыкальному сопроцессору AY (или YM, кому как нравится). В моём Pentagon'е музыкальный сопроцессор был расположен на отдельной платке вместе с процессором Z80, и всё это вместе ставилось на длинных ножках в процессорную панель на плате компьютера. Работало всё это глючно, потому что контакты в панельке постоянно отходили. В итоге сопроцессор я вынес за пределы платы компьютера. Я решил, что раз уж дорабатывать компьютер, то лучше делать доработки на отдельной плате. И тут в самый раз пришлась кстати статья про ZX-BUS из электронного журнала Spectrum Expert №2. На этой периферийной плате и разместился в первую очередь музыкальный сопроцессор.
В то время очень полезной штукой был модем. Тогда ещё в Минске была своя сеть ZX-Net, работало много BBS, плату за время разговоров на городских телефонах ещё не ввели, поэтому можно было ночами просиживать за Спектрумом, качая новьё с BBS и читая конференции в FIDO. В Минске тогда были популярны модемы от Ars'a, которые он сам продавал на радиорынке. Особенностью их было то, что все маркировки на микросхемах были стёрты (чтобы нехорошие конкуренты не тиражировали девайс), а также то, что в модеме, хоть и стоял развязывающий трансформатор, не было гальванической развязки между компьютером и телефонной линией.
CDOS модем для ZX-Spectrum от ARS′a
CDOS модем для ZX-Spectrum от ARS′a
Тогда я учился в универе, и со мной на потоке учился Кирилл (Micruho-Maklaj). Он вместе с Мишей (Hamer, это у него была своя Hamer BBS) разработали простую схему CDOS-модема, с гальванической развязкой. Я эту схему опробовал и изготовил в двух экземплярах, один из которых подарил своему другу.
Самодельный CDOS модем для ZX-Spectrum, точнее его аналоговая часть. К нему ещё была плата портов, но она, увы, не сохранилась.
Самодельный CDOS модем для ZX-Spectrum, точнее его аналоговая часть. К нему ещё была плата портов, но она, увы, не сохранилась.
Этот модем честно и безглючно отработал у меня несколько лет. В данный момент интереса ради я сделал плату портов и подключил этот модем к АТМ-Турбо. Модем весело щёлкает реле. Однако полностью проверить его я не смог, т.к. нет BBS, на которую можно было бы позвонить.
В какой-то момент памяти 512К стало мало. Хотелось копировать дискетку за один проход, и в iS-DOS очень хотелось открыть RAM-диск на мегабайт. Поэтому стал искать возможность расширения памяти. Схема расширения памяти до 1МБ на SIMM-модуле почему-то именно на моём экземпляре Pentagon'а работать наотрез отказалась, поэтому пришлось садиться и самому искать решение. В итоге память удалось расширить на 4-х SIMM-модулях по 256К. Я даже послал схему и описание доработки в какую-то минскую электронную газету (увы, не помню куда именно). Только совсем недавно увидел свою статью в журнале "Радиомир. Ваш компьютер" №1 за 2002 год.
Чуть позже к Pentagon'у был подключен ISA-модем на 14400 бод по схеме Кондратьева. Помню, что для этого пришлось перепрограммировать ПЗУ с Basic-48, чтобы устранить ошибку обработки NMI. Для нормальной работы терминалки под этот модем нужен был графический режим 512*192 точек, что и было сделано.
Где-то в то время попал мне в руки "Радиоежегодник" с описанием микросхемы часов КР512ВИ1. Естественно захотел поставить эту микросхему в Спектрум. Как раз кстати появилась схема подключения ВИ1 от Mr Gluk, и я её собрал. Долгое время ушло на то, чтобы добиться устойчивой работы ВИ1 при отключении питания компьютера, но в конце-концов эта задача была решена. После изучения принципов работы ВИ1 была написана для iS-DOS программа, которая читала текущую дату из часов и сохраняла её в системе. Программа вызывалась каждый раз при старте iS-DOS. А нужно всё это было для того, чтобы было видно когда в какой день был создан или изменён файл. Этой программой я пользуюсь до сих пор.
На Pentagon'е мной был спаян интерфейс принтера. Не мудрствуя лукаво я взял его со схемы Профи. Соответственно под iS-DOS отлично подошли драйвера принтера для Профи. Однако матричный принтер Seikosha, который был у меня, наотрез отказался печатать русские символы. Мало того, он вообще не печатал символы с кодами больше #7F. Надо было что-то придумать, чтобы можно было полноценно печатать на нём. Ситуацию спасло то, что принтер понимал систему команд Epson-совместимых принтеров. Я для него быстро написал драйвер под iS-DOS, который содержал в себе полный русский шрифт и загружал в ОЗУ принтера нужные символы для печати. В таком виде он работает и по сей день.
Другим аспектом интерфейса принтера было то, что к нему помимо принтера можно было подключать другие интересные устройства, такие как эта читалка телефонных карт:
Читалка телефонных карт для ZX-Spectrum
Читалка телефонных карт для ZX-Spectrum
Благодаря ей удалось вживую поэкспериментировать с I2C шиной (микросхема в телефонной карте работала именно по такой шине) и даже написать программу для чтения содержимого карты.
На том самом принтере Seikosha я печатал конверты для дискеты с игрой Manager, которую я написал в 2000 году. Игра сама по себе неинтересна, ничего особенного. Однако каким-то образом попала на WoS.
Дискета с игрой «Manager». Типа лицензия с тиражом 2 (две) штуки :)
Дискета с игрой «Manager». Типа лицензия с тиражом 2 (две) штуки :)
Игра в таком оформлении была сделана на двух дискетах. Одна уехала в Оршу, вторая сейчас хранится у меня.
Так как памяти в компьютере было целых 1024КБ, встал вопрос - по какому же стандарту ею управлять? Варианты были следующие - чистые 128К с портом #FD для просмотра демок, 512К по стандарту Пентагона, 1024К по стандарту Профи. Немного позже добавился вариант 1024К по стандарту KAY - чтобы можно было открыть в памяти RAM-диск и грузить в него дискеты. Прошивка от KAY работала именно с таким стандартом расширения памяти. Было ясно, что оставить какой-то один стандарт нельзя. Хотелось всё и сразу. Поэтому я решил сделать стандарт расширения памяти меняемым. Поначалу всё было сделано на тумблерах, потом было кнопочное управление, но всё это меня не очень устраивало. Наконец в голову пришёл вариант повесить управление стандартами расширения памяти на отдельный порт. Теперь при включении компьютера достаточно было занести в порт нужное значение - и нужный стандарт памяти сам включался.
Программатора ПЗУ у меня тогда ещё не было, а так хотелось попробовать новые прошивки TR-DOS... Тогда в голову пришла крамольная мысль - а почему бы не заменить ПЗУ на статическое ОЗУ? В то время у нас на радиорынке продавали статические ОЗУ 62256, да и не просто на 32К, а ещё с буквой "L", что означало очень низкое потребление тока в режиме хранения информации. Посидев пару вечеров было найдено схемотехническое решение, которое позволяло подставлять вместо банков ПЗУ с бейсиком-128 и TR-DOS банки статического ОЗУ. Как и в случае с памятью, управление всем этим хозяйством было повешено на тот же дополнительный порт. Моя статья по этой доработке публиковалась в электронном журнале "Deja Vu #07".
Пару недель ушло на нахождение решения проблемы сохранности информации в ОЗУ при выключении питания. Проблема была в том, что в момент включения компьютера информация в ОЗУ портилась. Но всё это было удачно преодолено.
Для удобной установки нужных прошивок в статическое ОЗУ была по-быстрому написана программа Install на основе графического движка (автор - Max, описание интерфеса в электронном журнале "Чёрная ворона" №2). Программа позволяла устанавливать любую прошивку размером 16К в любой из банков статической памяти.
 
Немного позже я написал аналогичную программу, но уже для ОС iS-DOS, она и стала основной.
Для управления конфигурацией компьютера мой друг Tony написал программу Setup с графическим интерфейсом. Она располагалась в банке памяти, подставляемом вместо 128-го бейсика. При каждом сбросе компьютера она загружалась, и из неё можно было выбрать в какой конфигурации запустить компьютер, куда выйти (в бейсик, в TR-DOS и т.п.). Текущая конфигурация компьютера хранилась в ячейках памяти микросхемы часов.
Поначалу, пока не удавалось решить проблему порчи ячеек памяти микросхемы часов КР512ВИ1, в программе была опция для выключения компьютера. При её вызове закрывался доступ к микросхеме часов.
В программе был режим защиты от несанкционированного доступа к компьютеру - можно было установить пароль на включение:
С опцией загрузки с винчестера поначалу были проблемы. Дело было в том, что я совершенно не знал как запустить систему "с нуля". Потом мне подсказали идею, как это сделать, и после нескольких опытов удалось сделать старт системы с винчестера. Правда, это было реализовано далеко не так, как в загрузчике от Nemo (тогда я о нём совсем не знал), но всё работало.
Затем каким-то образом ко мне попала прошивка ПЗУ от KAY. Оттуда я взял загрузчик HDD Boot и дизассемблировал его. Разобрался что к чему и решил изменить свой способ загрузки iS-DOS с винчестера на нормальный от Nemo.
Эта небольшая переделка повлекла за собой доработку компьютера - введения стандарта расширения памяти KAY-1024 для работы iS-DOS Chic и для работы RAM-диска TR-DOS в памяти компьютера. Прошивка TR-DOS от KAY это позволяла.
Заодно я решил не развивать далее программу Setup и написал аналогичный загрузчик, названный BIOS (хотя это никакой не настоящий BIOS). Внешне программа была немнога похожа на настоящий BIOS. Вход в неё делается так же, как в обычный BIOS - удержанием Delete (CS+9) при сбросе компьютера:
Заставка BIOS при включении компьютера (её нарисовал Phoenix специально для моего проекта BIOS):
...Шло время, и Пентагон стал понемногу глючить. Холодные пайки на плате, многочисленные перепайки, стали появляться трещины в дорожках. А посколько компьютер был буквально оплетён МГТФом, то ремонтировать его с каждым разом было всё сложнее. И наконец в один прекрасный день компьютер перестал работать. Навсегда..
Долго оставаться без рабочего Spectrum'а не хотелось, и по случаю у CHRV был куплен АТМ-Турбо 2+. Памятуя о недопустимости превращения компа в клубок МГТФа я свёл к минимуму число дополнительных паек на плате АТМки и вывел всю периферию на дополнительные платы. В итоге получился вполне такой симпатичный компьютер, на котором приятно работать:
Компьютер ATM-Turbo 2+ v7.10 от NedoPC
Компьютер ATM-Turbo 2+ v7.10 от NedoPC
Компьютер ATM-Turbo 2+ v7.10 от NedoPC
Однако история с Пентагоном имеет продолжение:
В 2009-м году Striker совершенно бескорыстно подарил мне плату Pentagon-128. Плата была в хорошем состоянии, и я решил повторить тот старый Pentagon, только на этот раз очень аккуратно. На этот раз я выполнил на плате только самые необходимые доработки:
Pentagon-128 с доработками
Pentagon-128 с доработками
Все остальные доработки сделал на периферийной плате, стыковавшейся с платой Пентагона через разъём:
Периферийная плата для компьютера Pentagon-128
Периферийная плата для компьютера Pentagon-128, вид снизу
Периферийная плата для компьютера Pentagon-128
Периферийная плата для компьютера Pentagon-128, вид снизу
На периферийной плате расположены несколько золотых разъёмов шины Nemo-BUS по случаю выпаянные с корзины от какой-то ЕС'ки. Монтаж традиционно сделан несколькими десятками метров провода МГТФ :) В отличие от старого Pentagon'а к доработкам добавился ROM-диск. На удивление этот Pentagon почему-то хорошо подключается к PAL-кодеру, хотя характерная черта Pentagon'а - это нестандартные времянки ТВ-сигналов.
В разложенном на столе виде это всё смотрится примерно так:
Компьютер Pentagon с периферийной платой (в разложенном виде)
Компьютер Pentagon с периферийной платой (в разложенном виде)
Компьютер Pentagon с периферийной платой (в разложенном виде)
Немного позже к периферии добавился оригинальный GS:
Компьютер Pentagon с установленным General Sound
Компьютер Pentagon с установленным General Sound
Компьютер Pentagon с установленным General Sound
Всё это добро ещё немного позже переместилось в специально разработанный для него металлический корпус форм-фактора типа "гроб" :) Корпус получился довольно большой, но зато в него помещаются помимо компа и блока питания 4 дисковода и винчестер.
Собранный компьютер Pentagon в корпусе
Собранный компьютер Pentagon в корпусе
Собранный компьютер Pentagon в корпусе
Собранный компьютер Pentagon в корпусе
Собранный компьютер Pentagon в корпусе
Собранный компьютер Pentagon в корпусе
Собранный компьютер Pentagon в корпусе
Собранный компьютер Pentagon в корпусе
Собранный компьютер Pentagon в корпусе
Собранный компьютер Pentagon в корпусе
Собранный компьютер Pentagon в корпусе
Собранный компьютер Pentagon в корпусе
Если поставить комп боком на пол, то выглядит почти как сервер:
Pentagon-1024 типа сервер
Pentagon-1024 типа сервер
Комп с подключенным цветным монитором Электроника МС6106:
Pentagon-1024 в сборе с цветным монитором и клавиатурой
Pentagon-1024 в сборе с цветным монитором и клавиатурой
В данный момент компьютер используется как резервный на случай если чего-то случится с АТМ-Турбо 2+ и просто для просмотра демок с мультиколорами - ведь Pentagon как-никак!
Напоследок выкладываю всё то, что имеет отношение к этой статье. Прошивку BIOS не выкладываю, т.к. нет смысла это делать - кроме как на этом Pentagon'е она работать не станет. То же самое касается программы Install - в обычном Spectrum'е она бесполезна.
Скачать: |
|
|
Расширение памяти Pentagon-128 до 512KБСтатья из электронного журнала Spectrofon #17, перенабранная и качественно оформленная
|
|
|
Контроллер AT-клавиатуры и COM-мыши для Спектрума (предположительно клон контроллера от Scorpion)Схема, фотография, инструкция и прошивки всех ПЗУ контроллера
|
|
|
Схема CDOS-модема (авторы Hamer, Micruho-Maklaj)
|
|
|
Расширение памяти Pentagon-512 до 1МБ (моя статья, опубликованная в журнале Радиомир)
|
|
|
Исходники игры Manager (всё равно никому не надо, но пусть хоть для истории будут)
|
|
|
Схема периферийной платы к моему Pentagon и схема доработок самого компьютераДля повторения не рекомендуется из-за высокой сложности
|