Выбрать главу

5. Программируемый микрокалькулятор "Электроника Б3-34"

В 1984 году я узнал о существовании программируемых калькуляторов. Простые калькуляторы не были чем-то особенным, хотя стоили довольно дорого, особенно инженерные, которые могли вычислять синусы, логарифмы, возводить числа в степень. У меня уже был такой – "Электроника Б3-36". Но когда я узнал, что есть калькулятор, в котором можно задавать целую последовательность вычислений, осуществлять ветвления в зависимости от результатов вычисления, я потерял покой. Калькулятор назывался "Электроника Б3-34", продавался в специализированном магазине на Кузнецком Мосту и стоил 85 рублей (стипендия была 40 рублей). Накопление денег заняло у меня всю весну, в течение которой я периодически приезжал в магазин и рассматривал на витрине предмет моей мечты. Никаких подробных описаний найти было невозможно, и поэтому догадаться о технологии программирования и о возможностях калькулятора можно было только по надписям на кнопках. И вот в мае 1984 года я наконец-то купил его! Калькулятор был довольно массивным, в основном за счёт четырёх аккумуляторов, и весил грамм триста. По размеру он был, наверное, даже побольше современных Palm'ов. К нему прилагался блок питания от сети, чуть покрупнее современных зарядных устройств к сотовому телефону, и толстая книжечка небольшого формата с довольно подробным описанием, списком команд и примерами написания простейших программ. Фактически это был обычный инженерный калькулятор с так называемой польской нотацией. То есть на нём в принципе не было кнопки "=", и чтобы выполнить, например, сложение, надо было ввести первое число, затем нажать кнопку, на которой была изображена стрелка вверх, затем второе число, и потом знак "+", и получался результат. Но его можно было и перевести в режим программирования. В нем была память для программы на 98 операций. Программа в памяти могла находиться только одна (или никакой). После выключения питания программа не сохранялась. Можно было войти в режим ввода и редактирования программы – на обычном 12-разрядном семисегментном индикаторе показывалось четыре пары символов: номер текущей команды, сама текущая команда и две последующие (или предыдущие, не помню). Команды задавались мнемокодами из двух символов, при этом максимально использовались возможности семисегментного индикатора. Сами операнды, то есть числа, находились в нескольких регистрах, операции выполнялись над числом в регистре Х, и его содержимое выводилось на индикатор после завершения программы, чтобы просмотреть содержимое других регистров, надо было специальной кнопкой менять их содержимое с регистром Х. В памяти команд находились только команды – выполнение тех математических функций, которые умел выполнять калькулятор, а также чисто программистские действия: переслать числа из регистра в регистр, проверить условие, осуществить переход по программе. Все это было подчинено стройной логике структуры калькулятора, и поняв эту логику, составлять программы для него было довольно просто. Главная сложность была в экономии шагов программы, так как их не могло быть более 98, и в оперировании регистрами. Другая проблема была в том, что после выключения питания все содержимое памяти пропадало, и после включения программу надо было снова вводить руками. После запуска программы индикатор начинал невнятно мигать, на нем проскакивали результаты выполнения шагов программы, и имея навык, можно было догадаться, какие шаги в данный момент выполняются. Если выполнялась недопустимая операция, то на индикатор выводилось слово "ERROR", составленное из сегментов цифрового индикатора. Все это требовало определенного навыка, напоминало решение головоломки, и было интересно уже само по себе. Поэтому я игрался "Электроникой Б3-34" почти год, хотя серьезных задач по вычислениям у меня не было, меня занимал сам процесс программирования. Впоследствии, когда я узнал структуру процессора К580 (i8080), я нашел, что она сильно напоминает структуру "Электроники Б3-34" – те же регистры, операции производятся только над данными в регистре-аккумуляторе, те же двузначные мнемокоды команд. Опыт работы на программируемом калькуляторе сильно помог мне в освоении "Радио-86" и PC/AT, хотя на персоналке такие подробности знать совсем необязательно.

Надо сказать, что в середине 80-х в СССР программируемые микрокалькуляторы рассматривались как серьезный вычислительный ресурс. Издавались даже книжки "Инженерные расчеты на программируемых микрокалькуляторах", автор, кажется, Дьяконов. Там было много текстов программ в мнемокодах для многих стандартных инженерных расчетов по механике, сопромату, электротехнике с подробными описаниями. Но на мой взгляд, потребность в таких расчетах была преувеличена.