Развитие вычислительной техники в СССР имело свои особенности и разительно отличалось от ситуации на Западе. Если там компьютеры широко шагнули в массовый сегмент в конце 70-х годов, то в СССР практически до самого его распада компьютер был средством роскоши и ни о какой массовой доступности их говорить не приходилось. На этом фоне достаточно ярким и самобытным явлением оказался феномен программируемых калькуляторов, которые оказались единственной доступной заменой компьютерной технике и использовались далеко не по прямому назначению.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Надо сказать, что программируемый калькулятор не был в те годы чем-то необычным, на Западе это был один из утилитарных инструментов призванный облегчить сложные инженерные и финансовые расчеты там, где применение компьютеров было экономически нецелесообразно. В СССР, выпуская программируемые калькуляторы (ПМК) руководствовались ровно теми же соображениями, но советская реальность заставила посмотреть на использование ПМК совершенно с иной стороны.
В условиях отсутствия на рынке доступных моделей бытовых ПК и дефицита радиодеталей для их самостоятельной сборки по чертежам энтузиастов, что помимо деталей требовало еще определенного опыта, программируемые калькуляторы оказались единственными доступными для широких масс экземплярами вычислительной техники. Ну как сказать доступными, средняя заплата инженера на производстве в середине 80-х составляла 120-180 руб., тогда как стоимость программируемых калькуляторов лежала в пределах 65-100 руб. Достаточно недешевое удовольствие, сравнимое с покупкой современного ПК среднего уровня.
А дальше произошло то, что и должно было произойти в условиях дефицита и способности советских граждан выкручиваться, опираясь на доступные средства. Программируемый калькулятор вместо прикладного инструмента стал выполнять роль бытового компьютера, взяв на себя не только вычислительные, но и развлекательные функции. По сути, это один из советских феноменов, на Западе никому и в голову не могло прийти использовать ПМК в качестве развлекательного устройства, для этих целей там давно существовал рынок компьютеров и приставок.
А у нас приходилось приспосабливать под эти цели то, что имелось в наличии, хотя и отечественных разработчиков ПМК такое применение их продукции тоже должно было удивить. Тем не менее именно ПМК открыли многим дорогу в мир вычислительной техники и позволили самостоятельно освоить навыками программирования и выработать алгоритмическое мышление. А достаточно жесткие ограничения по ресурсам заставили крайне серьёзно подойти к вопросам оптимизации.
Но прежде, чем перейти к следующей части нашего повествования следует обратить внимание на одну существенную особенность всех советских (и не только советских) программируемых калькуляторов.
ПОЛИЗ
Польская инверсионная запись, она же Обратная польская запись или Обратная бесскобочная запись - вид математической нотации, когда знаки математических операций записываются после операндов. С точки зрения вычислительной техники мы имеем вычисления на стеке, где стек - это вариант организации данных в памяти в виде однонаправленного списка по принципу LIFO (последний пришел - первый вышел). В нашем случае мы записываем в стек первый операнд, затем второй, первый при этом продвигается вглубь стека, затем выполняем операцию и получаем результат, который поднимается по стеку вверх. В зависимости от глубины стека мы можем довольно просто реализовывать операции различной степени сложности.
Например, выражение:
3(2 + 1) + 4
В польской обратной записи будет выглядеть как:
2 | 1 + 3 * 4 +
А при наличии достаточной глубины стека можно и вообще написать:
4 | 3 | 2 | 1 + * +
Где символ | - команда помещения в стек, при добавлении в стек каждого нового числа предыдущее опускается на уровень ниже, а при исчерпании глубины стека просто вытесняется. Операции производятся над двумя верхними уровнями стека, при этом результат помещается на самый верх, а остальные значения поднимаются на уровень выше.
На первый взгляд - непривычно, но на самом деле ПОЛИЗ позволял значительно упрощать сложные выражения, что было важно для ограниченной ресурсами вычислительной техники того времени. И каждый кто начинал программировать на калькуляторах очень скоро проникался всеми преимуществами данной нотации.
Ну и нельзя не вспомнить старый прикол, когда кто-то из коллег просил калькулятор посчитать по-быстрому: ой, а где тут равно???
Сегодня, возможно, не все поймут этот прикол, но на ПМК не было кнопки "равно", потому как ПОЛИЗ ее не предусматривает. Так если на классическом калькуляторе нам надо было выполнить для получения результата:
2 + 3 =
То на ПМК:
2 | 3 +
И если на простых выражениях разница неочевидна, то на сложных ПОЛИЗ позволял серьезно упростить вычисления с точки зрения количества операций и снимал большую часть вопросов по хранению промежуточных результатов.
Первое поколение
К первому поколению ПМК относится Электроника Б3-21, разработанный в 1975 и серийно производившийся с 1977 по 1982 год. На момент появления в продаже стоил 350 рублей, затем цена последовательно снижалась до 190, 80 и 64 рублей. Калькулятор имел два операционных регистра (стек) X и Y (они же Р0 и Р1), семь регистров для хранения данных Р2 - Р8 и объединенный с регистром X кольцевой двунаправленный стек на шесть регистров С1 - С6. Память калькулятора позволяла размесить в нем 60 шагов программы, быстродействие составляло 3-4 команды в секунду.
Первоначально калькулятор выпускался с красным светодиодным индикатором, который был позже заменен на зеленый вакуумно-люминесцентный, для питания использовались 4 элемента АА или блок питания. Следует отметить, что ввиду хронического дефицита и отвратительного качества батареек в СССР основным и единственным режимом работы ПМК был от блока питания.
Для своего времени возможности калькулятора были огромными, практически это был компактный и современный мини-компьютер, он широко применялся во всех отраслях народного хозяйства для решения сложных инженерных задач, в том числе медицине и космонавтике.
Одновременно с ним выпускалась и настольная версия калькулятора Электроника МК-46 (1981-1984, 235 руб.), которому позже пришел на смену Электроника МК-64 (1984-1987, 270 руб.), от компактного аналога они отличались только большим числом шагов программы - 66 вместо 60.
Источник изображения: http://www.leningrad.su/museum
При этом у обычных граждан или как бы мы сказали сейчас - домашних пользователей калькуляторы первого поколения популярностью не пользовались и их распространение было невелико. В первую очередь сказалась высокая цена, не каждый готов был отдать за калькулятор одну-две месячные зарплаты, а потом, после снижения цены покупка Б3-21 также оказалась лишена смысла, так как в продаже появились относительно недорогие и куда более продвинутые калькуляторы второго поколения.
Второе поколение
В 1980 году в продаже появился калькулятор второго поколения Б3-34 по цене 120 руб., позже цена была снижена до 85 руб., что сделало данную модель доступной самым широким массам. По сравнению с первым поколением это также был серьезный рывок вперед. Новый калькулятор имел операционный стек на 4 регистра - X, Y, Z и T, а также регистр для хранения предыдущего результата X1, 98 шагов программы и 14 регистров хранения данных. Поддерживалась прямая и косвенная адресация, циклы и подпрограммы.
Первые 7 регистров являются модифицируемыми, при косвенном обращении к ним регистры Р0 - Р3 уменьшают свое значение на единицу, а Р4-Р6 увеличивают, при грамотном подходе это позволяло существенно экономить шаги программы. Питание калькулятора осуществлялось от достаточно дорогих и редких никель-кадмиевых аккумуляторов Д-0,55С или блока питания.
Уже после первого взгляда на возможности Б3-34 становится понятно почему калькуляторы первого поколения, даже после снижения цены на Б3-21 оказались никому не интересны. А существенное изменение структуры памяти и стека сделало программы для первого поколения несовместимыми со вторым, как и наоборот.
Практически сразу калькулятор приобрел необычайную популярность и кроме народного хозяйства широко применялся в быту и образовании. Освещением его использования занимались научно-популярные журналы, причем рассматривалось не только "серьезное" программирование, для решения прикладных задач, но и развлекательное. В школах для обучения программированию использовались специальные стенды в виде большого Б3-34.
Можно смело сказать, что Б3-34 стал стандартом де-факто для советского ПМК и все дальнейшие разработки велись по расширению уже существующих возможностей. Выпускался калькулятор тоже достаточно долго, до 1986 года. Но уже в 1982 году свет увидела новая модель - Электроника МК-54 по цене всего 65 рублей, которая стала возможной благодаря отказу от аккумуляторов и переход на элементы АА для питания устройства.
А еще МК-54 получил элегантный современный корпус и трехпозиционный переключатель Радианы - Грады - Градусы, данный переключатель очень часто использовался не по прямому назначению, а как удобный элемент управления в играх и даже прикладных программах. В остальном по возможностям это был все тот же Б3-34. Выпускалась данная модель до 1985 года.
Источник изображения: http://www.leningrad.su/museum
Начиная с 1981 года также выпускалась настольная версия калькулятора Электроника МК-56 с питанием от сети переменного тока, это была самая дорогая модель, в продажу она поступила по цене в 126 руб., а потом подорожала до 150 руб. Также этот калькулятор оказался настоящим долгожителем своего поколения, его производство продолжалось до 1993 года. По функциональным возможностям данный ПМК ничем не отличался от других калькуляторов второго поколения.
Подводя краткий итог можно смело сказать, что именно калькуляторы второго поколения широко шагнули в массы и создали феномен программируемого калькулятора, который практически взял на себя функции персонального компьютера для многих советских граждан и послужил первым шагом в мир вычислительной техники и программирования.
Третье поколение
В 1985 году появился Электроника МК-61 - программируемый калькулятор третьего поколения, который имел расширенную систему команд, 105 шагов программы и 15 регистров для хранения данных. Калькулятор был полностью обратно совместим с калькуляторами второго поколения, что позволяло на нем без изменения запускать написанные для них программы. Однако за счет новых возможностей третье поколение получилось гораздо более эффективным, так для того, чтобы переписать программу третьего поколения на языке Б3-34 понадобилось бы примерно 140 -150 шагов программы и 18 регистров памяти.
Калькулятор выпускался в современном темном корпусе как у МК-54, и его цена в начале продаж составила 70 руб., но потом была повышена до 85 руб., выпускалась данная модель до 1991 года.
Одновременно с MK-61 был выпущен еще один калькулятор третьего поколения Электроника МК-52, отличительной особенностью которого стала встроенная ППЗУ объемом 4 кбит и количеством циклов перезаписи 10 000, которая позволяла сохранить до 512 шагов программы или содержимое 72 регистров памяти. Он стал первым и единственным советским калькулятором с энергонезависимой памятью, что естественно сказалось на его цене - 99 руб. 50 коп. с последующим подорожанием до 115 руб. Выпускался калькулятор в оригинальном широком корпусе, выполненном в общем стиле с МК-61.
Также для данной модели выпускались специальные картриджи - БРП (блок расширения памяти), которые представляли собой ПЗУ с предварительно записанными программами. Всего производилось 4 типа картриджей:
- БРП-2 "Астро" с набором программ для решения навигационных задач, выпускался с 1988 года, в розничную продажу не поступал;
- БРП-3 - 60 программ для решения математических задач. Поступил в продажу в 1988 году по цене 16 рублей;
- БРП-4 - программы игрового, спортивно-профессионального и бытового характера, выпушен в 1989 году;
- БРП "Гео" - содержал разнообразные математические функции, в розничную продажу не поступал.
Калькулятор получил широкое распространение в народном хозяйстве, вместе с БРП-2 поставлялся на корабли Военно-морского флота в качестве штурманского вычислительного комплекта и даже слетал в космос на борту Союз ТМ-7 с блоком астронавигационных программ в качестве резерва бортового компьютера. Выпускалась данная модель до 1994 года, но долгое время была достаточно дефицитной.
В целом третье поколение можно считать лебединой песней советского калькуляторостроения. По тем временам это были действительно выдающиеся и многофункциональные устройства с большим количеством как документированных, так и недокументированных возможностей, о которых мы поговорим ниже.
Клуб электронных игр
В отсутствие доступной компьютерной техники советские граждане быстро нашли ей замену, возможно и не полноценную, но вполне удовлетворяющую базовый спрос на вычислительную технику и электронные развлечения. А с электронными развлечениями в те времена было плохо, с 1984 года выпускалась серия электронных игр Электроника ИМ, более известная как "волк ловит яйца" и аналогичные ей. Но стоило такое устройство достаточно дорого - 25 руб.
Поэтому быстро был найден доступный аналог - программируемые калькуляторы второго поколения, которые позволяли реализовывать достаточно сложные игровые алгоритмы, единственный минус - отсутствие наглядности, но это с лихвой перекрывалось достоинствами в виде универсальности, ведь калькулятор позволял играть в игры самого разного жанра или писать свои.
В январском номере популярного журнала Техника-Молодежи за 1985 год появилась новая рубрика "Для всех профессий", которая обучала работе с программируемым калькулятором Б3-34 и хотя подобные рубрики были в других журналах, например, Наука и жизнь именно Техника-Молодежи дала старт электронным играм на ПМК в масштабах всей страны.
Но просто так программировать не интересно, поэтому в июньском номере ТМ появилась новая рубрика "Клуб электронных игр", первый ее выпуск был в виде довольно неплохого научно-фантастического рассказа, который сопровождался программой для ПМК, позволявшей повторить самостоятельно все события рассказа. Программа называлась "Лунолет -1" и позволяла выполнить мягкую (или не очень) посадку на Луну управляя с помощью калькулятора небольшим космическим кораблем. Публикация произвела настоящий фурор, а "Клуб электронных игр" стал постоянной и одной из самых популярных рубрик журнала.
Затем последовала научно-фантастическая эпопея "Путь к Земле (Кон-Тики)" где главные герои осуществляли перелет с Луны на Землю на небольшом неприспособленном к дальним космическим перелетам лунолете. К каждой главе рассказа прилагалась игровая программа для ПМК, позволявшая повторить все приключения героев. При этом сама эпопея даже сегодня представляет интерес к прочтению в качестве отдельного произведения. В те же времена таким образом компенсировалась низкая наглядность игр на ПМК, ведь следовать за героями произведения куда интереснее, чем просто приземлять случайный лунолет на небесное тело.
Но данная рубрика не была бы столь популярной, если бы в ее работу не включились читатели. Именно благодаря им были созданы и опубликованы игры самых различных жанров: логические, научно-фантастические, экономические, пошаговые стратегии и даже динамические игры в реальном времени. Последние заслуживают особого внимания.
Невысокая производительность ПМК (3-5 операций в секунду) приводила к тому, что когда калькулятор переключался в режим счета, то на экране начинали мерцать промежуточные результаты вычислений. В обычных программах и играх нужно было дождаться окончания вычислений, ознакомиться с результатами, ввести новые данные и повторить цикл вычислений сначала. В динамических играх наоборот, следовало прикрыть экран ладошкой и управлять на экране некоторым объектом в реальном времени, а для управления обычно использовался рычаг переключения Радианы - Грады - Градусы, который позволял вносить изменения, не прерывая выполнения программы.
Также для динамических игр часто использовались нестандартные графические образы, для создания которых широко использовались недокументированные возможности калькулятора.
ЕГГОГология
В целях экономии разработчики калькулятора сильно упростили микрокод, особенно в части обработки ошибок, что привело к целому ряду нестандартных реакций калькулятора и возможности их использования в своих целях. Изучение нестандартных возможностей вылилось в отдельное направление любительских исследований и приобрело название ЕГГОГология.
Оно произошло от выводимого на экран сообщения ЕГГОГ, адаптированного для семисегментного индикатора слова ERROR. Данное сообщение выводилось как при ошибках, так и при превышении верхнего предела вычислений - 9.9999999 * 10^99. Но как оказалось, калькулятор вполне способен работать и с куда большими числами, вплоть до 10^999. Однако работа с ними имела свои специфические особенности.
При вычислениях сверхвысокие числа ничем не отличались от обычных, но вот их вывод на экран имел свои особенности, так числа с показателями степени от 100 до 199 выводили на экран сообщение ЕГГОГ, числа от 200 до 299 - ЗГГОГ, а порядки степени от 500 до 599 получили название "Тьма", при их вызове экран гас, а калькулятор зависал. Другие числа могли перевести калькулятор в режим счета, модифицировали регистры и т.д. и т.п.
Эти возможности широко использовались для получения нестандартных графических символов, которые нельзя было вывести на экран обычным способом, а также для нестандартных вычислений, которые применялись преимущественно в играх. Со временем все эти возможности были сведены в стройную систему и хорошо описаны, так что недокументированные возможности стали очень даже документированы.
Другим направлением исследования стали недокументированные команды, которых не было в инструкции, но которые можно было вызвать с клавиатуры или по коду команды во время исполнения программы. Часть из них тут же вызывала сообщение об ошибке ЕГГОГ, а другая часть выполняла определенные действия, часто повторяя действие других аналогичных команд, но с другим результатом, например, обращение к модифицируемому регистру без изменения его содержимого.
Данные о недокументированных возможностях широко освещались "Клубом электронных игр" Техники-Молодежи и скоро стали одним из самостоятельных направлений, которым занималось большое число читателей, находя все новые и новые возможности, которые тут же применялись в публикуемых играх. Таким образом программируемый калькулятор оказался не просто портативным вычислительным устройством, а целым миром, местами таинственным и неизведанным.
Заключение
С высоты сегодняшнего дня многие вещи смотрятся банальными и примитивными, но в свое время программируемые калькуляторы второго и третьего поколений стали действительно культовой вещью, создав феномен ПМК. Из обычной вычислительной машины небольшой мощности и ограниченных возможностей ПМК превратился в массовый персональный мы хотели сказать компьютер, но не компьютер, но близкое по характеру применения устройство, которое широко использовалось как для работы, так и для развлечений, а также стало объектом глубоких исследований внутреннего устройства.
Пожалуй, больше нигде в мире ни один программируемый калькулятор не пользовался подобным успехом, а сам характер массового увлечения ПМК чем-то напоминает интерес к первым моделям ПК на Западе. Понятно, что истоки данного феномена лежали в массовом дефиците и недоступности вычислительной техники, но ПМК продолжали вызывать интерес, хоть уже и не такой массовый в 90-х и даже нулевых, когда дефицита вычислительной техники не наблюдалось.
Также существуют энтузиасты этого класса техники и сегодня, например, написан целый ряд эмуляторов, которые воспроизводят не только стандартные, но и недокументированные возможности устройств. Как бы то ни было - это часть нашей истории и для многих программируемый калькулятор стал первым шагом в вычислительную технику и обусловил дальнейший выбор профессии.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Последние комментарии