Важная информация
RSS лента

nonpar

"МИКРО-80": ностальгические воспоминания

Рейтинг: 2.45. Голосов: 11.


У кого как, а у меня путь к профессии компьютерщика (которой продолжаю отдавать дань и сегодня) начался с любительских конструкций 80-х.

До армии из электронных самоделок в моем “активе” была лишь пара усилителей ЗЧ, собранных в школьные годы. Естественно, по готовым схемам и без особого понимания, что там как работает. В армии, к концу службы, появилось свободное время и возможность брать в библиотеке подшивки журнала “Радио”. Там я выискивал статьи по цифровой технике, и наиболее важную инфу конспектировал в тетрадочку. В аналоговую-то я тогда почти не въезжал: для этого была нужна какая-никакая математическая подготовка сверх моих 10 классов. А вот для понимания работы “цифры”, кроме логического мышления, ничего не требовалось; и как-то меня это тогда зацепило: можно было прямо на бумаге синтезировать всякие хитроумные устройства и быть уверенным, что они когда-нибудь заработают в “железе” безо всяких формул и настройки. В общем, я стал типичным “ТТЛ-жокеем” (презрительная кличка, которую в начале 70-х выдумали американские “аналоговые” электронщики старой школы для скороспелых “цифровиков”).

Оказавшись на гражданке, я вдруг обнаружил, что из всего описанного в армейской тетрадочке цифрового великолепия в виде регистров/счетчиков/мультиплексоров 155-й серии - в нашей глубинке могу “достать”, как тогда говорили, чуть больше, чем ничего… На первой, после армии, работе - из электроники имел дело лишь с ламповыми усилителями; но через год нашел “работу мечты”: ремонт и обслуживание типографской наборной техники, оснащенной спецпроцессорами на “жёсткой” логике, аж в полторы тысячи микросхем каждый).

Вот тут-то и “выстрелил” ранее неизменно пролистывавшийся, но взятый на заметку цикл статей в “Радио” с первым в СССР описанием самодельного компьютера, позже названного Микро-80. Как я теперь понимаю, он очень напоминал знаменитый в 70-х американский Altair 8800: солидная модульная конструкция с системной шиной. В “Радио” публиковались лишь принципиальные схемы различных модулей и, позднее, коды программ. Выбирать то, что сейчас называется “конструктив”, предлагалось самостоятельно.

Последовательность статей была довольно странной. Сначала был описан процессорный модуль, не содержавший ни RAM, ни ROM. Затем - громоздкий, похожий скорее на лабораторный стенд, чем на любительскую конструкцию, “отладочный модуль” со множеством переключателей и светодиодов, отображавших состояние шины. С его помощью предлагалось в пошаговом режиме вводить адреса и коды команд и наблюдать на светодиодах их выполнение процессором. Позже последовала схема статического модуля оперативной памяти; кажется, на 4 килобайта. Программы, записанные в командах ассемблера и затем “вручную” переведенные (с помощью кодовой таблицы) в HEX-последовательность, стало возможно загружать с переключателей в RAM и запускать на выполнение.

Короче, все эти этапы я решил одним махом проскочить. Когда появилась статья с описанием дисплейного модуля, превращающего домашний телевизор в дисплей - я решил начать строить свой первый комп прямо с него, не имея пока даже процессора. Скажете, странное решение? Ну, во-первых, схемно он был заметно сложнее даже процессорного модуля, во-вторых, представлял собой полностью детерминированную автономную схему на жесткой логике, какие я тогда уже неплохо освоил. Но главное - позволял сразу увидеть результат, пусть и в виде “мусора” из символов, образовавшихся в дисплейном RAM после включения питания!

Необъяснимой особенностью “Микро-80” была инверсная шина адреса. В то время я ещё не был достаточно самостоятелен в схемных решениях, и тупо повторил эту глупость. С точки зрения адресации памяти и ввода/вывода это почти ни на что не влияло; но у дисплея-то память была двухпортовая; к ней обращался и процессор, и счетчик адреса отображения. Конечно, это можно было скорректировать программно (инвертировать адрес перед обращением к дисплейной памяти); но разработчики взамен влепили в дисплейный модуль кучу инверторов на 155ЛН1. Да и в целом опубликованная в “Радио” схема выглядела устаревшей даже по тем временам. Для построения мультплексора адреса там использовались микросхемы 155ЛР1, а дисплейная память была сделана на статических чипах КР565РУ2 с организацией 1024х1. В итоге, оригинальная схема содержала более 80 корпусов микросхем, что для любителя выглядело пугающе...

Элементная база тогда (как и сейчас, впрочем) развивалась семимильными шагами, и в одну из командировок в Москву были куплены (буквально “из-под полы”, у торговцев ворованными с заводов деталями) важнейшие компоненты будущего компа: процессор КР580ИК80А, пара EPROM 573РФ2 и 6 микросхем оперативной памяти 541РУ2. Эти крутейшие, на середину 80-х, статические микросхемы имели организацию 1024х4 бита (и потребляли по пол-ватта на корпус!); четыре из них я выделил на дисплейную память.

Благодаря более современной, чем у авторов “Радио”, элементной базе и собственным конструкторским изыскам, мне удалось сделать дисплейную плату более чем вдвое компактнее оригинальной. И главное, она и задала “конструктив”, в котором я потом выполнял остальные платы для этого компа. Плата была “частично печатной” двухсторонней (рисовал вручную кузбасс-лаком с помощью иглы от шприца). Соединения, которые не смог развести на предварительном чертеже печатки, сделал проводом. Конечно, ориентировался на промышленные платы ТТЛ логики, с которыми имел дело на работе; поэтому питание и “землю” развел сверху толстыми навесными шинами, обильно снабдив блокировочными конденсаторами КМ-5. На фото видно, что все эти конденсаторы ныне с плат выкушены. Что делать - однажды в непростой конец 90-х сдал “на драгметаллы” всё, что нашёл, что позволило семье протянуть лишнюю неделю до зарплаты…





Системную шину вывел на разъем МРН-44 (другие мне были тогда недоступны в количестве более одного; а этих отыскал целых пять). Самое смешное, что первое включение и отладку дисплейный модуль претерпел, вообще не имея распаянного шинного разъема. Кажется, не было даже микросхем шинных буферов. А зачем они, если к шине ничего не подключено?

На фото платы можно увидеть две микросхемы, расположенные вне первоначальной “сетки” - воткнутые впоследствии между существующими. Это счетчик ИЕ17 и сумматор ИМ3. Причина их появления - в неприятных особенностях оригинальной реализации дисплея на “Микро-80”. Его память была доступна только по записи. Что еще забавно - при информационной ёмкости 2К (32 стоки по 64 символа) дисплей занимал в адресном пространстве 4К. Вторые 2К занимала “память курсора”, где использовался лишь один разряд. Такое решение позволяло инвертировать на экране изображение произвольной части символов. В тех программах, которыми приходилось пользоваться, это находило единственное применение: инверсным символом выделялось положение курсора.

Понятно, что такая реализация не позволяла выполнять скроллинг экрана. Ну, то есть, теоретически это было возможно; но для этого нужно было держать копию дисплейной памяти в “стандартной” RAM, и при скроллинге на одну строчку полностью перезаписывать все 2К дисплейной памяти. Разработчики, понятное дело, тратить на это и так ограниченные ресурсы системы не стали, а отказались от скроллинга вовсе. При достижении выводимым символом последнего знакоместа в нижней строке - экран полностью очищался, и вывод продолжался с левой верхней позиции. Представьте, каково всерьёз работать с таким экраном! Позднее, когда всё это выяснилось, пришлось придумывать и добавлять схему, реализующую скроллинг, и писать его программную поддержку. Так и появились эти две микросхемы.

В разгар работы над дисплейным модулем “Радио” опубликовало описание второго своего компьютера, Радио-86РК. Он подкупал простотой и дешевизной; к тому же, для него была разработана печатная плата. Но я сразу же скептически-свысока отнесся к его “закрытой” бесшинной архитектуре и спорному решению в виде регенерации динамического RAM посредством DMA, совмещенной с выводом картинки на экран дисплея. Последнее делало невозможным пошаговый режим и резко ограничивало “свободу творчества”. Особенно неприятными были ограничения на программирование приложений, требующих, как сейчас говорят, “ногодрыга” с жесткими временными параметрами. Если кто помнит, особенностью “РК” было полное исчезновение картинки с экрана в период записи/чтения программ с магнитофонной ленты - одно из последствий такого архитектурного решения.

По всему по этому “РК” пока пошел побоку, и для меня настал черед делать процессорную плату. Я решил интегрировать на неё EPROM с программой монитора (2К на 573РФ2) и 1К RAM на оставшейся паре 541РУ2. Напомню один из траблов процессора 8080 - к нему нельзя было напрямую подключить ни кварц, ни обычный генератор тактовой частоты. Для тактирования требовалось два сигнала амплитудой 12В с хитрыми требованиями по взаимному сдвигу фаз. Кроме того, у него не было выводов, реализующих раздельные сигналы чтения/записи для памяти и ввода-вывода. Чтобы всё это получить, Intel предлагала специальные микросхемы обрамления: генератор фаз 8224 (деливший частоту кварца на 9) и “системный контроллер” 8228/8238. В схеме процессорного модуля “Микро-80” (и, подозреваю, оригинального “Альтаира”) они не использовались, частота кварца делалась на 5, а необходимые сигналы формировались элементами стандартных ТТЛ серий. Так что, можно было использовать распространенный кварц на 10 МГц вместо труднодоступного на 18 МГц, необходимого для “РК”.





Немного о записи UV EPROM и первых программах. В этом отношении мне повезло: институтский знакомый моего коллеги по работе всё ещё учился в МИЭТ и, приехав на каникулы, привез собственную версию “Микро-80” с набором прибамбасов. В том числе, у него имелся программатор EPROM. Он и прошил нам с коллегой РФ-ки для монитора и знакогенератора дисплея, а кроме того, снабдил кассетой с программами, из которых самыми ценными были Ассемблер и Бейсик. Ассемблер для Микро-80, кстати, так и не был опубликован в журнале “Радио” (который после запуска проекта “РК” вообще, как бы сейчас сказали, “прекратил поддержку” Микро-80).

Этот Ассемблер грузился и запускался с адреса 4000; текст программы тоже располагался с фиксированного адреса; так что была возможность сохранять его на магнитной ленте просто как кусок памяти. При трансляции на экран постранично выводился листинг с номерами ошибочных строк; сразу же можно было делать правку исходного текста встроенным строчно-ориентированным редактором. Монитор “Микро-80” содержал команды для назначения точек останова и просмотра/изменения регистров; всё это вместе давало любителю вполне приличные, по тем временам, возможности для разработки собственных программ.

Встреча с этим парнем, которому ещё не было 20, вообще сильно нас воодушевила. Но особенно мне запомнилась клавиатура его компьютера! “Клавиши” представляли собой множество транзисторов МП39 с обрезанными ногами, торчащих из отверстий в винипластовой панели; рядом были подписаны (видимо, “маркировочными чернилами” для кембриков) полу-стершиеся символы. Транзисторы нажимали на “микрики” МП-3, впаянные в расположенную ниже печатную плату, изготовленную грубым “процарапыванием”. Просто, быстро и со вкусом! Кстати, штатная программа монитора для “Микро-80” была написана так, что клавиши срабатывали не при нажатии, а при отпускании. Её авторам показалось, что так легче бороться с дребезгом!

Первоначально сделанная для “Микро-80” клавиатура не сохранилась. Собственно, она была почти такой же “времянкой”, как описанная выше, и на протяжении своей недолгой жизни работала по тому же кривому оригинальному алгоритму. Вычислительная техника тогда только начинала массово распространяться, рынка не было, царил тотальный дефицит, так что приобрести в достаточном количестве нормальные механизмы клавиш было проблематично. Даже промышленные “ДВК-3”, один из которых поступил к нам на работу, были укомплектованы емкостными клавами ужасного качества, которые, через одну, сбоили прямо с завода. Но мне повезло - на радиорынке Новосибирска удалось купить полный комплект изящных герконовых клавиш от какого-то девайса иностранного производства. А мой товарищ где-то “достал” клаву от советского терминала в литом металлическом корпусе толщиной сантиметров 7-8 и весом в несколько кг…

На первом фото моя клавиатура в корпусе, сделанном позднее для “РК”, где она также использовалась. Видно, что он выполнен из алюминиевой пластины (от копировального аппарата “ЭРА”) и крышки от магнитофона “Маяк-201”. Такие пластины были расходным материалом, и представляли собою просто кладезь для самодельщика. Единственная проблема: с них надо было снимать светочувствительный слой - пленку селена, про который в химической энциклопедии написано: “все растворимые соединения ядовиты”. Я нагревал пластину в духовке и соскабливал размягчившийся селен; а мой товарищ вообще его не снимал, устанавливая детали “селеновой” стороной внутрь).







К тому времени, когда делалась эта клава, все технологии уже были освоены, и мне нетрудно было дополнить её контроллером на нескольких микросхемах ТТЛ, чтобы она не требовала программного опроса клавиш, а просто выдавала код нажатой клавиши. Там даже был перекодировщик скан-кода в ASCII на EPROM КР556РТ5. Внести соответствующие изменения в Монитор тоже не было проблемой.

Для ввода с клавиатуры “Микро-80” и ввода/вывода на магнитофон требовался параллельный интерфейс на микросхеме 8255. Я решил унифицировать и расширить это дело, и сделал отдельную плату ввода-вывода, предусмотрев там место аж под три 8255 с внешними разъемами, плюс под таймер 8251. С доступностью разъемов тогда были проблемы, так что снимал неиспользуемые с оборудования - какие-то ГДР-овские, подобных не видел ни до, ни после. Но у меня имелись к ним и “папы”, и “мамы”, с корпусами и в достаточном количестве, а что ещё надо? На этой плате нанес гордую маркировку Микро/80М, чтобы подчеркнуть “глубокую модернизацию” исходного компа)





Такие программы, как ассемблер или бейсик, на 1К RAM, само собой, не запустишь. Никаких SRAM 8-битной ширины, вроде 62С128, одним корпусом “покрывающей” всё адресное пространство процессора 8080, тогда, естественно, не было. Не было даже 2Кх8 КР537РУ10, через несколько лет стоявших в каждом АОНе. Только DRAM, только хардкор! Мой 32-килобайтный модуль памяти первоначально состоял из шестнадцати КР565РУ6. Для него я придумал полностью оригинальную, простую и компактную схему автономной регенерации, чем горжусь до сих пор! На фото видно, что к моменту прекращения работы над проектом в модуле стояли уже 24 корпуса КР565РУ6, часть из них нештатно - "в два этажа". Единственная панелька была впаяна для проверки микросхем памяти.





Да, забыл рассказать. Где шина, там должна быть “корзина”. И я её сделал. Спаял пять “мам” МРН 44-мя параллельными проводами. Вообще, паять множество проводов/контактов разъема тогда считалось в порядке вещей. Не чета современным последовательным интерфейсам, для которых более 4 ног - считается ужас-ужас. Позднее сделал и корпус - вернее, основание, так как крышка не была предусмотрена в принципе)





Итак, получившийся полноценный комп состоял из четырех плат: процессор, дисплей, плата DRAM, плата ввода-вывода; и ещё оставался один свободный слот шины. Вполне “взрослая” конструкция! К плате ввода-вывода можно было прицепить магнитофон, программатор EPROM или любую кастомную штуковину, и без проблем заниматься с нею “ногодрыгом”.

Товарищ по работе, параллельно собиравший собственную версию компа, проделал титанический труд: дизассемблировал Монитор, частично разобрался в его работе и написал комментарии. Впоследствии мы его знатно переделали, каждый под себя. Устранили баги записи/чтения на магнитофон, сделали срабатывание клавиш “по-человечески”, на замыкание. Я прикрутил возможность печати на принтер. Поскольку никакой ОС не было - реализовано это было весьма примитивно: при включенном на "блоке сопряжения" тумблере, вся выводимая на дисплей информация дублировалась на принтер. Но это позволяло печатать листинги отлаживаемых программ, а значит, резко увеличивало наши программистские возможности!

К этому времени мой парк самодельных компов пополнился “игрушками” вроде РК-шки и пары Спектрумов. РК ничем особенным не запомнился, а вот зашитый в ROM Бейсик на “Спектруме” мне сильно помог, когда я учился заочно в институте. Да и игры там были замечательные, не чета примитивным поделкам вроде “Питона”; особенно крут, помнится, был космический симулятор “Элита”)

Но самый первый девайс продолжал использоваться как “инструментальный”, оставаясь непревзойденным по прозрачности и гибкости. В самом начале 90-х я было начал проект по прикручиванию к нему FDD-контроллера на ВГ93 и ОС CP/M, но... вскоре дома появилась XP-шка с MS-DOS и СGA монитором. А на работе, на новеньких 386-х компах АТ c 4 мегабайтами памяти, мы уже вовсю заглядывались на Windows 3.0. В 1994 я впервые увидел Мак с 20-дюймовым монитором и лазерный принтер в составе издательской системы, а уже через три года нечто подобное стояло у меня дома, помогая зарабатывать полиграфическим дизайном и версткой.

Однако и много позже, когда мой первый самодельный комп давно гнил в гараже - мне его, порою, очень не хватало...

Обновлено 05.11.2016 в 15:41 nonpar

Метки: Нет Добавить / редактировать метки
Категории
Без категории

Комментарии

  1. Аватар для Cooper
    На самом деле - очень круто!
  2. Аватар для CityAceE
    Спасибо! Очень интересная статья! Жаль только, что в статье нет никаких дат и можно лишь примерно догадываться, когда всё это происходило.

    Я реально поражаюсь самоотверженности людей, которые в своё время ухитрялись создавать такие конструкции, не имея под рукой ничего и добывая всё по крупицам!

    А этот компьютер сейчас реально запустить? Очень хотелось бы посмотреть видео его работы!
    Обновлено 06.11.2016 в 04:09 CityAceE
  3. Аватар для nonpar
    этот компьютер сейчас реально запустить?
    Можно, наверное; но я не возьмусь. "Документация" утрачена, да и некогда. Вот выйду на пенсию лет через 10 - может быть, займусь от нечего делать)
  4. Аватар для UA3MQJ
    Спасибо, было интересно
  5. Аватар для Бука
    Очень круто!

    Спасибо за историю.
  6. Аватар для helcril
    Как говорят "респект таким парням"
    Статья очень понравилась, спасибо.

Трекбэков