воскресенье, 14 января 2024 г.

Немного о компьютерах БК-0010/0011(М)

     Когда я вернулся из армии домой, когда настал 1989 год, мне жутко хотелось иметь свой собственный НАСТОЯЩИЙ компьютер! Микрокалькуляторы, даже программируемые меня уже не удовлетворяли (ага, калькулятор МК-52, почти аналогичный по техническим возможностям моему домашнему МК-61 тогда летал в космос на космических кораблях "Союз", в качестве резервного бортового вычислительного комплекса, а меня он не удовлетворял... бывает). Компьютер нужен был "настоящий", слишком долго я в армии по нему тосковал.

Программируемый калькулятор МК-61, у меня он до сих пор есть (фото из сети)

    Настоящий компьютер

    А какой тогда был выбор "настоящих" домашних компьютеров? Клоны IBM PC уже были, и были они оооочень настоящими, но стоили чуть ли не как пяти-комнатная квартира в центре Москвы! Ну ладно, на счёт квартир в Москве точно не знаю, может и преувеличиваю, но две новеньких Лады-09 за одну IBM PC XT точно могли выторговать. Явно не мой уровень.
До массового появления в наших широтах разномастных кооперативных и самодельных клонов ZX-Spectrum оставалась ещё минимум пара лет. Всякие разные вариации Apple, Mac, Atari, Commodore и т.п. до нас вообще не доходили (хотя Apple II+ я у своего одноклассника еще в середине 1980-х видел, но мне лично такое не светило). Был вариант самостоятельно паять клоны ранних машинок на базе схем Радио-86, Микроша-80 на процессорах i8080/к580вм80, но это точно не для меня - во первых слишком технически сложно (и много комплектующих требуется, которых у нас не найдёшь), а во-вторых всё равно на выходе, после всех чудовищных мучений, какая-то совсем дохлая (по меркам конца 1980-х) фигня получается... Что же мне остаётся!?
И тут внезапно, я увидел ЕЁ!!! Прямо в комиссионном магазине! На полочке среди б/у пылесосов и б/у магнитофонов. И ценник выставлен в точности равный официальной (о, я читал рекламу в журналах) государственной цене - 600 рублей. Чудовищная удача! Как лотерейный билет на миллион! 
Домашний (бытовой) компьютер БК-0010 (фото из сети)

    Этот шанс я не должен был упускать. Ценник в 600 рублей был конечно слишком велик для меня, пришлось срочно просить помощь родителей, но в целом, для семейного бюджета вопрос был решаем. Единственный, случайно всплывший в комиссионке экземпляр, я успел купить. Машина оказалась полностью исправной и даже практически в полной заводской комплектации. Книжки с документацией были на месте (гарантия только утеряна, но она ни разу и не понадобилась). Только вместо утраченной магнитофонной кассеты с дополнительными программами предыдущие владельцы (как честные люди!) вложили кассету с записями какой-то попсовой музыки. Впрочем, позже я выяснил, что на заводской кассете всё равно никаких полезных программ не было.
    Теперь расскажу коротко о технических особенностях БК-0010, поскольку раньше я про них вроде не говорил. Это был действительно НАСТОЯЩИЙ компьютер, с очень приличными на конец 1980-х характеристиками, с перспективами на модернизацию, хотя и не без странностей и недостатков. Архитектура компьютера 16-разрядная, совместимая с очень распространённой и удачной архитектурой компьютеров DEC PDP-11. Это безусловное достоинство! Второе безусловное достоинство - обалденная, запредельная, по советским меркам, НАДЁЖНОСТЬ. Машина (ни ОДНА из множества моих БК) на моей памяти вообще не ломалась, не требовала какого-то нештатного вмешательства в свои внутренности. Ещё была весьма неплохая по тем временам графика, во всяком случае в монохромном (ч/б) режиме. С цветной графикой дела обстояли хуже, хотя, при желании, и цвет можно было использовать, был бы цветной телевизор.

Явные недостатки:
- Оперативная память, чёрт возьми!!! Компьютер БК-0010 изначально мог адресоваться к 64 кб памяти. Это скромно, но пока ещё не так уж и мало. Следующим ходом разработчики оттяпали 32 кб адресов под Постоянное Запоминающее Устройство (ПЗУ), которое программируется только в заводских условиях. Предполагалось, вероятно, что основная часть программ будет писаться на государственном уровне, и сразу записываться на заводе-производителе прямо в ПЗУ. А остальным "негосударственным" программистам хватит и оставшихся 32 кб памяти. Но ведь и её не было! От оставшихся 32 кб ровно половину оттяпали под буфер растрового изображения на экране. Если программист что-то пытался записать в эту область памяти, на экране монитора отображалось хаотическое множество точек. Ну, или не совсем хаотическое множество, если программист в эту память сознательно какую-то красивую картинку заливал. И наоборот, при попытке вывести на экран какую-нибудь надпись, или рисунок, все предыдущие данные в затронутой области памяти полностью стирались. В любом случае, 16 кб экранной памяти использовать под программный код и данные произвольным образом не получалось. Еще 0.5 кб памяти отобрали на системные переменные. Итого программистам БК-0010 разработчики щедрой рукой отсыпали аж 15.5 кб оперативной памяти. Жрите, мелкопузики, не подавитесь! А вот 15.5 кб памяти - вот это уже правда очень и даже ОЧЕНЬ МАЛО!!! 
- Второй по важности недостаток БК-0010 - это его необычная плёночная клавиатура, хорошо видная на фото выше. Нет, изначально идея вместо сложных и дорогих кнопок использовать дешевые пузырьки воздуха между двумя слоями полиэтилена, при нажатии пальцем схлопывающиеся и замыкающие контакты, а поверх этого - сменный листок бумаги с текстом надписей над кнопками, это вроде же хорошая идея? Вроде, ты просто поменял бумажку с рисуночками кнопок, и опа-ля-ля - у тебя уже есть новая раскладка клавиатуры, фокус-покус! Но не прокатило. Пленочные кнопки оказались крайне неудобными, нетактильными, затрудняющими слепой набор символов, а главное - с жутким дребезгом. Нажимая на очередную кнопку пальцем, никогда нельзя было заранее предугадать, сработает ли эта кнопка один раз, ноль раз, два раза или шесть раз. Набор текста на такой клавиатуре был реально МУЧИТЕЛЬНЫМ. Хотя изначальная идея - безусловно хороша.
- Третий, на мой взгляд, крупный недостаток БК-0010 - предлагаемый изначально вшитым в ПЗУ (т.е. в "заводскую" поставку компьютера) язык "высокого уровня" ФОКАЛ. В 1980-е годы было повсеместно принято, что в каждый персональный/домашний/бытовой компьютер, должен быть встроен какой-нибудь само-запускающийся язык ВысокогоУровня, чтобы написав на нём фразу типа "? 2 + 2" и получив ответ "4",  каждый дурак Д`Артаньян смог бы себя почувствовать крутым компьютерным хакером. Но в большинстве западных компьютеров таким языком высокого уровня "для Д`Артаньянов" был всё-таки BASIC, причём в диалектах языка постепенно (но отчётливо) захватывала монополию компания Microsoft. А при чём здесь ФОКАЛ? А ни при чём! Он не похож ни на один из Бейсиков, он жутчайше тормозной, он ни с кем и ни с чем не совместим. Разве что размер интерпретатора у ФОКАЛа маленький, так у некоторых Бэйсиков он аналогичный? На практике ФОКАЛ БК-0010 оказался почти абсолютно неприменим. Считаю - деньги на ветер!
- Четвёртая и самая главная, на мой взгляд, проблема БК-0010 - полное отсутствие технической поддержки со стороны производителя. Это стандартная проблема производства СССР. Производим хороший и современный компьютер, но к нему нет ни единой (за исключением откровенной тупизны) полезной программы, и ни единого практически нужного периферийного устройства. Впрочем, программы позже (через 4-6 лет) может быть напишут частные пользователи-энтузиасты. Правда, тогда эта вся ерунда уже сильно устареет, но потомки какую-нибудь отмазку нам придумают. А вот периферийную аппаратуру мы сами с усами, мы сами её через лет 10-15 тоже выпустим. Правда, к тому времени она тоже устареет, ну так и мы же уже тогда на пенсии будем, нам будет уже всё равно, не так ли?
    Одним словом, компьютер БК-0010 представлял собой крайне причудливую смесь из отличных, надёжных, проверенных технологий, весьма низкой цены (правда, при наличии возрастающего дефицита), огромной перспективы на совершенствование, плюс кучка совершенно бредовых проектных наработок и полностью тупо отсутствующей технической поддержкой, ладно бы ещё только в части железа, но ведь и поддержка в программах абсолютно отсутствовала, хотя, казалось бы, архитектура PDP-11 исхожена программистами вдоль и поперёк, куда бы уж, казалось, проще? А вот, оказывается, есть нюансы....

    В коробке компьютера шёл только "системный блок" (толстенькая клавиатура с электронной начинкой) компьютера с отдельным блоком питания, необходимыми модулями памяти и проводами. Для получения работоспособной машины, БК-0010 нужно было самостоятельно подключить к домашнему телевизору и к кассетному магнитофону. Процесс подключения магнитофона, чтобы сохранять/загружать собственные программы и данные на магнитофонные кассеты, был крайне прост - требовалось лишь воткнуть имеющийся заводской кабель в стандартный разъём магнитофона. Если всё исправно - работало сразу "из коробки". У меня дело осложнялось тем, что единственный в квартире магнитофон стационарно стоял в гостиной комнате в виде домашней радиолы. Использовать его оказалось крайне неудобным.
    Сначала попробовал использовать старую "костровую-походную" магнитолу. Не получилось, качество лентопротяжки после туристических походов стабильно грузить с ленты программы не позволило. Пришлось опять обращаться к родителям за деньгами. Купили в итоге самый-самый типовой и дешевый на тот момент переносной магнитофон "Электроника-302". Это помогло. Вопрос с хранением программ на магнитофонных кассетах на некоторое время был полностью снят.

    Подключение мониторов

    Подключение БК-0010 к телевизору оказалось несколько более сложным. В документации компьютера писали, что нужно элементарно кабель видеовыхода БК подключить к разъёму "композитного видеосигнала" (название воспроизвёл по памяти, если ошибся - поправьте) телевизора. Всего и делов-то! Вот только ни на одном советском телевизоре я ни разу в жизни не сумел обнаружить тот самый разъём "композитного видеосигнала". Изучение доп.литературы и популярных журналов дало некоторые подсказки - БК всё-таки с 1984 года разрабатывались, за 5 лет народ опыт поднакопил. 
    Оказалось, что телевизор получает сигнал от антенны на УКВ радио-частотах. Далее, в телевизоре этот радиосигнал фильтруется по полосе выбранного теле-канала. Потом переводится к унифицированному сигналу промежуточной частоты. Далее этот промежуточный сигнал усиливается и подвергается ещё некоторым преобразованиям. И вот то, что получилось на выходе всей этой цепочки - вот это и есть тот самый композитный видеосигнал. Именно он дальше используется для отрисовки изображения на экране. И получается этот сигнал где-то в самых недрах схемы телевизора. И чтобы подключить к телевизору БК нужно залезть по шею во внутренности этого телевизора, найти ту самую скрытую точку входа видеосигнала, отрезать от этой точки нафиг всю радиочастотную часть телевизора (чтобы помехи не создавала), а вместо неё припаять кабель от компьютера.
    Задача была очевидно не совсем моего уровня, здесь полностью всё делал отец. Благо для него всё выглядело не слишком сложно - схемы устройства советских телевизоров обычно не секретились, и читать их любой грамотный радиоинженер умел. Все дальнейшие модификации моего видеооборудования для подключения к БК делал тоже мой отец, кстати, легко и быстро.

    А видеооборудование пришлось менять несколько раз. Сначала, ради экономии итак слишком перерасходованных денег, подключили выкопанный из сарая старый ч/б телевизор 2-го класса - огромный деревянный гроб, занимавший почти весь мой письменный стол. Его пришлось долго чистить, регулировать, настраивать, менять какие-то радиолампы (благо были в запасе). В результате, изображение он показывал, но весьма неудовлетворительно - буквы расплывались, края изображения вытягивались, цвет был отнюдь не чёрно-белый, а скорее слегка-серый на светло-сером фоне. По экрану бежали раздражающие горизонтальные полосы. Вся эта огромная электронная пушка била своими серыми лучами прямо в глаза, а отодвинуться дальше, на другой конец комнаты, не получалось - резкость изображения не позволяла, элементы букв начинали сливаться и становились нечитабельными.
    Небольшое время спустя, чтобы окончательно не испортить моё зрение, родители согласились потратить ещё немножко денег на новый телевизор. Идеальным выбором был бы небольшой современный переносной цветной телевизор 4-го класса, что-нибудь вроде Юность Ц-404. Но... Но я очень хорошо чувствовал, что трачу ЧУЖИЕ деньги. Поэтому скромно выбрал самый-самый недорогой вариант - опять же деревянный ч/б телевизор 3-го класса, который тогда продавался с огромной скидкой специально "для бабушек". Что-то вроде Горизонт или Берёзка, или Весна? Не помню уже, они тогда все были абсолютно типовые, одинаковые, как близнецы... Но стоил он в ТРИ раза дешевле, чем та же Юность Ц-404.
    Этот телевизор занимал всего лишь четверть письменного стола, выдавал относительно чёткое ч/б изображение, не требовал придвигаться к экрану вплотную, чтобы отличить букву "Ц" от буквы "Щ". Искажения геометрии пришли в норму. Контрастность тоже. Глазам стало гораздо лучше. На несколько месяцев, а возможно и на целый год, вопрос с нормальным монитором для моего домашнего БК был успешно решён.

    Но пока что все мои телевизоры были монохромными. А ведь у меня же игровой компьютер, с возможностью вывода цветов! Очень хотелось попробовать игры в цветном режиме. Возможность купить цветную Юность Ц-404 я уже благородно упустил. Оставалось уговорить отца присобачить подключение моего БК в виде эксперимента к основному домашнему цветному телевизору в гостиной. Подключаться нужно было опять прямой пайкой внутрь схемы телевизора. Некоторая сложность была в том, что на этот раз внутрь телевизора нужно было впаять не один сигнальный провод, а сразу четыре. А кроме того, требовалось не просто "отрезать всё лишнее", но ещё и сохранить работоспособность телевизора, когда компьютер отключен - основной семейно-развлекательной функции с большого телевизора в гостиной никто не снимал. Впрочем, отец с этим тоже справился легко. 
    А вот реализация цветного изображения на БК меня откровенно разочаровала. Всего 4 фиксированных цвета - Red, Green, Blue, Black, причём несимметричные по точкам на канве экрана. Красный и чёрный цвета всегда занимали ДВЕ соседние экранные точки (пикселя) по горизонтали, в то время, как синий и зелёный цвета всегда занимали ОДНУ точку, плюс соседнюю чёрного цвета. Всё это - при крайне скромном разрешении экрана 256х256 точек (которое ещё и не соответствовало горизонтальной вытянутости экранного прямоугольника) и без вариаций с палитрами. В итоге, если монохромный вывод БК был вполне на приличном уровне среди компьютеров своего времени, и позволял вполне профессионально работать, то возможности цветного изображения явно отставали от большинства других домашних машин. Так, скорее побаловаться, чем для чего-то полезного. Так я и использовал подключение к цветному телевизору - изредка немного поиграть в отдельные игры, посмотреть, как они выглядят по задумке их авторов. Больше я к цвету на БК не присматривался.

    А основой для работы у меня остался монохромный вывод изображения. Когда со временем я получил некоторую финансовую самостоятельность, немедленно заменил свой "деревянный" телевизор на профессиональный монитор. Друзья-товарищи предложили по очень сходной цене настоящий монитор ВК8071 от школьного компьютерного класса "Корвет". Скорее всего, монитор спёрли ушлые студенты то-ли из какого-то ПТУ, то ли из какого-то ВУЗа, во время летнего ремонта помещений. Но меня подобные подробности не волновали. Дают - бери! На улице ведь 1990-е годы, самое начало.
    Монитор оказался ИДЕАЛЬНЫМ. Он имел почти в два раза меньшую диагональ экрана, по сравнению с моим прошлым деревянным телевизором, кажется 12 или 13 дюймов по современным меркам. И, соответственно, занимал в четыре раза меньше места по объёму. Без проблем подключался к тому самому вышеупомянутому "композитному видео сигналу". Давал предельно чёткое, ясное, контрастное ч/б изображение. Никакого напряжения глаз, никакой размытости, никаких мерцаний экрана, никаких проблем со зрением! С момента его покупки всё стало просто идеально, другого слова даже и не подберу. Умели же в СССР делать действительно качественные вещи, если речь шла о здоровье детей! :))  (Монитор был из комплектации школьного класса компьютеров, напоминаю) Впрочем, чуть позже у друзей и коллег наблюдал мониторы МС6105 - качество было примерно аналогичное.

    Отвлекаемся на историю из "лихих 90-х"

    Хочу немного отвлечься от компьютеров БК, раз уж зашла речь о мониторе ВК8071. Был забавный случай, который мне негде больше озвучить. Пусть будет здесь.
    К моему новому монитору требовался отдельный блок питания. Его, судя по всему, спереть вместе с монитором не получилось, но мои товарищи, продававшие монитор, подрядились мне спаять на коленке самодельный блок питания, включив его в общую стоимость покупки. И вот я поздним зимним вечером пришёл на окраину города в общежитие, забрал свой свеженький блок питания, положил его в заплечную сумку, пошёл пешком через половину города домой. Надо сказать, что парень, паявший для меня блок, был очень хорошим человеком (у нас с ним вообще всегда сохранялись прекрасные отношения). Он подошёл к делу ответственно, поместил свой самопальный блок питания с большим трансформатором, в очень красивый прозрачный корпус, склеенный из прозрачного пластика-плексигласа. Просто дизайнерский шедевр!
    Ну и вот, несу я в сумке этот шедевр посреди ночи домой. Передо мной один из участков моего пути - длинная узенькая тропинка, примерно 1 км длиной. Справа - сплошной бетонный забор промзоны в 2 метра высотой. Слева - огромный вал снега в 3 метра высотой, сгребённый очистителями с трамвайных путей. Между бетонным забором и снежным завалом есть узкая тропинка на одного человека. И я иду по ней. Прохожу почти до конца тропинки, и внезапно понимаю, что дальше путь ЗАКРЫТ! На выходе тропы стоит компания из 5-6 явно очень возбуждённых лиц кавказской национальности. И эти лица очень активно выясняют отношения между собой, в пропорции примерно половина на половину. Они что-то громко орут на своём языке, смысл я не улавливаю. Они машут руками, кулаками, в свете уличных фонарей мелькают ножи. Вдруг раздаётся громкий выстрел пистолета. Но поскольку никто после выстрела не упал, догадываюсь - было что-то не летальное, травмат, газовый, или вообще холостой/стартовый.
    А мне-то теперь что делать? Обойти стороной? Так это надо возвращаться на целый километр назад по тропинке, потом переходить на другую сторону улицы, а потом снова переться этот же километр опять вперёд, но уже по другой тропинке. Нифига себе, крюк для вечерней прогулки получается? Нет, так не пойдёт! И у меня сработала самопроизвольная реакция.
- Эй, мужики, погодите драться, дайте я тут пройду!

    Кавказцы заткнулись в полном изумлении. Ножи и кулаки слегка приопустились. Я весело помахал мужикам рукой, улыбнулся, как будто так и планировалось, прошёл узенькой тропкой посредине зависшей на несколько секунд драки, внимательно, стараясь никому не наступить на ногу. Мужики молча проводили меня глазами. Никто не шевельнулся и не сказал ни слова. Я спокойным, уверенным шагом, вышел с тропинки на широкий очищенный от снега тротуар, прошёл ещё несколько десятков метров. За спиной услышал возобновившиеся крики на незнакомом языке. Снова громко хлопнул пистолетный выстрел. Но меня это уже не страшило, только лишь радовало: эти крики и стрельба были уже не ко мне. не в мою сторону, я ПРОШЁЛ!
    "Я ПРОШЁЛ" - всё в моём сознании ликовало! В эту секунду я поскользнулся ногой на наледи, не удержал равновесия, упал и хлопнулся задницей об лёд. Успел чуть повернуться на бок и отбиться рукой, как учили на тренировках. Ничего себе не повредил, поднялся, слегка разочарованный (ещё бы - такое глупое фиаско после такого крутого триумфа).  Заглянул в сумку.... Боже!  От великолепного прозрачного дизайнерского корпуса блока питания остались лишь осколки... К счастью, сам блок питания почти не пострадал в этом инциденте. Дальше успешно питал и монитор, и даже дисководы.

    Немного о программировании

    Но вернёмся к нашим БКшкам. Изначально машина досталась мне практически "голой", без всяких готовых программ. А написать что-то своё очень-очень хотелось. Я ведь себе настоящий компьютер покупал, а не какую-нибудь там игрушку! Начал я, разумеется, с самого простого, что лежало прямо на поверхности - с языка высокого уровня ФОКАЛ (FOCAL), зашитого в постоянную память (ПЗУ). Язык был очень простой, точнее даже примитивный. Примитивнее даже ранних версий Бейсика. Программы на Фокале работали невероятно медленно, кажется, чуть ли не медленнее, чем на упомянутом ранее калькуляторе МК-61. Ничего, кроме чисто учебных программ, типа "реши квадратное уравнение" или "угадай задуманное число с 5 попыток" там написать было физически невозможно. Ни о каких динамически меняющихся изображениях, ни о каких играх и т.п. речь даже не шла. Когда первая эйфория от новизны прошла, мне очень быстро надоело пытаться что-то писать на языке, который вычислял квадратный корень из числа девять за целых две секунды, а строчку "Мама мыла раму" выводил на экран аж за полторы секунды. Я справедливо ожидал от современного 16-разрядного компьютера большей эффективности.
    В следующей модели БК (о ней упомяну ниже) встроенный язык ФОКАЛ был заменен на встроенный БЕЙСИК. Это была более продвинутая реализация, текст программы пользователя перед исполнением компилировался в особый "шитый код", в котором наиболее трудоёмкие для процессора места заменялись вызовами готовых подпрограмм в машинных кодах. В результате, скорость исполнения программ повысилась как минимум на порядок, по сравнению с ФОКАЛом. Правда, осложнились требования к свободной памяти (теперь там нужно было хранить и исходный текст, и откомпилированный код, и дополнительные системные процедуры, всё это одновременно). Вроде уже получалось писать какие-то почти полезные, а иногда, даже почти игровые программы. Но меня в тот момент уже и это совершенно не устраивало. Мой НАСТОЯЩИЙ компьютер, уверен, был способен на большее.
Так выглядел встроенный БЕЙСИК (фото из сети)

    При отсутствии готовых инструментов программирования, оставалось пытаться писать программы в чистых машинных кодах, чистыми цифрами (на БК традиционно была принята запись машинных кодов числами в восьмеричной системе счисления). Сама по себе система машинных кодов БК оказалась совсем не сложной, очень логичной, и весьма качественно документированной (PDP-11 всё же). 
    У меня отложилось в памяти, что я вводил машинный код своих первых программ прямо в стартовом мониторе БК, но сегодня перечитал документацию и понял, что кажется путаю монитор БК с чуть более продвинутым монитором компьютеров ДВК. Тем не менее к БК тоже прилагался специальный модуль тестовой диагностики (подключался вместо ФОКАЛа), в ПЗУ которого был прошит более мощный монитор с возможностью непосредственной записи цифровых машинных команд с клавиатуры в ОЗУ по выбранным адресам. Вероятно им я и пользовался.
    Сам по себе машинный код был вовсе не сложен: пишешь, например, такую строчку чисел:
    12701, 1040, 111102
    Этот кусочек программы означает: взять 16-разрядное число, которое записано в ОЗУ по восьмеричному адресу 1040 (544 в десятичной) и поместить это число в регистр №1, а потом взять из ОЗУ другое уже 8-разрядное число, которое лежит по адресу, записанному только что в регистр №1, и поместить его в регистр №2. Всё просто и логично! Хи-хи.
    На самом деле, не в цифровой восьмеричной кодировке программы крылась проблема. К цифрам привыкаешь очень быстро. Основная проблема - подсчитывать вручную адреса.
Изначально программа писалась в тетрадку карандашом. По итогам этой записи выяснялось, сколько требуется команд в программе, сколько байт будет занимать каждая команда. В результате, зная адрес первой команды (например 1000), можно было вручную вычислить и зафиксировать в тетрадке адреса в памяти всех остальных команд. И во все имеющиеся в программе команды условных и безусловных переходов нужно прописать эти вычисленные в тетрадке адреса. Аналогично и с данными - когда программа дописана, адреса её команд стали известны, оказался известным и адрес начала свободной области памяти, где разместятся переменные с данными. Адрес каждой переменной нужно опять вычислить в тетрадке, зная начало области данных, адреса и размер всех ранее определённых переменных, потом все эти свежевычисленные адреса данных нужно тщательно расписать по программе, во все места, где какие-то команды к этим данным обращаются. А ещё адресация бывает абсолютной - сказали обращаться к ячейке 1040 (как в примере), значит именно к ней и нужно обращаться. А бывает относительная адресация, когда настоящий адрес ячейки памяти неизвестен, его нужно подсчитать, взяв текущий (действующий на сей момент вычислений) адрес следующей исполняемой команды, и прибавив к нему некоторое число относительного смещения вперёд или назад по программе.
    Но самое смешное начинается, когда вдруг выясняется, что где-то в середину программы необходимо добавить несколько команд, которые там ранее не предусматривались. А из-за этих добавленных команд, адреса ячеек всех нижерасположенных команд и данных вынужденно "съезжают" на некоторое число вниз. Вручную пересчитать! И вручную переписать по всей программе, ничего не забыв и ничего не перепутав! В тысячу мест ручные изменения! И так с каждым отдельным малюсеньким исправлением, которое затрагивает количество команд в программе. Вот!!! Вот, где эта дьявольская Собака Баскервилей порылась!!! Вот почему никто в чистых машинных кодах никогда не программирует, аж с 1950-х годов!
    Я с машинными кодами конечно некоторое время баловался, в исключительно учебных целях. Прежде всего, чтобы ощутить, что я действительно понимаю устройство моего компьютера и его систему команд. Написал несколько очень мелких учебных программ. Оценил все трудности. Вершиной моего машинного кодирования была реализация известной "игры" Конвея "Жизнь" - простая модель клеточной колонии на экране, где клетки дохнут, если им слишком тесно, или наоборот, слишком скучно, и радостно размножаются, если имеют комфортное число соседей. Для дальнейшего совершенствования в программировании уже потребовались сторонние программы.

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

    Писать программы в отладчике стало конечно заметно проще, чем в чистых машинных кодах. Можно было отложить в сторону надоевшую тетрадку с карандашом и калькулятором - их заменил отладчик. Также он взял на себя преобразование кодов операций в мнемокоды ассемблера, и частично взял на себя подсчёт относительной адресации. Но лишь частично, и только лишь относительной, но не абсолютной. Всё-таки, для нормального написания программ требовался нормальный ассемблер, а не полумера в форме отладчика.
    Ассемблер для архитектуры PDP-11 был, назывался он MACRO-11, но я никогда не видел полной (и полноценной) его реализации на линейке компьютеров БК. Для начала до меня доходили только очень мало функциональные обрезки ассемблера, имеющие и проблемы с текстовыми редакторами исходных текстов, и невнятные ограничения на компиляцию и компоновку. Потом начали появляться более приличные и стабильные версии. Я с готовностью переходил от одного варианта к другому.
    Огромной проблемой встал ввод/вывод программ на магнитофонные кассеты. Ассемблер - принципиально не предназначался для мгновенной однопроходной обработки программы. Тот же MACRO-11, если не ошибаюсь, разбивался на несколько отдельных этапов-проходов: сначала отрабатывал анализатор исходного текста, разбивая его на модули, и выделяя макроэлементы языка, для препроцессора. Ой чёрт, не так! Сначала исходный текст набирали в текстовом редакторе и сохраняли в файл. А уж только потом натравливали на него анализатор макроассемблера. Продолжим, однако. Затем препроцессор, обрабатывал макроопределения и макро-вставки. Далее собственно ассемблер генерировал с учётом макросов кучу объектных файлов без ссылок на конкретные адреса. Наконец, эта куча объектных файлов компоновалась сборщиком-компоновщиком в окончательный исполняемый файл, который уже можно было пытаться запустить. При этом, каждый этап сей цепочки действий требовал сохранения на диске нескольких промежуточных файлов, которые позже служили исходными данными для следующих этапов. На больших и мини- компьютерах, где можно было автоматически сохранить на дисках, а потом прочитать снова кучу файлов, такая схема более-менее работала. На БК-0010 с мизерной оперативной памятью, с ручным вводом/выводом через магнитофонную кассету, с ручной её перемоткой - НЕТ!
    Для начала, энтузиасты-разработчики ассемблеров для БК были просто вынуждены полностью выкинуть нафиг из MACRO-11 всю часть, отвечающую за работу с макросами. Не самая актуальная фишка, а тут уж не до жиру. Потом оставшиеся куски, включая текстовый редактор, компилятор, компоновщик, постарались объединить в одну единую среду разработки, чтобы не заставлять пользователя постоянно вручную подгружать с магнитофона различные файлы отдельных модулей. И это объединение делалось в условиях жесточайшего дефицита оперативной памяти! Неудивительно, что получилось не с первой попытки, однако в итоге получилось. Я вынужденно через этот ряд попыток проходил. 
    Всё равно, даже лучшие ассемблеры БК жёстко лимитировались возможностями кассетного магнитофона. При ассемблировании сколь-нибудь чуть-чуть сложной программы уже требовались неимоверно нудные, но обязательно виртуозные манипуляции с ручной перемоткой кассет и записью/загрузкой промежуточных файлов. Этот этап миновал только с распространением дисководов (уже, как правило, на модели БК-0011М). А вот с приходом дисководов ситуация поменялась в противоположную сторону. Я готов был подписаться под словами одного из разработчиков программ для Макинтошей (процессор М68000): "А зачем мне нужны языки высокого уровня, все эти Паскали и Си?! Мне и на ассемблере всё ясно и понятно с первого взгляда! Ничего лучшего и не надо".
    Какие-либо современные компактные языки высокого уровня для БК из-за ограниченности ресурсов оказывались совершенно неприемлемыми. Я видел пару версий адаптированного к БК языка FORTH (с плеча "старших сестёр" БК - с ДВК, Электроники 60, СМ1420 и т.п.). Совершенно не впечатлило. Крайне неудобно (инверсная польская запись, однако), очень низкая надёжность (язык ориентирован на стековую архитектуру, которая с трудом контролируется в условиях предельного дефицита ресурсов), возможности "отчуждения продукта" (передачи своих разработок сторонним клиентам в приличном виде) - просто ниже всякого плинтуса. Ассемблер на порядок удобнее, проще и эффективнее.
    Аналогично и с языком Си. На фоне ассемблера PDP-11 язык Си смотрелся как относительно удобный, но совершенно необязательный препроцессор для того же ассемблера - как программа необязательной предварительной адаптации исходного текста для чуть лучшей компактности написания. Ну да, кажись хорошая штука, но жрёт лишние ресурсы, сссобака! А если ресурсов не хватает, так на чистом ассемблере работать гораздо проще и быстрее. Идёт этот Си лесом! И без него всё отлично читается и пишется.
    Так на ассемблере я и остановился, как на высшей ступени развития инструментов написания программ для БК.

    Апгрейд моего компьютера - немного о железе

    Несколько месяцев я увлечённо экспериментировал с моим первым так удачно купленным в комиссионке компьютером. А потом в наш город уже официально, в фирменный магазин "Электроника" завезли небольшую партию новеньких компьютеров БК следующей модели БК-0010-01. У меня загорелись глаза! Оперативно продал свою б/у БКшку с символической скидкой в 15 рублей через ту же комиссионку (за три дня ушла), добавил чуть-чуть своих денег, и купил новенький компьютер. 
    Новая модель БК-0010-01 технически была абсолютно тем же самым компьютером, с полностью теми же характеристиками. Отличий было только два. Во-первых, вызывавшую массу нареканий плёночную клавиатуру с разноцветной бумажкой заменили клавиатурой с традиционными пластмассовыми нажимающимися кнопками. Вероятно, "по многочисленным просьбам трудящихся", которых жуткий дребезг плёночных клавиш до чёртиков задолбал. Во-вторых, тоже вероятно по многочисленным просьбам, зашитый в ПЗУ экзотический и тормозной язык высокого уровня ФОКАЛ заменили на гораздо более традиционный язык БЕЙСИК. Обновлённый компьютер выглядел примерно так:
БК-0010-01 (фото из сети)

    На практике новая модель компьютера оказалась абсолютно ничем не лучше старой. Кнопочная клавиатура была спроектирована максимально, запредельно отвратительно, исполнена с наихудшим возможным качеством из самых неподходящих материалов. Кнопки скрипели, как ржавые петли на амбарных воротах, зацеплялись друг за друга краями, постоянно заедали в своих гнёздах так, что их приходилось выковыривать оттуда ножницами тли отвёрткой. Дребезжали ничуть не меньше прежних, плёночных клавиш, выдавая на каждое одиночное нажатие совершенно непредсказуемое случайное число символов, начиная, как и положено, с нуля. Я вообще никогда в жизни, нигде, ни в каких устройствах, не видел НАСТОЛЬКО ДЕРЬМОВЫХ клавиатур. Любые известные мне клавиатуры советского производства, постоянно ругаемые за низкое качество изготовления, все они были на порядок лучше! Плёночные клавиатуры БК-0010 и ранние кнопочные клавиатуры БК-0010-01 держат здесь на пару друг с другом абсолютный антирекорд, идя при этом "ноздря в ноздрю". И дело здесь не в том, что мне попался бракованный экземпляр. Нет, жалобы шли массово, я много общался с людьми в этой сфере, я всё это знал. Да и лично через мои руки проходили далеко не единицы компьютеров линейки БК, я видел массовость проблемы своими глазами.
    Должен добавить, что в более поздних выпусках БК-0010-01 клавиатуру полностью переработали, точнее просто стали устанавливать вообще другую клавиатуру, ту же, которой оснащались БК-0011М (будет ниже). Вот только что значит "в более поздних"? Первые плёночные БК-0010 появились в 1984-1985 годах. Уже тогда проблема дребезга клавиш была всем очевидна. БК-0010-01 начали выпускаться в 1986-1987 годах, если не ошибаюсь. Я купил новенькую машинку, ещё пахнущую заводским лаком, в конце 1989 года... А в ней всё ещё стояла "старая" дерьмовая клавиатура. Ню-ню. А когда в продаже появились БК-0010-01 с нормальной клавиатурой, они уже были не слишком нужны - в народ уже пошли гораздо более продвинутые БК-0011М по чуть большей, но близкой цене.

    Вторая доработка - БЕЙСИК вместо ФОКАЛ тоже, как понятно, оказалось несущественной. Да, компилируемая в шитый код программа работала на порядок быстрее ФОКАЛьной. Да, гораздо более традиционный синтаксис языка, более того - "Вильнюсский-БЕЙСИК" - это откровенная попытка сделать всё как можно ближе к вариантам Basic от Microsoft для ранних микрокомпьютеров, клонов IBM PC и распространяющихся школьных машин MSX. Вот только, получилось именно "по мотивам", но никак не реально совместимо. Сказалась и разница в машинной архитектуре - разные процессоры, разная организация графики, звука, ввода/вывода. И чудовищное ограничение БК-0010(-01) по размеру доступной памяти, которая была в разы меньше по сравнению с любыми современными западными конкурентами, что ещё более осложнялось компилируюшей природой Вильнюс-Бейсика БК, требующей одновременный доступ в адресном пространстве и к исходному тексту, и к большому стеку, и к скомпилированному шитому коду, и к готовым библиотекам подпрограмм... 
    Никакой реальной совместимости по программам ни с одной из распространённых версий БЕЙСИКа не было. Ни одну сколь-нибудь серьёзную западную программу просто из популярного журнала (и даже с готовой дискеты) скопировать не получалось. Да, чуть лучше ФОКАЛа. Но всё равно, нафиг в реальной работе не нужно.
    Тем не менее, поменяв БК-0010 на БК-0010-01 я, хоть ничего важного и не приобрёл, но и ничего не потерял, надёжность электроники внутри компьютера была по-прежнему на высшем уровне, возможности и характеристики (за исключением почти бесполезной рокировки ФОКАЛ-БЕЙСИК) ничуть не изменились. Я ещё несколько месяцев продолжал с энтузиазмом учиться программировать и использовать мой БК-0010-01.

    К тому моменту я заслужил среди местной компьютерной тусовки славу специалиста по программному обеспечению БК, имеющему одну из лучших в городе коллекций программ. Ко мне стали периодически обращаться за помощью в настройке только что купленных компьютеров, в подборе интересных (по возрасту клиента) и/или полезных готовых программ. Некоторые люди просто приходили обменяться добытыми пиратскими, по сути (а кто за них платил?) программами. В любом случае я менялся не "штука-на-штуку", нет. Всегда позволял скопировать со своих кассет всё пиратское, что интересовало клиента, взамен просил только известить меня, если у того вдруг в коллекции появится что-то интересное, чего у меня нет. 
    Надо, наверное помянуть, что термин "пиратство" здесь упомянут скорее в шутку. Не было тогда никакого способа получить все эти программы легально, с оплатой отчислений автору! Физически не было такого способа. Нет законов, нет счетов, нет контактов, нет возможностей заплатить. Просто есть под рукой на 100500 раз уже переписанная кассета с программами. Часть программ протухли, не читаются, ещё часть - совсем полный бредовый треш. Часть - очень интересные и полезные. Или пользуйся сам, и копируй другими, или.... Когда появилась реальная возможность заплатить автору за разработку... Первые две программы в моей жизни, на которые я реально приобрёл за свои собственные деньги право лицензионного использования - были программы для компьютеров БК. ВотЪ...
    
    Другие люди обращались с просьбами помочь настроить купленный компьютер, помочь выбрать программы и комплектацию системы. Часто оставляли мне свою свежую систему, чтобы я мог несколько дней погонять её в своих домашних условиях. Некоторые, после этого становились постоянными клиентами, приходили с вопросами о линейке БК регулярно. На что мог - отвечал сам, или проверял на практически развёрнутой машине. На что не мог ответить - перенаправлял к товарищам, имеющим более углублённую квалификацию (например, пайку электроники я на себя почти никогда не брал, старался переадресовать). Люди во многих случаях платили вознаграждение. Деньгами я обычно не брал. А вот отдельные экземпляры настраиваемой техники и её комплектующих, я в оплату своих услуг в собственность брал с благодарностью. Клиенты этим тоже охотно пользовались, с их точки зрения это выходило почти бесплатно. А я получал широкий доступ к новейшей, и относительно дорогой (по моим личным меркам) технике. 

    Вот примерно таким образом я и получил в распоряжение следующую версию линейки компьютеров БК - называлась она БК-0011. Фоточек не будет, БК-0011 от предшественницы по внешнему виду ничем, кроме циферки на шильдике, не отличалась. Получил её, как обычно, в полной заводской комплектации, в том числе с документацией. Начал с жадностью читать. Первые же строки показывали - это уже не жалкая косметическая модификация, это что-то реально КРУТОЕ! С ещё большей жадностью бросился изучать! Что я увидел? Разделим на две части:

    Ожидания от БК-0011:
    - Оперативная память, о которой так долго-долго кричали все глупые пролетарии в стародавнюю эпоху, на конец-то резко увеличилась!!! Теперь у нас есть огромные 128 кб, против прежних 32 кб, ура, товарищи!
    - Вместо одного буфера экрана в памяти, размером 16 кб, теперь там есть аж два буфера экрана по 16 кб каждый с возможностью мгновенного переключения между ними;
    - Вроде бы как есть разные варианты цветовых палитр;
    - Частота процессора повысилась с 3 МГц до аж целых 4 МГц, возрадуемся же!
    - В комплектацию компьютера добавлен штатный контроллер дисковода для гибких дискет диаметром 5.25 дюйма. И даже, кажется, в комплект входит гибкий диск 5.25'' с новой дисковой операционной системой ОС БК-11. 

    Реальные впечатления от БК-0011:
    - Начнём с простого - клавиатуру-то, наконец, нормальную присобачили? Что говорите? Нет??? Как-так нет?!?! Клавиатура осталась от ранних версий БК-0010-01, говорите?!?!?!?!!!!!! Ребята, да вы что там в своих европах вообще охренели????!!!! Вы что, вообще краёв идиотизма-дебилизма не наблюдаете???!!!!!  Это же сколько лет надо так над своими покупателями издеваться, когда всё было очевидно с первой же попытки в 1984 году???!!!!  Всё, всё, уберите полотенца, развяжите меня, не тычьте в меня шприцем. Я уже сам успокоился. Всё, я не кричу больше, простите.
    - Оперативную память, говорите, до аж 128 кб увеличили? Вот только адресное пространство 64 кб никуда не делось. Поэтому нет никакой вожделенной сплошной памяти, в которой 128 кб, которую можно было бы использовать под программы и данные. Есть отдельные окна в 16 кб, которые размещены в пространстве 64 кб. Из этих окон одно окно отдано под буфер экрана - эта фишечка никуда не делась, эта память для программы практически потеряна. Другое окно попадает на то место, где раньше было ПЗУ и с "основной" частью программной памяти по диапазону адресов не соседствует.. А ПЗУ ведь тоже никто вроде бы не отменял, оно тоже не лишняя деталь в компьютере. А как вся эта расширенная память совместима с уже готовыми программами для БК-0010, которых за последние годы понаписади реально сотнями? Да никак не совместима! Может быть эта технология совместима со старшими моделями мини- и микро- компьютеров архитектуры PDP-11? Нет, тоже не так. Принцип организации видео вывода, с буфером, торчащим посредине ОЗУ, как минимум мешается. Вроде бы и памяти стало много-много, а вроде и использовать её не совсем ясно как. Не пришей к ослику Иа-Иа хвостик...
    - Появилось два переключаемых буфера экрана, вместо одного? Хорошее дело. Правда абсолютно не совместимое с более ранними программами, да ещё и крайне специфически востребованное - почти только в играх, точнее в динамичных анимациях. Но хоть что-то почти положительное.
    - Варианты палитр появились? Честно, до конца работы с линейкой БК, так ни разу в жизни и не увидел применения этой особенности. И сами цвета там несколько странные. И опять же совместимости ни с чем ранее используемым в других системах нет. И перспектив на будущее не усматривается. И что с этим дальше делать?
    - Частоту процессора на 1 МГц подняли? Ну это как в анекдоте: "Построй первый в мире действующий звездолёт, и ты получишь от правительства бесплатную капитанскую фуражку в подарок!" Если что, сама архитектура PDP-11 с общей шиной, крайне зависима от скорости отдельных устройств компьютера и протоколов их взаимодействия. Самым узким местом является общая шина, через которую взаимодействуют все устройства компьютера, включая память. При этом вариации тактовой частоты процессора на всю эту сложную кухню влияют в двадцать восьмую очередь. Процессор в любом случае чуть ли не половину времени простаивает, в ожидании ответа устройств общей шины. Короче, простым глазом увеличение скорости было совершенно незаметно (кстати, на качество работы программ, зависящих якобы от тактовой частоты, оно тоже абсолютно никак не повлияло).
    - Контролер дисковода? О! Вот это реально - ДЕЛО! Остался маааааааленький вопрос: "А где сам дисковод?" Как так "нету"? Почему? Поясняю:
Контролер дисковода появился в БК-0011 конечно не в первые. К ранним БК-0010 дисководы тоже подключали, но делали это кустарно или полукустарно. В продажу до того момента дисководы БК никогда не поступали. А вот к БК-0011 решили от щедрости подключить дисковод штатным образом. Только, если я не ошибаюсь, взяли за основу технического задания какой-то древний ГОСТ первой половины 1980-х годов, принятый ранее для первых версий школьных компьютеров "Агат". Контролер для БК-0011 в итоге поддерживал чуть ли не единственную модель какого-то болгарского дисковода которой не было в продаже (подозреваю, ISOT 5321, но могу сильно ошибаться. Живьём я такое лично не трогал), и которая могла работать только с устаревшими 40-дорожечными дискетами (360 кб максимум). Зато именно эта модель дисковода централизовано поставлялась в школьные классы, так что контролер мог бы подойти для школьных компьютеров БК-0010Ш. Впрочем, не факт. Кроме всего, он был не совместим с предыдущими программами для БК-0010(-01) - не мог напрямую загружать старые версии БК с дискет, вместо магнитофона, не позволял держать в ПЗУ стандартную мониторную систему БК-0010 (фактически BIOS). Хотя там, кажется, проблема была не только с контролером дисковода, но и с какой-то несовместимостью БК-0010 и БК-0011 по системным адресам.

    В итоге, БК-0011 оказался полным отстоем. Не решал толком ни одной проблемы предыдущих версий, лишь усугублял их. Был несовместим по программам ни с предыдущими БК, ни с другими ветками архитектуры PDP-11. Идеи - хороши, исполнение - на минус 100500 баллов. Избавился от этой машины при первой возможности, и никому никогда не рекомендовал её приобретать. Опять же я такой не один. В той же Википедии пишут, что исходных БК-0011 было выпущено "очень немного".

    Последняя моя модель линейки БК - компьютеры БК-0011М. Фоток опять же не будет, от той же старой БК-0010-01 они внешне отличались лишь надписью. Это была тщательная и достаточно успешная "работа над ошибками" предыдущей версии. 
    Во-первых, наконец-то к БК-0011М присобачили нормальную клавиатуру! Внешне клавиатура почти не отличалась от предыдущих чудовищ. Те же кнопки, с теми же надписями, на тех же местах. Сохранялся и недостаток раскладки - русская раскладка пишущих машинок ЙЦУКЕН, с соответствующими латинскими буквами на похожих русских буквах (т.е. привычной сейчас латинской раскладки QWERTY не предусматривалось). Но это было уже мелочью, по сравнению с реальным достоинством. Зато клавиши (мы тогда называли их "герконовыми") теперь нормально нажимались, реагировали без скрипа, заеданий, дребезга. Стало возможным НОРМАЛЬНО (без непрерывных матюков) вводить с клавиатуры весьма объёмные тексты, в том числе и слепым методом. 
    Во-вторых, была восстановлена совместимость со старыми программами БК-0010(-01). Теперь их можно было почти всегда нормально запускать, как с магнитофона, так и с 5.25-дюймового дисковода, если он был подключен.
    В-третьих, контролер дисковода тоже подправили. Теперь он стал совместим с нормальными современными 80-дорожечными дисководами, работающими с дискетами объёмом 720 кб и более, которые как раз начали постепенно появляться в свободной продаже.
    Исправили ещё некоторые ошибки. В итоге новый компьютер засиял новыми красками, получил совсем иной приём, чем предшественник. Куча энтузиастов бросились обеспечивать его программами. БК-0011М, в сочетании с дисководом и матричным принтером, оказались весьма функциональными в качестве продвинутой интеллектуальной пишущей машинки, домашнего учебно-развлекательного комплекса, лабораторного контролера внешних датчиков, вычислительной системы начального уровня, с возможностью построения графиков и анализа зависимостей... И был уникальный период, в первой половине 1990-х годов, когда БК-0011М делала всё это почти так же хорошо (лишь чуть-чуть хуже), чем многие клоны IBM PC, при этом стоила (с учётом всего комплекса периферийного оборудования) раз в десять дешевле!

    Внешняя периферия

    В первую очередь я подключал к БК конечно же самое простое устройство - джойстик:
Один из вариантов джойстиков для БК (фото из сети)

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

    Мышь. Для линейки БК, как для самых "настоящих" компьютеров на государственном уровне выпускалась и своя "настоящая" компьютерная мышь! Называлась "Марсианка":
Мышь УВК-01 "Марсианка". Специально для БК (фото из сети)

    Самая настоящая, компьютерная мышь, в современном понимании этого термина (только у меня беленькая была). Правда устаревшая по технологии - шариковая, а не оптическая. Ну так ведь в те времена почти все мыши были именно шариковыми. Эргономика, мыши конечно, несколько... ээээ... прикалывает, скажем так. Тем не менее, я уверен, умельцы смогли бы успешно подключить эту штуковину (через переходник, конечно) и к любому современному компьютеру! Использовалась мышь КРАЙНЕ ограниченно! 99% всех программ БК о существовании мыши вообще не подозревали. Никакой системной поддержки для мышей тоже не предусматривалось. Но единичные программы, которые ориентировались на мышиный интерфейс, вроде графических редакторов, вот те пользователей конечно впечатляли. 

   Однако, пора сворачивать этот жутко затянутый текст. Очень полезной штуковиной для БК стали дисководы гибких дискет 5.25 дюйма. Правда, стали они полезными, только когда получили товарное распространение среди пользователей и сами дисководы, и их контролеры заводского изготовления. Это уже начало 1990-х. Получили распространение как отечественные дисководы МС5311, так и импортные TEAC FD-55, и некоторые другие. Лично через мои руки проходили именно эти две модели. Обе работали безукоризненно! Так же, как и их контролер от БК-0011М. Впрочем, повторюсь, в линейке компьютеров БК вся электронная начинка обычно работала без нареканий. Разумеется, появление дисководов с возможностью автоматического чтения/записи данных по ходу работы программы, без необходимости регулярной ручной перемотки магнитной ленты, резко повысили возможности компьютера! Надежность дисководов, как импортных, так и советских, на удивление особых нареканий не вызывала. Судя по всему, бракованные экземпляры отсеивались на более ранних этапах, и до меня просто не доходили.

    Ещё один полезный элемент внешнего оборудования - матричный принтер. Они позволяли сделать из БК достаточно дешевую, но весьма функциональную пишущую машинку,, с возможностью продвинутого редактирования, сохранения и форматирования текста. Почему принтеры именно матричные? Элементарно! Других тогда просто не было. Точнее они были, даже и лазерные были, если усиленно поискать. Но стоили, как гиперзвуковой истребитель. Ещё были лепестковые "ромашковые", на западе очень популярные. Но у нас их ни разу не видали, видно никто не хотел "ромашки" с кириллицей массово выпускать. А вот матричные принтеры, примерно в тот же период, в начале 1990-х, стали реально доступны для покупки. В этот абзац я хотел вставить кучку фоток ранних матричных принтеров. И жутко удивился:
    Через мои руки прошли польские принтеры Mazowsze D-100 и немецкие Robotron СМ6329. Фотки в сети есть... Но какие-то не такие, как отложились в моей памяти. D-100 выглядел истинным бегемотиком. Хотя печатал вполне приемлемо. На нынешних фотках - ничего похожего не наблюдаю. Аналогично, и роботроны на современных фотах почему-то не кажутся мне похожими сами на себя. Роботроны запомнились надёжностью конструкции, прочностью. Ещё у них была приятная фишечка: можно было вместо фирменно картриджа с красящей лентой, поставить специальный "совместимый" картридж (тоже заводского изготовления) в который монтировались две стандартные катушки с лентой от советских пишущих машинок, и эти катушки штатным образом переключались, чтобы мотать ленту взад и вперёд, как им и положено. Обалденная забота о бедных советских юзерах! 
    Были, конечно, в очень гомеопатических количествах и импортные принтеры, Epson LX и какие-то Star. Я себе лично купил вполне себе отечественный принтер МС6313. О, кстати, фоточку хотите?
Вот примерно такой МС6313 (фото взято из сети)

    Очень приличный матричный принтер. Тормозной, до жути. Но, если его гладить по шёрстке, достаточно стабильно работающий. По командам полностью совместимый с импортным Epson LX. И даже, частично совместимый с командами Epson FX, но не совсем. Юмор понятен? По размеру, правда, половину стола занимает, но это уже издержки советской разработки. Главное что? Работает? Таки работает! Последнюю курсовую работу и значительную часть дипломной работы на нём печатал, в текстовом редакторе собственного написания. Защитился успешно. :)))

    Тут был ещё один прикольчик. У того самого принтера МС6313 был от заводского рождения задекларирован интерфейс к компьютеру, под названием ИРПР-М. Который, вроде как бы и не совместим с советским интерфейсом ИРПР, но и с импортным интерфейсом Centronics, он вроде бы тоже нифига не совместим! А с чем тогда? Я ни черта не понял, проанализировал документацию. Обнаружил, что вроде бы как интерфейс ИРПР-М выглядит точно так же, как и импортный Centronics, но только с задержкой на половину фазы синхронизирующего сигнала. Значит, если тупо инвертировать синхросигнал, получится тот самый сдвиг на пол фазы. Инвертор мне опять же принёс отец. Я его даже на плату паять не стал, просто примотал ножками мелкосхему К133 к проводочкам шлейфа синей изолентой. Сработало! Принтер запечатал.

    Вот и всё. Закончилось всё очень быстро. Рухнувшей советской промышленности стало абсолютно неинтересно поддерживать какие-то-там БК. Импортные клоны машин на базе 286/386/486 и далее резко превзошли всё предыдущее на голову. с этим тоже можно было соревноваться, но уже не на том примитивном уровне архитектуры PDP-11.
    Заказчики, ранее выбиравшие БК из дешевизны, очевидно уходили в рынок PC. Я сам тоже активно работал именно с клонами IBM PC на базе Windows 3.x, для начала. В итоге, к середине 1990-х годов, интерес к БК практически пропал. Новые машины - новые возможности. Линейку БК мне пришлось забросить. Крайне жалею, что ничего не смог с тех времён сохранить! Простите меня, о Боги!!!