БК-0010

История создания БК-0010 была непростой и достаточно долгой. Ещё в 1979 году в Зеленоградском научно-исследовательском институте точной технологии (НИИ ТТ) разработан первый вариант недорогого компактного персонального компьютера для широкого применения «Электроника НЦ-8010», способного работать с телевизором в качестве устройства отображения информации и магнитофоном для хранения информации. Его окончательная конструкция создана в 1981-м. Это был мощный 16-разрядный двухпроцессорный (!) ПК на основе однокристальных микро-ЭВМ К1801ВЕ1 с архитектурой «Электроника НЦ», на базе которой в НИИ ТТ с середины 1970-х годов было спроектировано несколько удачных универсальных микро-ЭВМ. НЦ-8010 оснащался 64 килобайтами ОЗУ, имел графику 512х256 точек. Затем этот ПК неоднократно перерабатывался для упрощения конструкции и в соответствии с решением руководства министерства электронной промышленности СССР о полном переходе на архитектуру PDP-11. В результате к началу 1983 года был создан тот самый БК-0010, который и стал основой для серийного ПК, производство которого было освоено заводом «Экситон» в подмосковном городе Павловский Посад. Первые несколько десятков компьютеров также выпущены ещё в 1983 году. Главные конструкторы ПК — А.Н. Полосин и С.М. Косенков. Интересные подробности о создании НЦ-8010 и БК-0010, а также и других отечественных ПК можно найти в замечательной статье Б.М. Малашевича «Зеленоградские бытовые и школьные компьютеры. Инициатива наказуема исполнением» (http://www.electronics.ru/files/article_pdf/0/article_477_336.pdf).

Электроника БК-0010

Рис. 8. «Электроника БК-0010» — классический вид с цветной плоской клавиатурой, напечатанной на бумаге и покрытой плёнкой (под бумагой — матрица клавиатуры из низкопрофильных кнопок ПКН-150)

Итак, в середине 1984 года в Советском Союзе на прилавках магазинов «Электроника», наконец, появился первый отечественный домашний компьютер — «Электроника БК-0010». Стоил он сначала 540, затем 600 рублей — примерно как цветной телевизор или хороший музыкальный центр, что было не дёшево, но вполне доступно для большинства населения. Надо сказать, к этому времени люди, увлекающиеся вычислительной техникой, из книг и журналов уже хорошо знали, что такое ПК и зачем он может быть нужен, поэтому интерес к БК-0010 был велик. А когда в 1986 году главный советский научно-популярный журнал «Наука и жизнь» начал публиковать материалы о БК-0010, о нём узнали буквально миллионы читателей. С другой стороны, не нужно преувеличивать спрос на такие ПК в те годы и их значение — большинство людей вполне логично воспринимали их просто как дорогую игрушку, не имеющую серьёзного практического применения. Но для любителей-энтузиастов появление в продаже домашних компьютеров стало важнейшим событием.

БК-0010

Рис. 9. БК-0010: 44 микросхемы, ПЗУ с Фокалом и МСТД в панельках (теоретически их легко заменить на другие, более нужные пользователю, программы), основные БИС (процессор и две вентильных матрицы) в дорогих металло-керамических корпусах

Процессор

Давайте, наконец, посмотрим, что представлял из себя этот компьютер. Первое, что следует отметить — это была совершенно оригинальная советская разработка, не имеющая каких-то явных зарубежных прототипов. Второе — это был один из первых в мире полностью 16-разрядный домашний компьютер. Причём во многих источниках написано ещё конкретнее — первый в мире домашний 16-разрадный ПК. То есть у БК был 16-разрядный процессор, 16-разрядное ОЗУ, 16-разрядное ПЗУ и 16-разрядный видеоконтроллер, поэтому и передача данных шла сразу 16-битными словами, и обработка в процессоре тоже выполнялась сразу над 16-ю битами данных; все регистры процессора, естественно, тоже были 16-разрядными. Напомню, в те годы подавляющее большинство недорогих ПК были либо полностью 8-разрядными, либо частично 16-разрядными, поэтому выпуск настоящего 16-разрядного бытового ПК был большим шагом вперёд. Кстати, процессор БК-0010 — знаменитый К1801ВМ1 — содержал 50000 элементов (около 17000 транзисторов), в то время как процессоры 8-разрядных ПК — всего лишь от 3,5 до 8,4 тысяч транзисторов, что уже говорит о явном преимуществе 16-разрядных. Отмечу, что чем больше разрядность процессора, тем быстрее он производит сложные вычисления и в среднем быстрее обрабатываются данные, особенно многоразрядные (16, 32, 64 бита и т.д.), но скорость выполнения простых программ и несложных вычислений непосредственно от разрядности почти не зависит. При этом скорость работы процессора сильно зависит от тактовой частоты и его архитектуры, особенно от способности выполнять несколько команд одновременно (наличия конвейерной обработки). Так вот, процессор БК-0010, представлявший первое поколение 16-разрядных микропроцессоров (МП), как и большинство применявшихся в то время зарубежных 16-разрядных процессоров, на практике по скорости чаще всего мало отличался от типичных 8-разрядных моделей, зато К1801ВМ1 был гораздо удобнее для программиста, поскольку имел чрезвычайно удачную и любимую многими систему команд машины PDP-11. Процессор БК работал на достаточно высокой частоте 3 МГц (причём К1801ВМ1 мог штатно работать на частоте до 5 МГц, а на практике и до 6 МГц), однако сильно тормозился контроллером памяти и дисплея, снижавшим его производительность примерно на 20-30%. В результате максимальная скорость процессора при исполнении программ в ОЗУ была всего 250 тысяч оп/с. Впрочем, 16-разрядная архитектура с удачной системой команд позволяла БК вполне уверенно конкурировать по скорости с типичными 8-разрядными ПК, оснащёнными процессорами с максимальной производительностью 500–1000 тыс. оп/с.

КР1801ВМ1

Рис. 10. КР1801ВМ1 — вариант К1801ВМ1 в более дешёвом пластиковом корпусе и без позолоты на выводах (в серии БК использовались обе разновидности — и в пластиковом, и в металло-керамическом корпусе)

ОЗУ и ПЗУ

Кроме процессора, важное значение имеют и другие параметры компьютера: объём оперативной и постоянной памяти, графические и звуковые возможности, особенности клавиатуры, способность работать с внешними устройствами, возможности расширения. По этим параметрам БК-0010 находится на вполне нормальном среднем уровне, не слишком выделяясь в ту или иную сторону от зарубежных аналогов середины 1980-х. А советских аналогов в то время просто не было. Оперативная память (оперативное запоминающее устройство — ОЗУ) имела размер 32 килобайта (Кбайт) и была поровну поделена между видеопамятью, в которой хранилось изображение, выводимое на экран, и памятью для программ пользователя. То есть для хранения программ и данных выделялось всего около 16 Кбайт — это совсем не много, но и не так уж мало: аналогичная ситуация с памятью, а то и гораздо хуже, была и на многих зарубежных домашних ПК. Даже первые IBM PC в самой простой, но отнюдь не дешёвой (1565 долл. без всякой периферии) комплектации имели всего 16 Кбайт ОЗУ, наряду с недорогими вариантами таких популярных ПК тех лет, как ZX Spectrum, Acorn BBC и других. А известнейший Commodore VIC–20 (предшественник Commodore 64), в начале 1980-х первым среди всех ПК преодолевший планку в 1 млн проданных экземпляров, имел всего 5 (пять!) Кбайт ОЗУ. Кстати, главный американский заочный конкурент БК — TI-99/4A (также имевший 16-разрядный процессор), был укомплектован просто издевательским ОЗУ пользователя — всего-навсего 256 байт! Правда, видеопамять у 99/4А тоже 16 Кбайт. Под постоянную память (ПЗУ) в БК-0010 было отведено 32 Кбайта, из которых использовалось обычно лишь 24 Кбайта, то есть установлено 3 микросхемы по 8 Кбайт и одна панелька оставалась пустой — туда при необходимости можно было воткнуть ПЗУ с программами пользователя. Причём два гнезда для ПЗУ (одно из которых пустое) находились под специальной съёмной крышкой, расположенной прямо на передней панели БК слева от клавиатуры. То есть для замены ПЗУ даже не нужно было разбирать корпус. Забегая вперёд, заметим, что и клавиатура БК-0010 предполагала простую возможность замены обозначений клавиш, т.е. разработчики предусмотрели всё, чтобы пользователь мог легко адаптировать его под свои собственные разные задачи, заменяя ПЗУ и даже меняя обозначения клавиш. Впрочем, конечно, подавляющее большинство владельцев БК использовали стандартные ПЗУ из комплекта ПК и совершенно не испытывали потребности в замене раскладки клавиатуры. К тому же, здесь есть ещё одна «маленькая деталь»: сделать собственные ПЗУ для замены штатных было совсем не просто — микросхемы постоянной памяти КР1801РЕ2, использовавшиеся в БК, программировались только на заводе в процессе изготовления кристалла микросхемы (это были так называемые «масочные ПЗУ»), и «прошить» их самостоятельно, с помощью какого-либо программатора, было нельзя; вместо КР1801РЕ2 можно было использовать аналогичные по структуре ППЗУ (программируемые постоянные ЗУ) К573РФ3 с ультрафиолетовым (УФ) стиранием, но они были очень дефицитны и малодоступны; использовать какие-то более распространённые микросхемы (например, популярные 8-разрядные ППЗУ с УФ-стиранием), теоретически, было вполне возможно, но более сложно из-за специфичности архитектуры КР1801РЕ2 и К573РФ3 (они специально рассчитаны на подключение к 16-разрядной шине МПИ).

БК-0010

Рис. 11. БК-0010: под специальной крышечкой находятся две панельки для ПЗУ, которые теоретически могут быть легко заменены пользователем; здесь же необычный переключатель сброса — вместо кнопки движок с двумя положениями («Стоп» и «Пуск»)

Посмотрим, что находилось в ПЗУ БК-0010. Главная его часть — программа-монитор и драйверы устройств, занимавшие одну 8-Кбайт микросхему КР1801РЕ2. Здесь находились важнейшие драйверы, обеспечивающие ввод с клавиатуры, вывод на экран, работу с магнитофоном и т. д., а также простая программа-монитор, которая использовалась в основном для загрузки и запуска программ в машинных кодах. Вторая микросхема ПЗУ на 8 Кбайт — это тестово-диагностическая программа, позволявшая проверить работоспособность всех устройств БК. Естественно, на нормально работающем компьютере она была просто не нужна и вообще использовалась очень редко, поскольку с надёжностью у этого ПК особых проблем не было. Наконец, третью микросхему занимал интерпретатор языка Фокал (расшифровывается как «формульный калькулятор», а не «фортран-паскаль», как некоторые думали). Наличие в ПЗУ Фокала вместо уже стандартного в то время Бейсика служило одной из главных мишеней для критиков БК-0010. Действительно, программ на Бейсике уже в то время публиковалось огромное количество, а Фокал был известен даже не всем программистам. Однако сам по себе Фокал считался простым и достаточно удобным языком, позволявшим создавать программы любого назначения. Хотя у него имелись некоторые важные отличия от Бейсика, они были направлены на упрощение программирования, так что освоение Фокала выглядело ничуть не более сложным, чем обучение Бейсику. В общем, владельцы БК быстро привыкали к Фокалу, и особых неудобств от его наличия вместо Бейсика, вроде бы, не испытывали. При этом Бейсик тоже можно было использовать, загружая его в оперативную память с магнитофона. Правда, ОЗУ пользователя итак было невелико, так что в этом случае для программ на Бейсике оставались считанные килобайты.

Использование в БК-0010 Фокала вместо Бейсика являлось большой загадкой для всех его владельцев. Однако всё объясняется просто: дело в том, что на момент начала выпуска БК для подобных ПК уже был почти подходящий интерпретатор Бейсика — так называемый Бейсик-ДВК (версия, адаптированная для компьютеров ДВК), но он отличался чрезвычайно низкой скоростью работы и отсутствием поддержки графики. Вряд ли разработчиков БК сильно смутила скорость работы, скорее они просто не смогли уместить эту версию Бейсика, переделанную для БК с добавлением графических и других команд, в 8 Кбайт ПЗУ. В то же время, для PDP-совместимых компьютеров существовала версия интерпретатора Фокала размером около 6 Кбайт, которая была расширена простейшими функциями работы с графикой и магнитофоном, и даже после этого легко поместилась в 8 Кбайт ПЗУ вместе с полными текстами сообщений об ошибках и краткой справкой об управляющих клавишах, командах и функциях Фокала. К тому же программы на Фокале работали примерно на треть быстрее, чем программы на Бейсике ДВК. В этих условиях разработчики БК-0010 приняли в 1983 году самое простое решение — не пытаться создать новый Бейсик размером до 8 Кбайт или отвести под него уже 16 Кбайт, либо как-то ужать существующий Бейсик-ДВК (а он уже был очень упрощённой версией), а взять уже готовый, очень компактный интерпретатор Фокала. Впрочем, разработку нового транслятора Бейсика специально для БК всё же заказали Вильнюсскому госуниверситету, и в 1985 году вышла первая его версия размером 9 Кбайт для загрузки в ОЗУ БК с кассеты, а в 1986 году — 24-килобайтная версия для размещения в ПЗУ. О вильнюсском Бейсике речь также пойдёт несколько ниже.

Графика и звук

Теперь давайте посмотрим на изобразительные возможности БК-0010. Он имеет чисто графический экран с двумя основными разрешениями: 256 строк по 512 точек в строке и 256 строк по 256 точек. Первое поддерживает только 2 цвета для любой точки, второе — 4 цвета, причём эти цвета постоянны — чёрный, красный, зелёный и синий. Белый цвет в цветном режиме не отображается. Программируемой палитры нет. Специального текстового режима с минимальным объёмом видеопамяти нет — как и на многих других ПК, символы выводятся в графическом режиме в виде маленьких картинок (а это значит, что есть возможность без проблем показывать на экране любые символы любых алфавитов). На экране отображается 24 строки по 32 или 64 символа в строке, вверху экрана есть также служебная строка, на которой выводятся текущие режимы работы и подсказка о назначении «функциональных» клавиш. Имеется достаточно редкая для того времени функция аппаратного плавного вертикального скроллинга — прокрутки экрана.

Вообще, БК имеет два видеовыхода — цветной RGB для подключения цветного монитора или телевизора (ТВ) и чёрно-белый композитный — для подключения чёрно-белого монитора или ТВ. Правда, во многих БК выход RGB на заводе почему-то не устанавливался, и его приходилось допаивать уже самому владельцу ПК. Высокое разрешение 512 × 256 нормально поддерживалось только чёрно-белым выходом, а при подключении через цветной изображение на экране в таком разрешении приобретало странный вид с непонятными цветными контурами и точками. При этом разобрать надписи можно, но нормальной такую работу не назовёшь. Владельцам цветных телевизоров приходилось подключать БК двумя кабелями — один от чёрно-белого выхода БК к композитному входу телевизора, а другой — от цветного выхода БК к RGB-входу ТВ, а в процессе работы переключать входы в зависимости от разрешения, используемого в программе. Впрочем, большинство программ, особенно игр, задействовало только цветной режим с разрешением 256 × 256, и частое переключение не требовалось. К тому же при работе в Фокале, Бейсике или системном мониторе можно было с клавиатуры быстро переключать разрешение экрана, приводя его к нужному виду.

БК-0010

Рис. 12. БК-0010: разъемы питания, параллельного интерфейса, выхода на ч/б телевизор или монитор, шины МПИ и магнитофона; выход RGB (для цветного изображения) отсутствует, как и у многих других экземпляров БК (разъем и несколько других недостающих деталей можно было впаять на плату самостоятельно, также надо было проделать и недостающее отверстие в корпусе для него)

Кстати, подключить БК, как и почти любые другие отечественные ПК, к цветному телевизору в цветном режиме было не так-то просто: большинство телевизоров не имели никакого RGB-входа, хотя на многих моделях его установка была предусмотрена. Это было вызвано тем, что до массового появления домашних ПК к видеовходам просто-напросто нечего было подключать. А те устройства, вроде видеомагнитофонов или игровых телеприставок, которые работали в паре с телевизором, почти всегда имели самый обычный антенный выход, подключавшийся соответственно к антенному входу любого ТВ. В общем, владельцам БК либо приходилось делать несложную доработку своих телевизоров либо лицезреть даже на цветном телевизоре только чёрно-белое изображение.

Нужно заметить, что на БК был ещё так называемый режим расширенной памяти (РП), в который можно было быстро переключиться с клавиатуры. В этом режиме для вывода изображения отводилась только верхняя четверть экрана, зато ОЗУ пользователя расширялось до 28 Кбайт. То есть была возможность при необходимости сильно увеличить длину программ, не требующих задействования всего экрана — например, для каких-то сложных расчётов или баз данных и т. д. Интересно, что некоторые программы вроде копировщиков файлов использовали часть экранной памяти для хранения программ и данных и без перехода в режим РП — тогда на экране появлялись области «шума» из случайных точек случайного цвета.

Звуковые способности у БК-0010 самые обычные — никакого специального звукогенератора, звук воспроизводится чисто программно изменением бита в регистре (точнее, 2-х битов). Такое решение было очень характерно для многих советских и зарубежных ПК того времени. Встречались даже компьютеры совсем без звука — например, «Роботрон-1715» (ГДР). Конечно, звучание такого синтезатора, как правило, было совсем простым — обычно одноголосный звук с прямоугольной волновой формой одинаковой амплитуды и всё. Хотя при более хитрых алгоритмах вывода звука на БК можно было синтезировать и многоголосную музыку и шумовые эффекты и даже имитировать изменение громкости. Кроме того, использование специального встроенного аппаратного таймера БК позволяло также получить интересные звуковые эффекты. Однако в моменты воспроизведения звука процессор БК, как правило, был полностью загружен, поэтому вывод звука в процессе игры сильно тормозил работу, а о постоянном звучании музыки в игре речи обычно вообще не шло. В некоторых играх музыка всё же звучала, но выводилась она короткими фрагментами (в промежутках между которыми процессор успевал выполнять другие задачи вроде перемещения объектов на экране) или использовались более сложные алгоритмы, задействующие встроенный таймер и т.д.

Клавиатура

Ещё один интересный момент — клавиатура БК-0010. Самый первый вариант БК снабжался так называемой мембранной клавиатурой, представлявшей собой совершенно ровную поверхность с отпечатанными обозначениями клавиш. Под рисунком каждой клавиши в некотором углублении находятся контакты, которые замыкаются довольно сильным нажатием пальца. Эта конструкция, как и на других ПК, использовавших подобный вариант клавиатуры (например, Atari 400), сильно отличалась от привычных объёмных клавиш типа пишущей машинки и вызывала много нареканий. В результате производители БК через некоторое время заменили мембранную клавиатуру на другой вариант, внешне похожий, но внутри заметно отличный: вместо мембранной плёночной клавиатуры были установлены нормальные кнопочные переключатели с невысокими пластиковыми площадками-толкателями, а сверху всё это было накрыто бумажным листом с цветными обозначениями клавиш и прозрачной защитной плёнкой. Работать с такой клавиатурой было намного приятнее, хотя опять же привычной тактильной связи, характерной для объёмных клавиш, здесь не было — поверхность клавиатуры была совершенно гладкая, да и ход клавиш был совсем небольшой. Тем не менее, этот вариант оказался достаточно удачным и надёжным. Общее количество клавиш — 86 штук, что очень даже немало. К примеру, у знаменитого ZX Spectrum их было всего 40. При этом у БК клавиши разного назначения выделены разными цветами.

БК-0010

Рис. 13. Чрезвычайно функциональная клавиатура БК-0010: 86 кнопок разного назначения, множество клавиш для редактирования текста и выбора режимов, на буквенных клавишах нанесены также символы псевдографики

Бросается в глаза не только весёленькая расцветка клавиатуры, но и большое количество непривычных и загадочных клавиш с русскими обозначениями: ГРАФ, ШАГ, ПОВТ, БЛОК РЕД, ИНД СУ, ЗАП, УСТ ТАБ, СБР ТАБ, ВС, ГТ и т. д. А ведь все они выполняли какие-то важные функции, иначе зачем было их выносить на клавиатуру в качестве отдельных кнопок. Например, кнопка ГРАФ переводит ПК в режим непосредственного рисования на экране, когда вместо привычного текстового появляется «графический» курсор, который можно перемещать с помощью стрелок, а кнопками ЗАП и СТИР включать режимы записи или стирания, чтобы курсор оставлял след (можно выбрать нужный цвет) или стирал ранее нарисованное. То есть разработчики БК предусмотрели даже простейший графический редактор, встроенный в ПЗУ, и этот «редактор», несмотря на примитивность, оказался очень полезен — он активно использовался для ввода в ПК даже весьма сложной графики (обычно она сначала рисовалась на миллиметровке или школьной тетради в клетку, а перевести её по точкам на экран было уже совсем просто, причём необходимости использовать более сложный графический редактор часто просто не было). Кнопки УСТ ТАБ и СБР ТАБ позволяют устанавливать или удалять на экране произвольные позиции табуляции (тоже весьма полезная функция), ГТ перемещает курсор на 8 позиций вправо, ШАГ позволяет выполнять программу на Фокале или Бейсике пошагово (очень удобно при отладке программ), ИНД СУ включает отображение на экране управляющих символов (аналог кнопки “Пи” в современном MS Word). Кнопка ПОВТ служит для повтора последней нажатой клавиши (автоповтора при долгом удержании кнопки у БК в стандартном режиме не было). Кстати, особенностью контроллера клавиатуры БК было то, что он не мог отслеживать несколько одновременно нажатых кнопок — код клавиши выдавался только один, что несколько затрудняло управление в играх. Впрочем, при использовании нестандартных приёмов можно было определить и несколько нажатых клавиш. К тому же почти во всех играх был предусмотрен выбор клавиш самим пользователем. А ещё в играх здорово помогал джойстик, который в этом случае, конечно, был намного удобнее клавиатуры.

Вырезка из обзора Советские домашние компьютеры 1980-х: краткая история. Часть I.
22 марта 2016