179

Карманный компьютер из 1985 года: программируемый калькулятор «Электроника МК-54»

Серия Старое железо

Автор: CyberPaul

Оригинальный материал


Я вырос в простой советской семье, которая, как водилось в те времена, жила от одной скромной зарплаты до другой. Я взахлёб прочитывал «Технику Молодежи» и «Юный Техник» с приложением «ЮТ для умелых рук», которые мы выписывали на дом, а для того чтобы разжиться «Моделистом-Конструктором», приходилось раз в месяц наведываться в районную библиотеку. Больше всего меня привлекали заметки про электронно-вычислительные машины и компьютерную технику. Однако о том, чтобы заиметь свой собственный компьютер, не могло быть и речи: даже простенький «ZX Spectrum 48K» стоил для нас совершенно неподъемных денег. Я безуспешно попытался собрать по чертежам и схемам из журнала персоналку «ЮТ-88», но бросил эту затею после того, как родители притащили откуда-то программируемый калькулятор «Электроника МК-54». Ведь на нем можно было писать самые настоящие игры!

Недавно, прибираясь в чулане, я неожиданно нашел это замечательное устройство. Вставил батарейки, включил, работает! Когда-то калькулятор комплектовался дерматиновым чехлом и книжечкой карманного формата с подробными инструкциями по эксплуатации, но эти аксессуары, как и адаптер питания с хитрым двухштырьковым разъемом, оказались безвозвратно потеряны. Осталось только само устройство, сжимая в руках которое, я испытал сильный приступ ностальгии.


На Хабре уже подробно рассказывали о конструкции калькуляторов этой серии, которая с современной точки зрения выглядит довольно примитивной. Но тогда, в 1988 году, «МК-54» казался самым настоящим чудом техники. Советская промышленность начала выпуск этой машины в 1982-м, и вскоре калькулятор появился на полках магазинов по цене 65 рублей — довольно дорого по тем временам (для сравнения, более «продвинутая» трехпроцессорная версия калькулятора, «МК-61», стоила 85 рублей). Тем не менее, это был самый доступный программируемый калькулятор в СССР в середине 80-х, более дешевого варианта попросту не существовало.

«МК-54» был оборудован двумя процессорами на базе бескорпусной микросхемы серии К745: один, помимо основных функций ЦП, отвечал за контроллеры дисплея и клавиатуры, второй играл роль математического сопроцессора. Быстродействие калькулятора при выполнении программ составляло примерно 5 операций в секунду.


Память «МК-54» позволяла хранить 98 шагов программы (по 1 байту каждый), калькулятор располагал 4 операционными регистрами и 14 адресуемыми регистрами памяти. В отличие от своего «старшего брата» «МК-52», этот аппарат не обладал энергонезависимой памятью, поэтому при отключении питания записанная ранее программа сбрасывалась, и ее приходилось вводить заново.

Человек, привыкший к обычным карманным или настольным калькуляторам, и впервые взявший в руки «МК-54», обычно впадал в состояние ступора: как на нем считать? На клавиатуре отсутствует клавиша «=», зато имеется множество странных кнопок вроде «К», «СХ», «БП», «ПП», «В/О», «С/П» и других.


Действительно, простые арифметические действия на этой «Электронике» выполнялись следующим образом: нужно было ввести одно число, затем переместить его в следующий регистр стековой операционной памяти нажатием кнопки «В↑», потом указать второе число, и, наконец, ввести знак операции. Иными словами, классический арифметический пример «2+2=» на «МК-54» выполнялся такой хитроумной последовательностью клавиш: «[2], [В↑], [2], [+]».

Собственно, устройство создавалось в первую очередь не для простых арифметических, а для сложных инженерных расчетов, которые можно было выполнять автоматически — при помощи составленных и записанных в память программ. Но для этого следовало сначала выучить множество новых и незнакомых обычному советскому обывателю понятий: «счетчик команд», «адреса возврата из подпрограмм», «регистры памяти», «операционный стек». Именно так для многих граждан СССР и начался путь в «большое программирование».

Способов применения в народном хозяйстве для «МК-54» существовало великое множество: строительные, сельскохозяйственные и экономические расчеты, навигация, биология и химия, астрономия и инженерное дело. Пожалуй, нет ни одной научно-технической сферы, для которой не придумали бы подходящих программ, способных работать на этой машине. В различных журналах и сборниках время от времени попадались программы для определения биоритмов человека, для подсчета объема ингредиентов при приготовлении кулинарных блюд, для построения наиболее эффективной диеты, учёта узлов и петель в процессе вязки шарфиков и свитеров, и даже для огородников с вычислением оптимальных дат посадки укропа на личных шести сотках. Но лично мне в первую очередь были интересны игры, код и описания которых регулярно публиковались в рубрике «Клуб электронных игр» журнала «Техника молодежи».


Для программирования этого калькулятора (как и у его ближайших сородичей) использовался так называемый язык машинных команд ЯМК-34. Этот язык позволял выполнять математические операции, а также процедуры пересылки данных и управления, чего при реализации большинства прикладных задач оказывалось вполне достаточно. Программа могла выполняться на калькуляторе пошагово — для этого на клавиатуре имелись специальные клавиши с направленными вправо и влево стрелками и обозначением «ШГ», они позволяли отследить ход исполнения команд, оценить содержимое регистров и обнаружить допущенные ошибки.

Безусловно, двенадцатиразрядный вакуумно-люминесцентный индикатор не позволял отображать что-либо, кроме цифр, математических знаков и некоторых символов: Г, L, С, Е, вроде знаменитого сообщения об ошибке «ЕГГОГ», поэтому игры для «МК-54» были весьма своеобразными. Обычно они включали подробное текстовое описание сюжета игры с завязкой, развитием истории и персонажами, иногда к нему добавлялись изображения игрового поля — например, расчерченного на квадратные секции. Калькулятор же играл вспомогательную роль: просчитывал ходы за соперников, выдавал случайные числовые значения, или несколько цифр через десятичный разделитель. Пользователь вводил цифры, характеризующие его ход, и снова запускал программу на выполнение — после чего калькулятор выдавал следующее значение. Цикл повторялся до условной победы или поражения игрока. Помимо классики вроде «Морского боя», «Крестиков-ноликов» и «Шашек» существовали почти настоящие остросюжетные квесты, «экономические стратегии», военные баталии. Были и «динамические» игры вроде бегающей по индикатору «мишени» в виде буквы «О», в которую нужно было «попасть снарядом». Еще были «гонки», и совершенно изумительный «Лунолёт», в котором пользователь задавал условному космическому кораблю тормозящий и разгонный импульсы, следя при этом за остатками топлива и расстоянием до планеты, с целью погасить скорость до нуля и приземлиться на Луну, не разбив корабль.

В первое время я просто вводил команды в калькулятор со страниц «Техники Молодежи», стараясь не наделать ошибок, а самые интересные варианты терпеливо переписывал в тетрадочку. Случались и неприятные сюрпризы, если программа оказывалась длиннее доступной памяти: многие игры писались для калькулятора «МК-61», позволявшего хранить 105 шагов программы, в то время как мой «пятьдесят четвертый» поддерживал только 98. Такие «длинные» цепочки команд приходилось оптимизировать и сокращать, что само по себе представляло отличную головоломку и давало неплохую пищу для ума. Ну, а следующим шагом стало написание собственных игр, сопряженное с придумыванием увлекательного сюжета и сложных игровых алгоритмов. При этом «электронную» часть игры, хоть ты тресни, нужно было уложить в 98 команд, желательно, с запасом. Одну свою игру, помнится, я даже отправил в «Технику Молодёжи», но ее почему-то так и не опубликовали.

Тем не менее, упражнения с калькулятором не прошли даром. Поступив в институт и оказавшись на лекциях в рамках курса «Программирование микроконтроллеров», я с удивлением обнаружил, что преподаваемый там язык Ассемблера чем-то мне смутно знаком. Программы писались без особого труда, в то время как однокурсники постоянно путались в непонятных для них стеках и регистрах. Все-таки опыт работы с «МК-54» прививал определенную логику и соответствующий стиль мышления, позволяющий понять, как работает программа «в железе».

Сегодня существует несколько полноценных эмуляторов, позволяющих посмотреть на работу «МК-54», «МК-61» и их сородича «Б3-34» вживую, ввести программу и проследить за ее исполнением. Вот, например, отличный эмулятор «шестьдесят первого» — с ним можно поиграться прямо в браузере. Кроме того, в сети нетрудно обнаружить и подборки игр для калькуляторов этой серии — вот одна из них.

В том числе и из-за того, что в свое время платы с советскими микросхемами серии К145 (ими комплектовался «Б3-34») активно сдавали «на золото», таких калькуляторов в рабочем состоянии сегодня осталось немного. Мой экземпляр, с заводским номером 10658, выпущенный в апреле 85-го — один из хорошо сохранившихся. Осталось только отыскать старую замусоленную тетрадку, в которую я переписывал код игр для этой машины, и можно будет вспомнить давно ушедшую юность, проведя пару вечеров за «Лунолётом» и «Колхозным рынком». Нынешним подросткам подобные развлечения, к сожалению, недоступны.

P. S. Ждем упоминания в комментариях легендарной «Энциклопедии профессора Фортрана» через пять… Четыре… Три…

Подпишись на наш блог, чтобы не пропустить новые интересные посты!

IT минувших дней

1.2K постов7.4K подписчика

Правила сообщества

Запрещается добавлять новости о прошлогодних новинках, а также посты, не относящиеся к тематике "ретро в ИТ".

Желательно соблюдать правила приличия.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества