Со мной опять произошла какая-то мистика.
С тех пор как начал писать серию статей под названием «Пятьдесят лет по стезе программирования», особенно когда готовил третью статью, мне хотелось найти рукопись с исходными кодами, написанного мною транслятора с языка РПГ (RPG) для ЭВМ М-220:

За этот транслятор в далёком 1978 году я получил невиданный для нашего центра космической разведки гонорар. А как благодарна была женская половина, которая смогла избавиться от рутинной и тяжелой работы по печатанию на машинках, порой механических, толстых отчетов. Всего мною было подготовлено пять экземпляров документации, в которых львиную долю занимали исходные коды. Из этих пяти экземпляров, два остались в центре, два экземпляра я отправил в академию им. Ф.Э. Дзержинского в г. Москву на кафедру программирования, а один экземпляр родителям в г. Чебоксары. Но академию из Москвы перевели, и где сейчас архивы кафедры программирования одному богу известно, а центр космической разведки в Прибалтике просто закрыли, и от него сегодня практически ничего не осталось:

И в Москве и в Вентспилсе-8 найти рукопись не предоставлялось возможным. А вот в Чебоксарах я её после отъезда из Прибалтики часто брал в руки. Но шли года, в квартире что-то менялось и однажды я не нашёл рукописи на привычном месте. Я был очень опечален этим событием. И когда писал статьи, издавал книгу я периодически переворачивал вверх дном квартиру, мечтая найти эту рукопись. Все было бесполезно, но не в этот праздничный день 23 февраля 2026 года, На следующий я собирался пойти в Музей радиоэлектроники при Чебоксарском электромеханическом колледже. У меня появилась мысль пойти в музей не с пустыми руками, а в качестве подарка подарить музею бытовой компьютер «Дельта-С». Приняв это решение, я полез на антресоли и тут же обратил внимание на розовый корешок книги нестандартного размера. Со мной уже такое бывало, когда я на этой антресоле нашел восьмой том энциклопедии «Оружие и технологии России. Энциклопедия. XXI век» от издательского дома «Оружие и технологии». Внутренний голос подсказывал, что чудо случилось, и я нашёл свою рукопись:

Посмотрите, в какой хорошей компании она находилась многие годы!
Я с дрожью взял рукопись в руки и сел разглядывать её. Машина времени перенесла меня практически на 50 лет назад в Прибалтийскую тайгу. На рукописи не сохранился титульный лист, и оказалось вырванными несколько страниц, но от этого она не стала для меня менее ценной. Титульный лист и корешок я тут же распечатал заново и вернул их на прежнее место. Теперь передо мной на столе стояли мой первый труд и моя последняя книга:

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

Но вернемся к рукописи. Самое ценное, конечно, не обложка и корешок, а то, что находится внутри. А внутри было описание самого языка РПГ, транслятора для М-220 и, конечно, исходный код транслятора в кодах ЭВМ М-220. Для того, чтобы восстановить в памяти и язык РПГ и машинные коды ЭВМ М-220 я пролистал книги из той далёкой эпохи:

Учебное пособие по РПГ было выпущено моими учителями Ю.Н. Патрикеевым и В.И. Першиковым. Правда, когда я работал над транслятором РПГ М-220, в руках у меня было более раннее издание – «Ю.Н. Патрикеев. Программирование для генератора отчетов РПГ. Тексты лекций (выпуск 1). МО СССР, 1975». К сожалению, эту книгу я оставил в Центре космической разведки, когда уезжал в адъюнктуру в Москву. Но ведь рукописи не горят, и возможно я её также отыщу. Ю.Н. Патрикеев (на фотографии ниже в центре) всегда был для меня тем идеалом человека и учёного, с которого можно и нужно брать пример:

Сделать фотографию в цвете помогла модель генерации изображений Nano BananaPro. Справа на фотографии мой однокашник Серёжа Горелов, а слева - ещё один наш учитель В.Д. Цальп, который научил меня прекрасно программировать на ЭЦВМ «Весна».
Просматривая код транслятора, я понял, что я и сейчас смогу написать этот код, но вот как я его смог написать тогда, почти пятьдесят лет назад…
Сравнение оригинальных бланков РПГ с бланками из моей рукописи, показали их полную идентичность (бланк из найденной рукописи):

Самое интересное, что в моём распоряжении было только ОЗУ объемом в 4096 ячеек (4К), один магнитных барабан емкостью 64К и восемь лентопротяжных механизмов. Магнитный барабан это не жесткий диск или флэшка сегодня, при выключении питания вся информация на нём терялась. Единственным выходом было хранение программ на перфокартах (которые могли заминаться, не читаться и т.п.), а еще лучше на магнитных лентах (МЛ). Схема работы строилась следующим образом: разрабатывалась программа, в которой предусматривалась организация, как бы сейчас сказали, подкачки программного кода:

Таким образом, весь транслятор РПГ М-220 состоял из двух блоков. Первый блок компилировал программу РПГ с бланков во внутренние таблицы, а второй блок интерпретировал их, т.е. собственно и создавал отчеты на основе этих таблиц.
Здесь было все предусмотрено - и обработка ошибок, и проведение вычислений, и сортировка записей. Помимо найденной рукописи сохранилась и фотография именно той ЭВМ М-220, на которой он был разработан и функционировал:

Справа на фотографии я брожу по прибалтийской тайге в раздумьях как реализовать РПГ на ЭВМ М-220.
Очень ценным в найденной рукописи для меня являются комментарии к исходному коду:

В силу моего почерка (как говорили мои родители:- «Умный то, умный, но пишет как курица лапой»), комментарии мне вписывали наши сотрудницы Людмила Муравьёва и Татьяна Перова :

Транслятор РПГ М-220 в корне изменил мою судьбу. А в целом РПГ можно считать одним из прообразов современных баз данных.
Закончить этот рассказ я хотел бы словами одного из пользователей Хабра maxwolf :
Это ведь наша история, и многие знания сейчас остаются только в головах своих носителей. Если их не собрать и не сохранить, то через N-ное количество лет они просто пропадут. Цифровым археологам банально не с чем будет работать… Я, например, поднимая пласт своего софта 30-летней давности, понимаю, что сам уже с трудом вспоминаю, что там было к чему, а постороннему человеку, думаю, это, во многих аспектах, будет совершенно непонятно. Вам, как человеку, который начинал с М-220, и до сих пор (как я понимаю) работает в сфере ИТ, будет гораздо легче и найти разные артефакты, связанные с этой машиной, и систематизировать их, обогатив своими знаниями и опытом…
Комментарии (24)

CatAssa
27.02.2026 23:09Я прусь от себя - (с).

hard2018
27.02.2026 23:09Ты, ***, я щас приеду и задавлю тебя, ***!
https://vk.com/video281812920_456239246?ysclid=mm5n5dtzf177536414

SpiderEkb
27.02.2026 23:09А в целом РПГ можно считать одним из прообразов современных баз данных
Изначально RPG разрабатывался как эмулятор табуляторов на машинах IBM 1401. Чтобы сохранить и не переписывать все то, что было написано для табуляторов.
В целом программа на RPG работала с основной таблицей (primary table) в циклическом режиме (cycle mode) перебирая последовательно все записи в таблице до тех пор, пока не дойдет до конца файла или (по каким-то условиям) служебный индикатор "последняя запись" (*inlr) не будет установлен в состояние *on.
Т.е. там не было оператора return - написанный код крутился в цикле.
Таблица в той терминологии называется "физический файл данных" - фактически хранилище. Для определения порядка доступа к записям (access path) к ней существует один или несколько "логических файлов" (аналог индексов, но несколько более широкий).
RPG до сих пор жив на платформе IBM i и остается там основным средством для работы с БД. Конечно, с тех пор он сильно изменился - теперь это нормальный процедурный язык со свободным синтаксисом и достаточно богатыми (вплоть до использования SQL непосредственно в коде) возможностями.

saipr Автор
27.02.2026 23:09Изначально RPG разрабатывался как эмулятор табуляторов на машинах IBM 1401
Именно так. И транслятор РПГ М-220 заменил и наш табулятор:


MasterMentor
27.02.2026 23:09Корифеи брежневской эпохи, предвестники горбатых перемен. :)
Не в претензию сказано, но вместо/вместе с тем чтобы разведывать космос: разведали что там в кабинетах "секретарей" и генералов КПСС творилось. И навели - пока было не поздно - порядок на земле. :)
Не нашлось среди вас Лермонтовых, Рылеевых и декабристов...

saipr Автор
27.02.2026 23:09Да, нет, среди нас были (и есть, надеюсь) и Лермонтовы, и Рылеевы, и Декабристы. И большинство из них повторило судьбы и тех и других... А за "не в претензии" - спасибо. И кто-то должен был и программировать...

MasterMentor
27.02.2026 23:09
Декабристы >>среди нас были (и есть, надеюсь) и Лермонтовы, и Рылеевы, и Декабристы. И большинство из них повторило судьбы и тех и других...
Они?
Лермонтовы и Декабристы брежневского образца отбывают в Сибирь
45 лет назад, в начале февраля 1981 года, произошла авиакатастрофа, которая разом обезглавила Тихоокеанский флот (ТОФ) СССР. Самолет Ту-104 разбился при взлете с военного аэродрома Пушкин под Ленинградом, не пробыв в воздухе и десяти секунд — на его борту находилось все руководство ТОФ, 16 адмиралов и генералов. Такое количество командиров флот не терял даже в годы Второй мировой войны.
на потерпевшем крушение борту находились 15 адмиралов и генералов, а также 12 капитанов первого ранга и полковников. За один миг ТОФ потерял 16 высших военачальников — для сравнения, за всю Вторую мировую войну советский флот лишился десяти адмиралов, четверо из них пали в ходе боев.
Изначально рассматривалась версия о диверсии, но все оказалось намного прозаичнее — адмиралов погубил их собственный багаж.
...нарушения на борту Ту-104 все-таки были — в первую очередь там находились гражданские лица, в том числе жена адмирала Эмиля Спиридонова Валентина, супруга первого секретаря Приморского крайкома партии Тамара Ломакина, а также дочь контр-адмирала и начальника связи флота Екатерина Морева.
Кроме того, вместе с командованием ТОФ летел сын начальника снабжения Приморского края Борис Макаренко и его жена.
на Ту-104 был банальный перегруз. командир упавшего Ту-104 Инюшин часто жаловался на перегруз самолета.
Подполковник Анатолий Инюшин однажды написал в политотдел флота СССР, что его самолет почти всегда летит крайне перегруженным. Приводил факты, объяснял почему и писал, что командующий на его просьбы никак не реагирует
Во время разговора с Эмилем Спиридоновым политрук флота поинтересовался, почему на военном самолете часто перевозится мебель, холодильники, стиральные машины, фарфоровые сервизы и даже запчасти для «Москвича». Но разговор не задался — адмирал просто ушел от ответа.
Обрывочные свидетельства показали и наличие на борту Ту-104 тяжелого багажа — рулонов дефицитной типографской бумаги, которую Спиридонов вез для газеты ТОФ, и нескольких мебельных гарнитуров. тяжелый груз не удосужились как следует закрепить в багажном отсеке.
Адмиралов могло спасти только одно: если бы они загрузили еще пару рулонов бумаги или пару-тройку мебельных гарнитуров, то самолет сел бы на хвост прямо на стоянке.
https://lenta.ru/news/2026/02/06/flot/Так что олигархи в СССР обзавелись собственными самолётами уже в 1970-х. Просто нужно знать, где тех и других искать. ;)

dragonnur
27.02.2026 23:09Среди этих погибших была супруга персека Приморского крайкома "госпожа" Ломакина, в узких кругах широко известна версия ошибки загрузки с её мебелЯми, погруженными предпоследними, из-за чего последний груз роллов типографской бумаги оказался действительно последним -- был закачен во второй салон и отвратительно закреплён. Как следствие -- роллы весом в несколько тонн на взлёте покатились, смяв всё остальное по известному адресу и изменив центровку машины, отчего отрыв и самопроизвольный взлёт произошли досрочно на недостаточной скорости и рядовое происшествие перетекло в катастрофу..
Для "собственной" машины там было слишком много власть имущих из разных ветвей власти, это не бизнес-джет.

MasterMentor
27.02.2026 23:09>>Для "собственной" машины там было слишком много власть имущих из разных ветвей власти, это не бизнес-джет.
жена адмирала Эмиля Спиридонова Валентина, супруга первого секретаря Приморского крайкома партии Тамара Ломакина, дочь контр-адмирала и начальника связи флота Екатерина Морева, сын начальника снабжения Приморского края Борис Макаренко и его жена
А как эти господа с их сервизами и мебельными гарнитурами вообще оказались на военном самолёте, летающем с закрытых военных баз?
...обычная коррупционная кодла: гоняла самолёт по собственным нуждам, и мыла друг другу ручки - вась-вась, ты мне - я тебе. Ты моего сынка в крайком, я твоего - в снабжение Приморского края. Ты мне самолёт - а я тебе бартером гарнитурку. Для твоей дочки - у меня есть хороший зятёк, деткам - только династйные браки.
Хозяева жизни. В 1985-1995 эти граждане оформляли деюре то, что имели де факто. Все эти их жуликоватые комсомольские-вожачки Хородорковские-Абрамовичи и "младореформаторы" - подставные соплячки, которым по спискам "папы" из "генералов" и "адмиралов" передавали нажитые ими "чэсным трудом" куски Советского Союза. А дочерям и сынкам - тёплые насиженные крэсла. Вот такая грустная история.
Хорошо то, что для них это всё закончится плохо. И ещё при нашей жизни. Процесс идёт. :)

Moog_Prodigy
27.02.2026 23:09Плохо то, что для нас это тоже закончится плохо. И уже начинает сильно раньше чем у них. Есть поговорка "пока толстый сохнет - худой сдохнет".

SIISII
27.02.2026 23:09Хм... А с какой радости информация на магнитном барабане не сохранялась-то? Он же магнитный, как и диск с лентой, и предназначен же как раз для хранения информации... (ну, были извраты вроде использования барабана в качестве ОЗУ на "уралах", но и там информация никуда без питания не терялась -- просто это были не файлы, выражаясь современным языком, а содержимое ОЗУ машины).

saipr Автор
27.02.2026 23:09Он же магнитный
Да, вы правы, он магнитный:
программирование на М-220 серьёзно отличается от сегодняшнего программирования. Надо было обязательно знать машинные команды, хотя бы те, которые после их набора на клавишном запоминающем устройстве (КЗУ) и нажатия кнопки ПУСК позволяли загрузить программу с перфокарт, с магнитной ленты или в лучшем случае с магнитного барабана в память машины и передать ей управление, чтобы она начала выполняться. После Вентспилса я на всю жизнь запомнил команды ЭВМ М-220 для работы с внешними устройствами – 50 и 70.
Написал с одной стороны машинально, а с друглй имелось ввиду, что на него постоянно что-то записывалось и как постоянное хранилище его использовать было затруднено, учитывая еще постоянные профилактические работы на нём:
Периодически мы в отделе устраивали генеральную профилактику нашей ЭВМ М-220. Главным в этой профилактике была протирка спиртом контактов ТЭЗов (Типовых Элементов Замены), считывающих головок лентопротяжных механизмов и, конечно, поверхности магнитного барабана. После этого включалось электропитание и шел длительный процесс диагностики ЭВМ. И тут случилось непредвиденное — командир части приказал добавлять в спирт бензин («ложка дёгтя в бочке мёда»). Спирт в части получали не только мы для ЭВМ, но и на всех станциях (радиотелескопах) и т.д. То ли он сам так решил, то ли кто подсказал (до Горбачёвских виноградников было ещё далёко), но вещь это дюже неприятная. Я думаю, что ни для кого не секрет, что спирт (а это двойной ректификат) использовали не только по прямому назначению. Этот факт наглядно иллюстрирует карикатура, опубликованная примерно в это же время в журнале «Крокодил»:


SIISII
27.02.2026 23:09В общем, как я и подумал, информация таки сохранялась, как и положено магнитному носителю -- просто сам носитель был, оказывается, один и использовался всеми кому не лень и для всего подряд. Т.е. невозможность долговременного хранения данных на нём -- не техническая, а, так сказать, организационная.
Кстати говоря, а М-20, М-220, БЭСМ-3 и БЭСМ-4 в плане программирования -- совсем-совсем разные машины? Или некая степень совместимости на уровне машинных команд и т.п. имеется? (Система 360 -- первый случай официального анонса будущей программной совместимости, но де-факто разные, но совместимые машины к тому времени уже иногда встречались, вот и интересно, не являются ли таковыми и указанные советские).

saipr Автор
27.02.2026 23:09Или некая степень совместимости на уровне машинных команд и т.п. имеется?
В статье я ссылаюсь на книгу Ляшенко В.Ф. Программирование для цифровых вычислительных машин М-20 БЭСМ-3М, БЭСМ-4, М220. Уже по одному названию можно догадаться о существующей совместимости на уровне машинных команд:

Если говорить о совместимости машин Если говорить о совместимости машин, включая совместимость вышеперечисленных машин и машин ЕС ЭВМ (читай IBM/360), то в Советском Союзе для этих целей предполагалось использовать АЛМО. Более того трансляторы с него были разработаны и для вышеуказанных машин и даже для ЭЦВМ "Весна" и "СПЭМ-80". Спасибо за отлиный комментарий.

saipr Автор
27.02.2026 23:09Да, а термин файлы мы использовали и хранили их и на МЛ и на МБ при подготовки отчетов, естественно , и на ПФК
Moog_Prodigy
Вы действительно заслуженный корифей старой школы.
saipr Автор
Спасибо за корифея!