О БК-шке.

  БК (бытовой компьютер) был разработан в начале 80-х годов прошлого века в НПО "Научный Центр" в Зеленограде. Производился заводами "Экситон" (Павловский Посад), "Мезон" (Кишинев), "Мион" (Тбилиси), "Нуклон" (Шауляй), "Бином" (Орджоникидзе). В продаже БК-0010 появились в январе 1985 года. А в 1992 году (по другим данным в 1993) выпуск БК, по понятным причинам, был прекращён. Всего произведено более 162 тыс. БК-0010/0011/0011М.
  Выпускалась БК-0010 в 2-х вариантах: обычном и школьном (БК-0010Ш). Школьный вариант отличался наличием блока ИРПС для подключения к сети БК-ДВК. Затем была выпущена БК-0010.01 (тоже самое что БК-0010 только с улучшенной клавиатурой), затем БК-0011 и наконец - БК-0011М (она отличалась от БК-0011 лучшей совместимостью с БК-0010).
  Есть предположение, что нумерация БК была в двоичной системе исчисления. Если это так, то, видимо должен был быть ещё БК-0001, но никаких достоверных сведений мне о нём не известно. Ходили слухи, что, вроде бы, ещё существовал БК-0100, который был гораздо более продвинутым чем БК-0011М. Но о нём тоже известно очень мало. Не факт, что он вообще существовал. Возможно, это был всего лишь некий проект. Какие-либо конкретные сведения о БК-0100 мне удалось найти только вот здесь.

Технические характеристики БК0010(.01).

  • Процессор: К1801ВМ1. Однокристальный, 16-разрядный, совместим по системе команд с LSI-11/03 из семейства PDP-11, за одним исключением: отсутствуют команды умножения и деления. Работает он на тактовой частоте 3 МГц.
  • Оперативная память (ОЗУ): Общая ёмкость 32 КБ. Занимает область адресного пространства с 0 по 77777 (нумерация адресов здесь далее в 8-й системе исчисления). Первые 512 байт отведены под стек и системные переменные, следущие далее 15,5 КБ отведено под программы и данные, оставшиеся 16 КБ - под видеопамять. Интересной особенностью видеопамяти было то, что она отличалась от обычной памяти только тем, что её содержимое выводилось на монитор. В результате там можно было хранить программы и данные. В некоторых случаях, когда нужно было оставить свободной обычную память, так и делали. Пример - отладчик MIRAGE. При нажатии определённой комбинации клавиш (АР2+СБР) или выдаче специальной команды (код 214) можно было увеличить объём оперативной памяти для программ с 15,5 КБ до 27,5 КБ за счёт уменьшения видеопамяти до 4 КБ. При этом на экране отображалось всего 4 строки текста.
  • Постоянная память (ПЗУ): Общая ёмкость 32 КБ. Занимает область адресного пространства с 100000 по 177777. Из них 8 КБ (адреса 100000 - 117777) отведено под драйверы клавиатуры, дисплея и магнитофона и так называемый "пусковой монитор" (примитивная операционная система с командной строкой). Адреса 120000 - 137777 занимает съёмное ПЗУ, в котором может быть размещена управляющая система (например интерпретатор языка "Фокал" или "Бейсик"). Адреса 140000 - 157777 отведены под съёмное ПЗУ, в котором может быть размещена часть управляющей системы либо может использоваться по усмотрению пользователя. Адреса 160000 - 177577 занимает резервное ПЗУ, область адресов 177600 - 177777 отведена под системные регистры.
  • Клавиатура: На БК0010 - 92 клавиши, "пленочная клавиатура", на БК-0010.01 - 74 клавиши, "полноходовая" клавиатура. Контроллер - К1801ВП1-014. К сожалению, данный контроллер не воспринимает одновременное нажатие нескольких клавиш. Поэтому в динамические игры с помощью клавиатуры не очень то поиграешь. Для этого необходим джойстик или keypad, как сделал себе я по совету А. Фионова (FIOSoft). Так что призываю всех авторов эмуляторов БК делать эмуляцию джойстика. В отличие от PC (компьютеры на базе процессоров семейства x86) джойстик на БК не роскош, а необходимая вещь для игр.
  • Устройство хранения данных: В качестве внешнего запоминающего устройства в стандартной конфигурации БК служил служил бытовой кассетный магнитофон. Надо сказать, что загрузка файла с магнитофона это нечто. Во-первых, дело это долгое, но это ещё пол беды. Главная проблема в том, что если запись не идеальна, то файл может либо вообще не загрузиться, либо загрузиться со 2-й, 3-й попытки.
  • Устройство отображения информации: В качестве устройства отображения информации на БК использовался бытовой телевизор с видеовходом, или реже специальный монитор. Видеоадаптер БК (К1801ВП1-037) имел только графический режим, причём один (если не считать режима с расширенной памятью). Хотя графический режим был один способов вывода изображения на экран было два. Дело в том, что БК имеет два разъёма для подключения к телевизору (монитору): чёрно-белый и цветной. Способ вывода на экран определяется только тем, к какому из разъёмов подключен телевизор (монитор). При первом способе каждый бит ОЗУ видеопамяти кодирует ровно одну точку на экране. Соответственно, точка имеет два состояния: чёрное и белое. При втором способе та же самая информация в видеопамяти имеет иное значение: каждая точка кодируется двумя соседними битами. Соответственно, возможно 4 цвета: чёрный, красный, зелёный, синий. При чёрно-белом способе вывода разрешение экрана равно 512 x 256 точек, при цветном - 256 x 256.
    Текст также может выводиться двумя способами. Один способ оптимизирован под монохромный режим. В этом режиме 64 символа в строке, информация о цвете символов не учитывается. Второй способ оптимизирован под цветной режим. В этом режиме 32 символа в строке, и учитывается информация о цвете символов.
  • Порты: Параллельный 16-ти разрядный программируемый порт ввода-вывода, который можно использовать для управления периферийными устройствами ("параллельный порт"). Выводился на разъём "УП".
    Устройство последовательного обмена, которое обеспечивает обмен по протоколу ИРПС в диапазоне скоростей от 50 до 9600 бод ("последователный порт"). При минимальной доработке компьютера выводился на тот же разъём "УП".
  • Разъёмы расширения: Системная шина БК частично реализует интерфейс МПИ, который выводится наружу через одноимённый разъём ("МПИ"). Это аналог слота расширения на материнских платах современных ПК. Очень полезная вещь этот МПИ. Без него из БК-шки ничего путного бы не вышло.
  • Устройства для воспроизведения звука: Встроенный пьезодинамик. Тот самый, который, при нажатии на клавишу в мониторе издавал специфический звук (что-то вроде "квик"). Под этот динамик, кстати, несмотря на его убогость, впоследствии было написано много музыки и даже синтезатор речи был!
  • Корпус: Отдельного корпуса не было. БК располагался в корпусе клавиатуры. Примерно так как это делается в современных ноутбуках. Впоследствие в этот же корпус народные умельцы умудрялись помещать 3-х дюймовый дисковод, или винчестер.
  • Блок питания: Внешний трансформаторный.
  Как видите, характеристики, мягко говоря, не супер даже для 1985 года. Если есть в этом сомнения, можно сравнить их, например, с характеристиками IBM PC/AT, который был выпущен в 1984, т.е. на год раньше БК. Хотя, по сравнению, например, с весьма популярным в те годы ZX Spectrum-ом БК0010 смотрелся вполне неплохо. Более того, есть мнение, что БК0010 был первым в мире полностью 16-ти разрядным домашним компьютером. Но тут возникает вопрос - что такое "домашний компьютер"? И почему тот же IBM PC/AT не может им считаться? Только из-за дикой цены?
  Ещё одной интересной особенностью БК было то, что ПО для него первоначально практически отсутствовало. Насколько я знаю, был только "Фокал", "Бейсик", "монитор" и набор тестов из блока МСТД (мониторная система тестовой диагностики) и вроде бы ещё несколько игр было. Вот такая безрадостная картина. И стоила БК-шка тогда не так уж мало (650 рублей ~ 4-х средних зарплат), но по сравнению с PC это были копейки, (XT-шка стоила в десятки (!) раз дороже) даже с учётом того, что ни монитора ни магнитофона к БК-шке не прилагалось.
  Главным недостатком БК0010 в стандартной конфигурации, на мой взгляд, была невозможность подключения к нему дисковода. Работа с магнитофоном в качестве устройства хранения данных - это, имхо, занятие для крутых мазохистов. Но тем не менее находились энтузиасты, которые и в магнитофонные времена умудрились написать довольно много софта для БК. Причём не только на фокале или бейсике, но и в машинных кодах. И это при том, что средства программирования в кодах напрочь отсутствовали. В первые годы существования БК даже отладчика не было, насколько я знаю. Но тем не менее программы как-то писали. Как это делалось для меня загадка. Возможно, для написания программ в кодах в те времена использовались какие-либо другие компьютеры с той же системой команд процессора, что и у К1801ВМ1 ("ЭЛЕКТРОНИКА-60", "ДВК-2", "ЭЛЕКТРОНИКА 100/25", "СМ-3", "СМ-4").   Кроме уже упомянутых фокала, бейсика, монитора и набора тестов мне не известны программы для БК, написанные до 1988 года (правда, во многих программах не стоит дата написания, так что может быть таких программ, на самом деле, немало). Что характерно, как раз в 1988 году появился вышеупомянутый отладчик MIRAGE. Возможно он и был первым средством программирования в кодах для БК. Как это не удивительно, но писали некоторые особо продвинутые люди программы для БК в отладчиках, даже после появления систем программирования на ассемблере. И считали что так проще. Но это, конечно, сильно на любителя. Вообще, на мой взгляд, программирование на низком уровне (а иначе на БК ничего путного не написать), проще чем, например, на PC. Память была линейна (никаких сегментов), шесть регистров общего назначения (R0-R5) (а на PC только 4, по крайней мере на 16 битных PC), которые были, в отличие от PC, абсолютно равноправны. Кроме того очень прост в программировании был видеоадаптер БК.
  В качестве примера, ниже даны подпрограммы рисования точки для PC (слева) в режиме CGA 320x200x4 (наиболее близкий режим к цветному БК-шному) и БК (справа).

  коорд. X в DX   коорд. X в R1
  коорд. Y в CX   коорд. Y в R2
  цвет. в color   цвет. в R3
       
SET_DOT PROC PSET: ASL R2
  mov ax,0B800H;  ASL R2
  mov es,ax;  ASL R2
  test cl,1;  ASL R2
  jz even_row;  ASL R2
  mov bx,2000h;  ASL R2
  jmp short cont;  ADD #40000,R2
  mov bx,0;   MOV R1,R0
  shr cx,1;   ASR R0
even_row: mov al,80;   ASR R0
cont: mul cl;   ADD R0,R2
  mov cx,dx;   MOV #3,R0
  not cl;   BIC #177774,R3
  and cl,00000011b;   BIC #177774,R1
  shl cl,1;   BEQ 2PSET
  shr dx,1; 1PSET: ASL R0
  shr dx,1;   ASL R0
  add ax,dx;   ASL R3
  add bx,ax;   ASL R3
  mov ah,es:[bx];   SOB R1,1PSET
  ror ah,cl; 2PSET: BICB R0,(R2)
  and ah,11111100b;   BISB R3,(R2)
  mov al,color;   RET
  or ah,al;    
  rol ah,cl;    
  mov es:[bx],ah;    
  ret    
SET_DOT ENDP    

  БК-шная программа, как видите, малость покороче (можно сделать ещё короче - ASL R2 выполнять в цикле, но так медленнее), к тому же в ней можно обойтись без жутко тормозной команды mul (её, правда, как уже было сказано, у К1801ВМ1 и нету). И все параметры можно через регистры передать, а на PC для передачи кода цвета регистра не хватает.
  В 1990 году наконец стал производиться контроллер дисковода для БК. Вот такие контроллеры дисковода для БК0010 с дополнительной памятью 16Кб продавались в московской фирме "Альтек". К контроллерам этим, кстати, прилагалась дискета с операционной системой ANDOS. В этом, вероятно, заключался секрет невероятной для БК коммерческой успешности этой ОС (в блоге автора ANDOS-а А.Надёжина сказано, что было продано ~5000 копий этой системы).
  БК0010 с дисководом это уже нечто гораздо более "юзабельное" по сравнению с стандартной конфигурацией. Особенно если не БК0010, а БК0010.01. А после того как появились системы программирования на ассемблере (первая из известных мне таких систем - микроассемблер В.С. Коренкова) скорость разработки софта для БК-шки резко выросла. Одних только операционных систем было написано более десятка! Правда, использовались народом, в основном, две из них: ANDOS и MKDOS. Были написаны самые разнообразные системные программы (редакторы, вьюэры, оболочки, копировщики, конвертеры, языки программирования, отладчики и т.д.). Игр тоже писалось немало, правда качество многих из них оставляло желать лучшего. Но были и очень неплохие игры, например, игры В. Савина и Б.Бортника.
  В 1989 году был начат выпуск БК0011, а затем БК0011М. От БК0010 эта машина отличалась тем что:
  • Тактовая частота процессора была увеличена до 4 МГц.
  • Оперативная память была увеличена до 128 кБ. Память БК0011/11М имеет постраничную организацию. Переключение страниц осуществляется программно с использованием системного регистра (177716). Каждая страница ОЗУ может быть одновременно подключена к двум окнам виртуального адресного пространства, а статическая страница (адреса 0 - 40000) - даже к 3-м.
  • Был улучшен видеоадаптер. Хотя число цветов и разрешение экрана осталось тем же что и на БК0010, появилась возможность включать одну из 16-ти экранных палитр. Управление палитрами осуществлялось с помощью соответствующего регистра (177662). Кроме этого стало можно было поочерёдно отображать на экран одну из двух страниц памяти (буфер экрана). Управление отображением буферов экрана также осуществлялось с помощью регистра 177662. В результате появилась возможность "скрытого" вывода на экран, т.е. формирование изображения из программы пользователя в одном буфере в то время, как на экран выводится другой. После завершения "скрытого" вывода картинки она могла быть практически мгновенно отображена на экране монитора с помощью переключения буферов экрана. Такая возможность очень полезна для создания игр и демонстрационных программ.
  • Контроллер дисковода стал входить в стандартную поставку БК.
  Постепенно стал появлятся софт под БК0011М, обладавший большими возможностями по сравнению с софтом для БК0010. Правда, к сожалению, было сделано такого софта не слишком много. Вот некоторые наиболее выдающиеся системные программы: мощный текстовый редактор Vortex (иногда его даже называли издательской системой), графические редакторы TechnoArt и Vision, СУБД Basis, музыкальный редактор Rockmon, наконец ОС CSIDOS, созданная специально для БК0011М. Были написаны и неплохие игры: Cybernoid, Tower (полный аналог одноименной игры на PC), Warlords, Knight, Prince (эти три игры тоже аналоги PC-шных, правда отнюдь не полные), Magician (первый "quest" для БК), Magician2 (его продолжение), Monkey Island (тоже "quest"), Chess Club (шахматы), UFO (аналог одноимённой игры с PC), Revolt, Joe Blade (полный аналог игры с ZX Spectrum), Inside Outing, Miami Cobra и некоторые другие. Кроме того было написано довольно много весьма неплохих демонстрационных программ: Shock, Lyra, Insult, Cat, Ray dreams, Assorty и многие другие.
  Для БК было создано и подключено множество всяческих дополнительных устройств. Часть из них были стандартными заводским: МСТД (мониторная система тестовой диагностики), КНГМД (контроллер дисковода), ИРПС (блок последовательного канала), КРМП (подключение дисковода и локальной сети), КЛС (контроллер локальной сети), "Менестрель" (музыкальная приставка), блок КМ (коммутаций), блок КПУ с интерфейсом ИРПР, мышь (устройство ввода координатное) УВК-01 "Марсианка", манипулятор Игровой "Электроника". Другая часть устройств подключалась силами небольших фирм и отдельных энтузиастов: контроллеры дисковода и винчестера (Альтек, АльтПро, "самарский" КНЖМД, "Опток", "Альфа ДОС"), covox (моно и стерео), музыкальный сопроцессор AY-3-8910, модем, джойстики, keypad-ы, световой пистолет, программаторы ПЗУ. Подробно тема устройств подключавшихся к БК обсуждается здесь.
  Кроме вышеупомянутых дополнительных устройств, было сделано несколько несложных полезных доработок БК. Это, во-первых, кнопка сброса, нажатие на которую вызывало перезагрузку компьютера. Данная кнопочка была незаменимым средством борьбы с глючными и не имеющими выхода программами. Во-вторых, переключатель паузы, который аппаратно приостанавливал выполнение программы процессором. Это полезная вещь для игр, не не имеющих встроенной функции паузы (а таких на БК было большинство). Правда, возврат в игру после такой паузы не всегда происходил корректно. В третьих, переключатель тактовой частоты процессора ("турбо"). С его помощью можно было переключать частоту со стандартной на повышенную (до 6МГц). Правда, не все экземпляры процессоров надежно работали на частоте 6 МГц. Тут уж как повезёт. И, наконец, выключатель звука, либо плавный регулятор громкости встроенного динамика.
  Ещё, следует отметить, что БК-шка была очень надёжной машиной. Она могла работать сутками не перегреваясь и не зависая. В связи с этим она применялась в качестве контроллера различных устройств. Более подробно об этом можно прочитать здесь. Возможно, кое-где БК и до сих пор используется в таком качестве. По крайней мере один пример такого использования БК есть.   Но всё выше сказанное никак не могло спасти БК в конкуренции с PC, так как в основе своей БК не менялся со времён начала выпуска БК0011М, а PC, напротив, бурно развивался. В результате к концу 90-х годов прошлого века характеристики БК по сравнению даже с PC на основе 486-го процессора (не говоря уж о пентиумах) выглядели просто смехотворными. А главное конкурентное преимущество БК - низкая цена в связи с существенным удешевлением PC также постепенно сошло на нет. В результате в конце 90-х - начале 2000-х годов (точную дату назвать сложно) БК-шка "приказала долго жить".
  Так чем же был замечателен БК? Фанатская это была машина. Вот PC, например, машина коммерческая, на ней делали и делают "бабки" (большие такие "бабки"). На БК, конечно, тоже народ что-то зарабатывал, но это несопоставимо меньше. Олигархом уж точно на этом никто не стал. БК-шка во многом была сделана пользователями (особенно в части софта). Она породила даже некую, я бы сказал, субкультуру. Существовали клубы БК, например, московский клуб БК на Свиблово. Проводились демо-пати "БК-mania" (правда, всего 2 раза - в 1996 и 1997 годах). С 1993 по 1996 году выпускался журнал "Персональный компьютер БК".
  БК-шка до сих пор не совсем ещё забыта. Написано более десятка эмуляторов БК. О некоторых из них можно почитать тут. Более того, существует проект возрождения БК! Суть проекта состоит в разработке на базе ПЛИС (программируемая логическая интегральная схема) компьютера "БК-0012 Pulsar". Я, конечно, желаю этому проекту успеха, хотя и не очень верю в него. Точнее сказать, нет сомнений что сделать такую вещь можно. Более того, как пишут здесь непринципиально модернизированная версия БК-0011М - "БК-0011М-01" уже сделана. Но проект "БК-0012 Pulsar", насколько я понял, коммерческий, а вот с этим, скорее всего, будут проблемы. Хотя, возможно, я тут не совсем прав. Потому как, судя по тому, что пишут на этом форуме на "БК-0011М-01", как ни странно, существует отличный от нуля спрос. Так что, вполне вероятно, что и на "БК-0012 Pulsar" будет некоторый спрос. Желающих покупать бесполезные вещи оказалось несколько больше, чем я думал.

Вверх