Сергей Фролов
Эта статья посвящена незаменимым помощникам в нашей жизни - микрокалькуляторам. Описывается история возникновения советских микрокалькуляторов, их особенности и интересные возможности отдельных моделей.
Первые вычислители
Первым механическим приспособлением в России для автоматизации расчетов были счеты. Этот "народный калькулятор" продержался на рабочих местах кассирш в магазинах вплоть до середины девяностых годов. Интересно отметить, что в учебнике "Торговые вычисления" 1986 года методам вычисления на счетах посвящена целая глава.
Одновременно со счетами, в научных кругах, еще с дореволюционных времен, с успехом использовались логарифмические линейки, которые с XVII века практически без изменений прослужили "верой и правдой" вплоть до появления калькуляторов.
Пытаясь как-то автоматизировать процесс вычислений, человечество начинает изобретать механические считающие устройства. Даже известный математик Чебышев в конце XIX века предложил свою модель вычислителя. К сожалению, изображения не сохранилось.
Самым популярным механическим вычислителем в советские времена являлся арифмометр системы Однера "Феликс". Слева - изображение арифмометра, взятое из "Малой советской энциклопедии" 1932 года издания.
На этом арифмометре можно было производить четыре арифметических действия - сложение, вычитание, умножение и деление. В более поздних моделях, например, "Феликс-М", можно видеть ползуночки для указания положения запятой и рычажок для сдвига каретки. Для производства вычислений было необходимо крутить ручку - один раз для сложения или вычитания, и несколько раз для умножения и деления.
Один раз, конечно, покрутить ручку можно, и даже интересно, но что делать, если вы работаете бухгалтером, и за день необходимо произвести сотни простых операций? Да и шум от крутящихся шестеренок-счетчиков стоит приличный, особенно, если одновременно в помещении с арифмометрами работает несколько человек.
Однако, со временем крутить ручку начинало надоедать, и человеческий ум изоблел электрические счетные машины, которые арифметические действия производили автоматически или полуавтоматически. Справа - изображение полулярной в 50-е годы многоклавишной вычислительной машины ВММ-2 (Товарный словарь, VIII том, 1960). Эта модель имела девять разрядов и работала до 17-го порядка. У нее были габариты 440x330x240 мм и масса в 23 килограмма.
Все же наука взяла свое. В послевоенные годы начала бурно развиваться электроника и появились первые компьютеры - электронные-вычислительные машины (ЭВМ). К началу 60-х годов между компьютерами и самыми мощными счетно-клавишными вычислительными машинами образовался по многим параметрам огромный разрыв, несмотря на появление советских релейных вычислительных машин "Вильнюс" и "Вятка" (1961).
Но к тому времени в ленинградском университете уже была спроектирована одна из первых в мире настольных клавишных вычислительных машин, в которой использовались малогабаритные полупроводниковые элементы и ферритовые сердечники. Был изготовлен и действующий макет этой ЭКВМ - электронной клавишной вычислительной машины.
А вообще, считается, что первый массовый электронный калькулятор появился в Англии в 1963 году. Его схема была выполнена на печатных платах и содержала несколько тысяч одних только транзисторов. Размеры такого калькулятора были как у пишущей машинки, а выполнял он лишь арифметические операции с многоразрядными числами. Слева показан калькулятор "Электроника" - типичный представитель калькуляторов этого поколения.
Распространение настольных ЭКВМ началось в 1964 г., когда в нашей стране был освоен серийный выпуск ЭКВМ "Вега" и начат выпуск настольных ЭКВМ в ряде других стран. В 1967 г. появилась ЭДВМ-11 (электронная десятиклавишная вычислительная машина) - первая в нашей стране ЭКВМ, автоматически вычислявшая тригонометрические функции.
Дальнейшее развитие вычислительной техники неразрывно связано с достижениями микроэлектроники. В конце 50-х годов была разработана технология производства интегральных схем, содержавших группы связанных между собой электронных элементов, а уже в 1961 г. появилась первая модель ЭВМ на интегральных схемах, которая была в 48 раз меньше по массе и в 150 раз меньше по объему, чем полупроводниковые ЭВМ, выполнявшие те же функции. В 1965 г. появляются и первые ЭКВМ на интегральных схемах. Примерно в это же время появились и первые переносные ЭКВМ на БИСах (только что внедренных в производство) с автономным питанием от встроенных аккумуляторов. В 1971 г. габариты ЭКВМ стали "карманными", в 1972 г. появились ЭМК научно-технического типа с подпрограммами вычисления элементарных функций, дополнительными регистрами памяти и с представлением чисел как в естественной форме, так и в форме с плавающей запятой в самом широком диапазоне чисел.
Развитие производства ЭКВМ в нашей стране шло параллельно с его развитием в других наиболее промышленно развитых странах мира. В 1970 г. появились первые образцы ЭКВМ на ИС, с 1971 г. на этих элементах начинается выпуск машин серии "Искра". В 1972 г. стали производиться и первые отечественные микро-ЭВМ на БИСах.
Первый советский карманный калькулятор
Первые советские настольные калькуляторы, которые появились в 1971 году, быстро завоевали популярность. ЭКВМ на основе БИС работали тихо, потребляли мало энергии, вычисляли быстро и безошибочно. Себестоимость микросхем быстро снижалась, и можно было думать о создании МК карманного размера, цена которого была бы доступна широкому потребителю.
В августе 1973 года электронная промышленность нашей страны поставила задачу за один год создать электронный карманный вычислитель на микропроцессорной БИС и с жидкокристаллическим индикатором. Над этой сложнейшей задачей работала группа из 27 человек. Предстояла огромная работа: изготовить чертежи, схемы и. шаблоны, состоящие из 144 тыс. точек, разместить микропроцессор с 3400 элементами в кристалле размером 5х5 мм.
Через пять месяцев работы были готовы первые образцы МК, а через девять месяцев, за три месяца до установленного срока, электронный карманный вычислитель под названием "Электроника Б3-04" был сдан государственной комиссии. Уже в начале 1974 года электронный гном поступил в продажу. Это была большая трудовая победа, показавшая возможности нашей электронной промышленности.
В этом микрокалькуляторе впервые был применен индикатор на жидких кристаллах, причем цифры изображались белыми знаками на черном фоне.
Включение калькулятора производилось нажатием на шторку, после чего открывалась крышка, и калькулятор начинал работу.
Микрокалькулятор имел очень интересный алгоритм работы. Для того, чтобы вычислить (20-8+7) необходимо было нажать клавиши | C | 20 | += | 8 | -= | 7 | += |. Результат: 5. Если результат надо умножить, скажем, на три, то вычисления можно продолжить нажатием клавиш: | X | 3 | += |.
Клавиша | K | использовалась для вычисления с константой.
В этом калькуляторе были использованы прозрачные платы с объемным монтажом. На рисунке показана часть платы микрокалькулятора.
Микрокалькулятор содержит четыре микросхемы - 23-х разрядный сдвиговый регистр К145АП1, устройство управления индикатором К145ПП1, операционный регистр К145ИП2 и микропроцессор К145ИП1. В блоке преобразования напряжения использована микросхема преобразования уровней.
Интересно отметить, что этот калькулятор работал от одной батарейки типа АА (А316 "Квант", "Уран").
Первые советские микрокалькуляторы
В начале 70-х годов привычный сегодня язык работы с микрокалькуляторами только зарождался. Первые модели микрокалькуляторов вообще могли иметь свой язык работы, и на калькуляторе приходилось учиться считать. Возьмем, к примеру, первый калькулятор ленинградского завода "Светлана" серии "С". Это - калькулятор С3-07. Кстати, стоит отметить, что калькуляторы завода "Светлана" вообще стоят особняком.
Небольшое отступление. Все микрокалькуляторы в те времена получили общее обозначение "Б3" (цифра три на конце, а не буква "З", как многие считали). Настольные электронные часы получили буквы Б2, наручные электронные - Б5 (например, Б5-207), настольные электронные с вакуумным индикатором - Б6, большие настенные - Б7 и так далее. Буква "Б" - "бытовая техника". Только микрокалькуляторы Светлановского завода получили букву "С" - Светлана (СВЕТ ЛАмпочки НАкаливания - для тех, кто не знает).
Так вот, возьмем, к примеру, калькулятор С3-07. Очень удивительный калькулятор, особенно - его клавиатура и дисплей. Как видно из картинки, на калькуляторе совмещены не только клавиши | += | и | -= |, но и умножить/разделить | X -:- |. Попробуйте сами догадаться, как на этом калькуляторе умножать и делить. Подсказка: калькулятор не воспринимает два нажатия на одну клавишу, возможно только одно.
Ответ не менее удивителен: чтобы произвести, скажем, умножение 2 на 3, надо нажать на клавиши | 2 | X-:- | 3 | += |, а чтобы разделить 2 на 3, надо нажать клавиши: | 2 | X-:- | 3 | -= |. Сложение и вычитание происходит аналогично калькулятору Б3-04, то есть, получение разности 2 - 3 будет вычисляться так: | 2 | += | 3 | -= |. В некоторых моделях этого калькулятора можно встретить и удивительный восьмисегментный индикатор.
Начиная с этой модели калькуляторов, все простые калькуляторы Светлановского завода оперируют с числами с порядками до 10e16-1, даже если на дисплей помещается восемь или двенадцать разрядов. Если результат превышает 8 или 12 разрядов (в зависимости от модели), то запятая исчезает и на дисплее появляются первые 8 или 12 разрядов числа.
Говоря о языке работы с микрокалькуляторами первых выпусков, следует упомянуть и о калькуляторах Б3-02, Б3-05 и Б3-05М. Это - вехи старых калькуляторов типа "Искра". В этих калькуляторах при вычислениях постоянно горят все разряды индикатора. В основном, конечно, нули. Очень неудобно отыскивать на таких калькуляторах первый (да и последний) значимый разряд. Кстати, в модели C3-07, о которой говорилось ранее, уже была попытка решить эту проблему, хотя и несколько необычным способом - на этом калькуляторе ноль имеет половину высоты. Так вот, эти три калькулятора имели очень неудобную, но вполне объяснимую для ранних калькуляторов особенность: требуемая точность вычислений задается при вводе первого числа. То есть, если необходимо, скажем, вычислить частное от деления 23 на 32 с точностью до трех знаков после запятой, то число 23 необходимо ввести с тремя знаками после запятой: | 23,000 | -:- | 32 | = | (0.718). До тех пор, пока оператор не нажмет кнопку сброса, все последующие вычисления будут производиться с тремя знаками после запятой, а запятая вообще больше никуда не движется. Это, кстати, и называется "фиксированной запятой", а более поздние калькуляторы, в которых запятая уже перемещается по дипслею, тогда назывались "с плавающей запятой". Сейчас, в терминологии произошли изменения, в результате которых с "плавающей запятой" сейчас называются отображения числа с мантиссой слева и порядком справа.
Через год после разработки первого карманного микрокалькулятора Б3-04 появились новые, более совершенные модели карманных МК. Это - модели Б3-09М, Б3-14 и Б3-14М. Эти калькуляторы были сделаны на одной микросхеме процессора К145ИК2 и одной микросхеме генератора фаз. Слева показан калькулятор Б3-09М, в таком же корпусе сделан и Б3-14М, справа - Б3-14. На этих моделях был уже "стандартный" язык работы на калькуляторах, включая вычисления с константой.
Эти калькуляторы уже могли работать как от блока питания, так и от четырех (Б3-09М, Б3-14М) или трех (Б3-14) элементов типа АА.
Хотя эти калькуляторы сделаны на одном и том же чипе, они имеют разные функциональные возможности. И вообще, "убирание" разных функций было присуще многим моделям советских микрокалькуляторов. Например, у микрокалькулятора Б3-09М не было знака вычисления квадратного корня, Б3-14М не умел вычислять проценты.
Особенностью этих простых калькуляторов являлось то, что запятая занимала отдельный разряд. Это очень удобно для беглого считывания информации, но при этом пропадает последний знаковый разряд. У этих же калькуляторов перед началом работы необходимо нажимать клавишу "C" для очистки регистров.
Первый советский инженерный микрокалькулятор
Следующим огромным шагом в истории развития микрокалькуляторов стало появление первого советского инженерного микрокалькулятора. В конце 1975 года в Советском Союзе был создан первый инженерный микрокалькулятор Б3-18. Как писал по этому поводу журнал "Наука и Жизнь" 10, 1976 в статье "Фантастическая электроника": "...этот калькулятор перешел Рубикон арифметики, его математическое образование шагнуло в тригонометрию и алгебру. "Электроника Б3-18" умеет мгновенно возводить в квадрат и извлекать квадратный корень, в два приема возводить в любую степень в пределах восьми разрядов, вычислять обратные величины, вычислять логарифмы и антилогарифмы, тригонометрические функции...", "...когда видишь, как машина, которая только что мгновенно складывала огромные числа, тратит несколько секунд, чтобы выполнить какую-либо алгебраическую или тригонометрическую операцию, невольно задумываешься о той большой работе, которая идет внутри маленькой коробочки, прежде чем на ее индикаторе засветится результат".
И действительно, была проделана огромная работа. В единый кристалл размером 5 х 5,2 мм удалось вместить 45000 транзисторов, резисторов, конденсаторов и проводников, то есть полсотни телевизоров того времени запихали в одну клеточку арифметической тетради! Однако, и цена такого калькулятора была немалой - 220 рублей в 1978 году. Для примера, инженер после окончания института в те времена получал 120 рублей в месяц. Но, покупка стоила того. Теперь не надо думать, как не сбить ползунок логарифмической линейки, не надо заботиться о погрешности, можно забросить на полку таблицы логарифмов.
Кстати, в этом калькуляторе впервые была применена клавиша префиксной функции "F".
Все же в микросхему К145ИП7 калькулятора Б3-18 не удалось полностью вместить все, что хотелось. Например, при вычислении функций, в которых использовалось разложение в ряд Тэйлора, очищался рабочий регистр, в результате чего стирался предыдущий результат операции. В связи с этим нельзя было производить цепочные вычисления, такие как 5 + sin 2. Для этого сначала нужно было получить синус от двух, а потом только прибавить к результату 5.
Итак, работа проделана большая, потрачены большие усилия, и в результате появился хороший, но очень дорогой калькулятор. Чтобы калькулятор был доступен массовым слоям населения, было принято решение на базе калькулятора Б3-18А сделать более дешевую модель. Чтобы не изобретать велосипед, наши инженеры пошли по самому легкому пути. Они взяли и убрали клавишу префиксной функции "F" с калькулятора. Калькулятор превратился в обычный, получил название "Б3-25А" и стал доступным широким слоям населения. И только разработчики и ремонтники калькуляторов знали тайну переделки Б3-25А.
Дальнейшее развитие микрокалькуляторов
Сразу вслед за калькулятором Б3-18 совместно с инженерами из ГДР был выпущен микрокалькулятор Б3-19М. В этом калькуляторе была использована, так называемая, "обратная польская запись". Сначала набирается первое число, затем нажимается клавиша ввода числа в стек , затем второе число, и только после этого - требуемая операция. Стек в калькуляторе состоит из трех регистров - X, Y и Z. В этом же калькуляторе впервые был применен ввод порядка числа и показ числа в формате с плавающей запятой (с мантиссой и порядком). В калькуляторе был использован 12-разрядный индикатор на красных светоизлучающих диодах.
В 1977 году появился другой очень мощный инженерный калькулятор - С3-15. Этот калькулятор имел повышенную точность вычислений (до 12 разрядов), работал с порядками до 9,(9) в 99 степени, имел три регистра памяти, но самое замечательное - работал с алгебраической логикой. То есть, для того, чтобы вычислить по формуле 2 + 3 * 5, не нужно было сначала вычислять 3 * 5, а затем к результату прибавлять 2. Эту формулу можно было записывать в "естественном" виде: | 2 | + | 3 | * | 5 | = |. Кроме того, в калькуляторе использовались скобки до восьми уровней. Еще этот калькулятор - единственный калькулятор, который вместе со своим настольным братом МК-41, имеет клавишу /p/. Эта клавиша использовалась для вычислений по формуле sqrt (x^2 + y^2).
В 1977 году была разработана микросхема К145ИП11, которая породила целую серию калькуляторов. Самым первым из них был очень известный калькулятор Б3-26 (на рисунке справа). Как и с калькуляторами Б3-09М, Б3-14 и Б3-14М, а также с Б3-18А и Б3-25А, с ним поступили также - удалили некоторые функции.
На основе калькулятора Б3-26 были сделаны калькуляторы Б3-23 с процентами, Б3-23А с квадратным корнем, Б3-24Г с памятью. Кстати, калькулятор Б3-23А впоследствии стал самым дешевым советским калькулятором с ценой всего в 18 рублей. Б3-26 вскоре стал называться МК-26 и появился его сводный брат МК-57 и МК-57А с аналогичными функциями.
Светлановский завод также порадовал своей моделью С3-27, которая, правда, не прижилась, и ее вскоре заменила очень популярная и дешевая модель С3-33 (МК-33).
Еще одним направлением в развитии микрокалькуляторов стали инженерные Б3-35 (МК-35) и Б3-36 (МК-36). Б3-35 отличался от Б3-36 более простым дизайном и стоил на пять рублей дешевле. Эти микрокалькуляторы умели переводить градусы в радианы и наоборот, умножать и делить числа в памяти.
Очень интересно эти калькуляторы вычисляли факториал - простым перебором. На вычисление максимального значения факториала в 69 на микрокалькуляторе Б3-35 уходило более пяти секунд.
Эти калькуляторы были очень популярны у нас, хотя и обладали, на мой взгляд, некоторым недостатком: они показывали на индикаторе ровно столько значащих разрядов, сколько об этом сказано в инструкции. Обычно их пять-шесть для трансцендентных функций.
На основе этих калькуляторов был сделан настольный вариант МК-45.
Кстати, многие карманные инженерные калькуляторы имеют своих настольных братьев. Это - калькуляторы МК-41 (С3-15), МКШ-2 (Б3-30), МК-45 (Б3-35, Б3-36).
Калькулятор МКШ-2 - единственный "школьный" калькулятор выпускавшийся нашей промышленностью за исключением больших демонстрационных, о которых будет сказано ниже. Этот калькулятор, как и калькулятор Б3-32 (на рисунке слева), умел вычислять корни квадратного уравнения и находить корни системы уравнений с двумя неизвестными. По дизайну этот калькулятор полностью идентичен калькулятору Б3-14.
Особенность калькулятора, кроме описанных выше, - все надписи на клавишах выполнены по иностранным стандартам. Например, клавиша записи числа в память обозначалась не "П" и не "x->П", а "STO". Вызов числа из памяти - "RCL".
Несмотря на возможность работы с числами с большими порядками, на этом калькуляторе использовался восьмиразрядный дисплей, такой же как и в Б3-14. Получалось, что если отображать число с мантиссой и порядком, то на индикаторе умещается только пять значащих цифр. Чтобы решить эту проблему в микрокалькуляторе использовалась клавиша "CN". Если, к примеру, результатом вычислений являлось число 1.2345678e-12, то на индикаторе оно отображалось как 1.2345-12. Нажав | F | CN |, видим на индикаторе 12345678. Запятая при этом гаснет.
Первый советский программируемый калькулятор
В конце 1977 был разработан, и в начале 1978 года поступил в продажу первый советский программируемый микрокалькулятор Б3-21 (на рисунке справа). Это был еще один большой шаг вперед. До этого людям приходилось по многу раз повторять вычисления, в калькуляторах было максимум три регистра памяти. Теперь же появилась возможность самому писать программы и хранить несколько чисел в памяти. Термин "программируемый калькулятор" вызывал благоговение и некоторую дрожь в голосе. Это был очень дорогой калькулятор - он стоил целых 350 рублей! Вскоре микрокалькулятор был удостоен знака качества.
Первые модели микролькулятора Б3-21 выпускались с индикатором на красных светодиодах. Запятая занимала отдельный разряд. Затем индикатор поменяли на зеленый катодо-люминисцентный, из-за чего он стал работать на 20% медленнее.
Микрокалькулятор работает с обратной польской нотацией, то есть сначала вводятся два числа, а затем вводится операция. После ввода первого числа необходимо нажать стрелку вверх . Кроме двух операционных регистров X и Y микрокалькулятор имеет кольцевой стек, состоящий из шести регистров. Стек чисел соединен с регистром X. Для кольцевого перемещения чисел в стеке используются специальные клавиши перемещения чисел в стеке - по часовой стрелке и против часовой. Кроме кольцевого стека в калькуляторе предусмотрены еще семь регистров с номерами от 2 до 8.
Калькулятор имеет две префиксных клавиши - F и P. Клавиша F является префиксной для операций, обозначенных черным цветом, клавиша P - обозначенных красным. Префиксные клавиши также используются для записи и извлечения чисел из регистров. Для записи используется клавиша P, а для чтения - клавиша F.
Но я же не сказал о главной особенности калькулятора Б3-21 - способности программировать! В микрокалькуляторе есть 60 шагов программы, причем адреса записываются по модулю шесть, то есть адреса идут в следующем порядке: 00, 01, 02, 03, 04, 05, 10, 11 и так далее. Каждая клавиша имеет свой код операции. Калькулятор имеет функции безусловного перехода, перехода на подпрограммы, а также переходы по условию. Клавиши ветвления (переходов) используют две ячейки памяти калькулятора - одну ячейку занимает код операции, а другую - адрес перехода. Требуемый адрес перехода получается, исходя из кода клавиши, которая нажимается после нажатия клавиши перехода, плюс 1. Например, чтобы безусловно перейти на адрес 33, необходимо нажать клавиши БП и 3 (код 34). Коды операций брались из таблицы.
Первый программируемый калькулятор сразу стал очень популярен в стране. Теперь пользователь мог не только писать сложные программы, но даже играть в игры с калькулятором. Это было неслыханное нововведение! Начала выпускаться литература по технике программирования на программируемом микрокалькуляторе. Слева на рисунке - очень популярная книжка тех времен, посвященная играм и полезным программам с использованием калькулятора Б3-21.
Появление программируемого микрокалькулятора Б3-21 позволило даже организовать управление производственным процессом. Были выпущены настольные варианты этого калькулятора - МК-46 и МК-64 (рисунок справа). Это были большие настольные калькуляторы, имевшие на задней части корпуса специальные разъемы. Был введен дополнительный регистр 9, в который записывался, так называемый "код эксперимента". В этих калькуляторах возможен ввод данных как с клавиатуры, так и от внешних устройств (датчиков, аналого-цифровых преобразователей и пр.), они могут осуществлять контроль допусковых величин вводимых данных и печатать данные и результаты их обработки при помощи внешнего устройства. МК-64 отличается от МК-46 наличием встроенного цифро-аналогового преобразователя. Многие микрокалькуляторы МК-64 были установлены в кабинетах физики специальных физико-математических школ, так как они могли, скажем, измерить напряжение от батарейки.
Самый известный микрокалькулятор
Первые программируемые калькуляторы Б3-21, МК-46 и МК-64, хоть и работали по программе, но имели всего два операционных регистра X и Y, а работа с кольцевым стеком была очень неудобной. И вот, в 1980 году на смену микрокалькулятора Б3-21 пришел программируемый микрокалькулятор Б3-34 в ценой 85 рублей. Это был еще один шаг вперед! У него был стек, состоящий из четырех регистров, 98 шагов программной памяти, 14 регистров памяти вместо семи у Б3-21, а самое главное - возможность организации циклов и работа с индексными регистрами. С калькулятором стало работать - одно удовольствие.
Вскоре появились аналоги Б3-34 - МК-54, сделанный в более красивом дизайне, и стоивший на 20 рублей дешевле за счет использования источников питания другого типа. Был также разработан настольный вариант - МК-56.
Один за другим известные научно-популярные журналы стали учить работать с калькулятором. Это - журналы "Наука и Жизнь", "Техника-Молодежи" и "Химия и Жизнь". В "Науке и Жизни", начиная с октября 1983 года появился специальный раздел "Человек с микрокалькулятором", где рассказывалось как работать с Б3-34, а также приводилось большое количество полезных и игровых программ. Журнал "Техника - Молодежи", начиная в 1985 году сначала провел курс программирования на Б3-34 под названием "Калькулятор - Ваш помощник", а затем организовало "Клуб Электронных Игр", в котором печатались увлекательнейшие фантастические рассказы "Истинная Правда" и "Путь к Земле", где читателям предлагалось самим "освоить" технику "приземления" на лунную поверхность и осуществить полет с Луны на Землю на не приспособленном для таких полетов корабле местных лунных линий "Кон-Тики". Школьники и взрослые пользователи микрокалькулятора с нетерпением ожидали очередного номера "Техники-Молодежи", чтобы продолжить полет к Земле.
Микокалькулятор работает по обратной польской нотации, то есть сначала вводится первое число, нажимается клавиша , вводится второе число и нажимается клавиша с необходимой операцией. То есть, чтобы умножить 2 на 3, надо нажать клавиши: (результат - 6). Для хранения операндов используется стек, состоящий из четырех регистров - X, Y, Z, T. При вводе числа после получения результата и при извлечении числа из регистра памяти (0..9, A..D), содержимое регистра X, который является отображением индикатора, сдвигается в регистр Y, значение Y - в Z, а Z - в T. При выполнении операций в качестве операндов используются, в основном, регистр X и Y.
В режиме программирования код каждой команды занимает одну ячейку памяти. Команды ветвления (переходы, циклы, условия) занимают две ячейки. Одна ячейка - код операции, вторая - адрес перехода. В отличие от Б3-21, адрес перехода задается при помощи цифровых клавиш, а не при помощи ввода операции с нужным кодом. Например, для того чтобы ввести команду перехода на адерс 33, надо было ввести | БП | 3 | (клавише 3 соответствовал код 34). В микрокалькуляторе Б3-34 теперь надо просто ввести | БП | 3 | 3 |. Хотя теперь и надо было вводить на одну клавишу больше, зато не надо сверяться с кодами операции по таблицам.
Более подробно о том, как работать с калькулятором Б3-34, описано на специальной страничке, посвященной работе с Б3-34, которая расположена здесь.
Однако, самое интересное в калькуляторах Б3-34, и его аналогах - наличие недокументированных возможностей, которые помогали не только в написании программ, но и формировать специальные видеосообщения. Недокументированных особенностей в этих микрокалькуляторах оказалось настолько много, что заслуживают написания отдельной статьи. О недокументированных возможностях Б3-34 и его аналогов можно ознакомиться здесь.
Микрокалькулятор Б3-34 и его аналог МК-54 и МК-56 стали настолько популярными, что разработчики из Киевского завода "Кристалл" решили продолжить эту линию калькуляторов и в 1985 году выпустили новые модели МК-61 и МК-52. В них добавлен один регистр памяти, стало 105 шагов программной памяти и добавлен еще десяток функций. Микрокалькулятор МК-52, кроме того, имел память на 512 ячеек, которая не стиралась при выключении питания, и в которую можно было записать как программу, так и данные. В микрокалькуляторе МК-52 имелся также специальный разъем для подключения уже готовых модулей с программами, выпускавшихся под общим названием БРП (блок расширения памяти). При разработке блоков БРП разработчики опять убили сразу двух зайцев, запаяв в блок матрицу с двумя наборами программ. Установив перемычку, скажем, в положение 1, получаем блок БРП-3 с математическим набором программ, а перепаяв перемычку на положение 2 - блок БРП становится астронавигационным БРП-2. Гарантия, правда, на блок при этом терялась, так как приходилось откручивать винт с пломбой. Об этом было сказано в одном из номеров "Науки и Жизни", где один из читателей поделился об этом с редакцией, которому в свою очередь об этом рассказал один из разработчиков из НПО "Кристалл". Представляю, что было потом с этим разработчиком.
Кстати, микрокалькулятор МК-52 летал в космос на корабле "Союз ТМ-7", где его предполагалось использовать для рассчета траектории посадки в случае, если испортится бортовой компьютер.
Поздние модели микрокалькуляторов
Первые микрокалькуляторы потребляли очень много энергии от батареек, работы которых хватало от силы на два часа автономной работы. 220 вольт под рукой бывает не всегда, а без проблем купить батарейки можно было только в крупных городах. Поэтому инженеры-разработчики начали разрабатывать микрокалькуляторы, которые бы очень мало энергии от батареек. К тому времени уже были изобретены индикаторы на жидких кристаллах, которые отличались пониженным энергопотреблением.
Вторым микрокалькулятором на жидких кристаллах после Б3-04 стал микрокалькулятор Б3-30 (на рисунке слева), разработанный в 1978 году и потреблявший 8 миливатт (для сравнения, калькулятор Б3-26 потреблял 600 мВт). В этом калькуляторе была несвойственная советским калькуляторам функция вычисления обратной величины числа, имеющаяся практически во всех современных простых калькуляторах. Чтобы вычислить 1/5, надо нажать | 5 | -:- | = |. Через год микрокалькулятор Б3-30 заменил Б3-39, в котором использовалась новая низкопороговая микросхема. Потребляемая мощность уменьшилась в восемь раз и составила всего один миливатт. В этом калькуляторе уже можно было обойтись без преобразователя напряжения.
Еще через год, к Московской олимпиаде 1980 года был выпущен микрокалькулятор МК-53, имеющий на борту часы с будильником и секундомером. В этом микрокалькуляторе требовалось на одну батарейку меньше, чем в Б3-39. Это стало возможным за счет использования еще более низкопороговой микросхемы К145ВВ3-2, которая к тому же стала "бескорпусной".
Новой вехой в калькуляторостроении стало появление микрокалькулята с питанием от солнечных элементов МК-60. В общем-то, обычный калькулятор, имеет один регистр памяти, кроме солнечных батарей ничего в нем особенного нет.
Инженерная мысль тоже на месте не стояла, и, решая задачу микроминиатюризации, в 1979 году разработан новый сверхмаленький, но очень умный микрокалькулятор Б3-38. В него вошли все последние достижения микроэлектроники. Его размеры были самыми маленькими - 91х55х5.5 мм.
Он умел не только быть инженерным, но и производил статистические расчеты. Калькулятор имел две префиксные клавиши - F1 и F2. Скоро появился аналогичный калькулятор, но с размерами побольше - МК-51. Скоро он стал очень популярным, хотя у него был существенный недостаток - выключатель питания, который все время плохо включался. Это было из-за того, что наши инженеры догадались сделать механизм включения, состоящий из полукруглого ползунка, который замыкал дорожки печатного монтажа на плате. Разумеется, со временем дорожки окислялись или стирались, и контакт становился плохим.
В этих микрокалькуляторах был впервые применен метод вычисления элементарных функций по методу "цифра за цифрой", который стал сменил разложение в ряд Тэйлора и стал фактическим стандартом почти для всех современных калькуляторов во всем мире, кроме как у нас. В двух словах, метод "цифра за цифрой" можно отнести как к итерационным, так и к табличным. Он характеризуется простотой выполнения операций (алгебраическое сложение и сдвиг), значительным совпаданием алгоритмов для различных функций и, самое главное, достаточно высоким быстродействием и точностью вычислением. Погрешность вычислений при 8-разрядном аргументе составляет всего +- 1 в седьмом-восьмом разряде.
И, наконец, одной из самых последних моделей среди инженерных микрокалькуляторов стал микрокалькулятор МК-71 с питанием от солнечных элементов. Он по сути является продолжением серии Б3-38 и МК-51. В этом калькуляторе, в отличие от Б3-38 и МК-51, используется алгебраическая логика вычислений, такая же как и в С3-15, есть пять уровней скобок, возможность работы с простыми дробями и представлять результат вычислений в градусах, минутах и секундах, имеются гиперболические функции и механизм округления результата к требуемой точности. К тому же этот калькулятор - десятиразрядный.
Есть еще одно направление развития калькуляторов - демонстрационные калькуляторы. По сути дела, это обычные микрокалькуляторы, в которых применены большие индикаторы и кнопки, включая герконовые, на кооторые "нажимали" при помощи магнитной указки. У меня сохранилась только одна фотография демонстрационного калькулятора, сделанного на основе МК-36. В свое время я подарил в школу, где учился, демонстрационный калькулятор размерами метр на полтора, совместимый с МК-54, но его в конце августа выбросили на помойку...
Микрокалькуляторы - микрокомпьютеры
В начале 80-х годов все больше становится персональных компьютеров. В 1983 году появляется первый Советский персональный компьютер "Агат" с процессором 6502, в некоторых школах начинают преподавать языки программирования.
В 1986 году появляется первый советский микрокалькулятор с языком программирования "Бейсик" - "Микрокомпьютер "Электроника МК-85". Стоит он недешево - 145 рублей, но все равно сразу сметается с прилавков фирменных магазинов "Электроника" с Москве и Ленинграде, стоит ему появиться. Только к 1988 году его можно будет спокойно купить в магазине. Это - неспроста - в калькуляторе есть "Бейсик" - язык программирования настоящих компьютеров!
МК-85 выпускался в двух вариантах - с килобайтом памяти (МК-85) и с шестью (МК-85М). Микрокалькулятор имел особенность - работал с числами, у которых порядки достигали +- 4096 степени. Правда, брать синус от числа с порядком, близким к 4096, могло привести не только к зависанию, но и к пропаданию уже введенных программ. Программы, кстати, не стирались из памяти калькулятора после его выключения - тоже новинка. В обычном режиме калькулятор работает о-о-о-чень медленно. Так например, для вычисления синуса от числа 3 ему требуется целых 3.5 секунды. Микрокалькулятор можно перевести с режим "ускоренных вычислений". Для этого в момент его включения нужно нажать клавишу "+". Тогда он считает очень быстро. Тот же синус он "берет" уже за 0,5 секунды, но при этом батарейки буквально "истлевают" на глазах, и их очень скоро нужно менять. Такой режим работы рекомендуется при работе от внешнего источника питания.
В калькуляторе есть 16-разрядный индикатор, и в одной строке может уместиться до 63 символов. Предусмотрен ввод до 10 программ пользователя, причем введенную программу можно отлаживать в режиме отладки. Кроме того в калькуляторе есть 26 регистров памяти, число которых может быть увеличено за счет уменьшения памяти для программ.
Очень интересно, что в таком перспективном калькуляторе элементарные математические функции вычисляются разложением в ряд Тэйлора, а не по методу "Цифра за цифрой", что несколько странно. Хотя многое странное может стать совершенно понятным, если вы дочитаете эту статью до конца.
И, наконец, завершает наш исторический экскурс с мир микрокалькуляторов - супер-калькулятор МК-90 - детище минского завода "Кристалл". У меня очень мало информации по этому калькулятору по причине отсутствия его в моем распоряжении. Скажу только, что это калькулятор с бейсиком, и большим графическим экраном. Он имеет 16-разрядный процессор, совместимый с Электроникой 60, ОЗУ - 16 кбайт, ПЗУ - 16 кбайт (пользователю доступно 11824 байт). Дисплей - 120 х 64 точек (8 строк по 20 символов).
На этом эволюция микрокалькуляторов завершается, как бы нам этого ни хотелось. Минский завод "Кристалл" продолжает выпускать МК-90, выпускает еще несколько простых калькуляторов серии MC. Наши российские заводы, похоже, полностью свернули производство микрокалькуляторов. Импортные модели давно убежали далеко вперед. Для них нормой стало наличие 32 килобайт памяти, большой графический, или даже цветной дисплей, связь с компьютером и приличное быстродействие.
Редкие модели микрокалькуляторов
К редким моделям микрокалькуляторов следует отнести не очень старые модели калькуляторов, которые давно уже снесли на помойку, а модели, которые были выпущены только пробными партиями, или которые очень быстро были сняты с производства. В основном, у меня очень мало информации о таких калькуляторах, иногда даже информация получена всего лишь из упоминания в книгах.
Первая редкая модель микрокалькуляторов - Б3-18. Сразу после ее выпуска появилась Б3-18А, а Б3-18 снята с производства. То же самое можно сказать и о Б3-19 (Б3-19М). Были выпущены опытные партии микрокалькуляторов с красным индикатором в виде светоизлучающих диодов. Это модели Б3-26А, Б3-36А.
Очень редкая модель - единственный советский микрокалькулятор с печатающим устройством - МК-40. Также хочу упомянуть и о МК-47. Этот калькулятор сделан в аналогичном корпусе с Б3-21, и позволял записывать программы пользователя на магнитные карты.
Среди поздних моделей пробными партиями в 1982 году (!) был выпущен микрокалькулятор "Электроника СП", который представлял собой карманный словарь-переводчик. Он хранил в памяти по 1000 слов из русского, английского и немецкого языков. Помимо этого в нем был калькулятор, просмотр всех слов, начинаюзихся с любой буквы, вызов на индикатор одной из 52 законченных или незаконченных фраз, а также вызов слов и фраз по 11 темам. У калькулятора был 15-сегментный 16-разрядный индикатор и работал только от пяти вольт. Это устройство было сделано на основе однокристального микропроцессора К1801ВЕ1 и имело 64кбит ПЗУ типа К596РЕ1.
Ошибки и особенности микрокалькуляторов
Немного об ошибках и особенностях. Учитывая специфику разработки советских микрокалькуляторов, включая геополитические аспекты, может стать ясно, что если наши разработчики разрабатывали микрокалькулятор сами, не опираясь на результаты послойного сканирования микросхем импортных аналогов, то они постоянно вносили какую-то изюминку в их работу. Это были как ошибки в вычислениях микрокалькуляторов, так и интересные находки.
В семействе калькуляторов серии Б3-26 (Б3-23, Б3-24Г, МК-57), например, признаком наличия числа в регистре памяти являлось свечение точки в самом левом неиспользуемом разряде. Кроме этого, этот микрокалькулятор прекрасно вычислял квадратные корни из отрицательных чисел. Корень от -4 был равен -2. И никаких сообщений об ошибках.
В микрокалькуляторе Б3-32, разработчики, увидев, что на индикаторе есть незадействованная точка слева, решили ее задействовать. У этой модели точка слева загорается при нажатии клавиши. Нажали - загорается, отпустили - гаснет. Больше - ничего.
В микрокалькуляторах семейства Б3-35 (Б3-36, МК-66, МК-45) разработчики додумались вычислять факториал методом перебора, позабвы при этом блокировать клавиатуру при сообщении об ошибках до сброса.
В микрокалькуляторе Б3-21 разработчики включили функцию , результатом которой в регистр Y помещался синус аргумента, а в регистр X - косинус. Простым делением получаем тангенс. Очень удобно.
Однако, в первых выпусках этих калькуляторов наблюдалась ошибка: при сложении числа, содержащего в мантиссе семь девяток, а в восьмом разряде, который не индицируется - цифра, большая четырех, возникает ошибка. В этих моделях если сложить 9.9999999 и 10 получается 120.
При выполнении сложных операций вроде синуса мог испортиться один из регистров кольцевого стека. Для проверки после включения калькулятора можно набрать | 2 | P | sin | P | , |. Если на индикаторе загорается 1. -00, то калькулятор имеет такую ошибку.
Ну, и некоторые модели неправильно переходили (точнее, не переходили) на подпрограмму, если оператор ПП занесен в ячейку программной памяти с адресом 55, 65, 70, 80, 91 и 92, и выполняется оператор, код которого равен указателю перехода к подпрограмме. Немного непонятно, но если по адресу 55 стоит | ПП | 9 | 9 | C/П |, то вместо того, чтобы перейти на адрес 93 (код клавиши | 9 | - 94), калькулятор занесет в регистр X число 99, то это может вызвать легкое недоумение по причине нервного срыва у человека, который уверен, что написал программу правильно.
Любопытные пользователи могут найти в калькуляторе МК-71 одну очень примечательную особенность. Она связана с переключением переключателя градусов-радианов-градов в среднее положение - между градусами и радианами или между радианами и градами. Кто бы мог додуматься до этого! При этом калькулятор переходит в очень необычный режим работы, напоминающий работу с калькулятором МК-51.
Во-первых, теперь числа в микрокалькуляторе имеют мантиссу длиной 8 вместо десяти, хотя недостающие разряды хранятся в памяти, но не видны. Во-вторых, некоторые кнопки управления имеют другое значение!
Клавиша с изображением градусов теперь вычисляет обратное значение числа, в сочетании с клавишей F - факториал. Клавиша 1/x - переключает способ вычисления тригонометрических функций (градусы-радианы-грады). На индикаторе они отображаются соответственно значками "F", "П", "K"! В сочетании с клавишей "F" клавиша 1/x теперь входит в режим статистических вычислений. Клавиша "hyp" теперь вводит информацию в градусах, минутах и сукундах, и обратно в сочетании с клавишей "F". Для индикации числа, находящегося в памяти, режима клавиши "F" и вычисления с константой используются сегменты самого левого разряда.
Ну и, конечно, всем известный Б3-34. Этот калькулятор имеет самое большое количество ошибок и особенностей в работе. Укажу только на некоторые ошибки, которые в одной книге были названы особенностями, которые "...являются следствием не ошибок разработчиков микрокалькулятора, а их попыток найти компромисс между требованиями математического обеспечения и простоты конструкции".
В программируемом режиме работы не выполняются функциональные операторы перед оператором /-/ изменения знака.
После выполнения подпрограммы, заканчивающейся некторыми операторами, вместо оператора В/0, выполняется следующий за ним оператор. Вот такая "особенность".
Оператор x^Y выполнялся неверно при некоторых значениях операндов. Для примера можно ввести | 5 | 5 | 5 | 5 | | Х | 4 | | F | X^Y|. Если высвечивается 39.062487, то оператор x^y вычисляется неправильно.
Эти - то ошибки в последствии были исправлены, но остались ошибки возведения отрицательных чисел в целую степень, калькулятор МК-61 и МК-52 считали ноль самым большим в мире числом при вычислении функции нахождения максимального из двух чисел | K | max |.
Словом, "наши" постарались.