# Воспоминание об Олимпиаде 80

Николай Николаевич Семендяев

СИМТА - Система Информирования Мировых Телеграфных Агентств. Мы сделали программную систему, которая трудилась в компьютере, сделала все действия, заложенные и проверенные нами. Она уже не принадлежит нам, она стала частью истории.

Николай Семендяев     Воспоминание об Олимпиаде 80.          Прошло много времени и многие детали забылись. Помог, как всегда, случай. Судьба столкнула меня с Владимиром, человеком внимательным и умеющим слушать. Разговорились, и всплыли воспоминания о 80-х.     Память выдала историю, которую я счёл достойной изложить в нижеприведённом тексте.     ***     Конец 77-го. Я после аспирантуры готовился к защите. Раздался телефонный звонок. Взял трубку.     - Это Андрей, помнишь! -     - Конечно помню и хорошо. -     Меня и Андрея связывала суровые воспоминания о совместно выполненных работах.      - Прекрасно. Я направил в твою контору вызов на тебя. В четверг жду у себя в Агентстве. Ты знаешь в каком. Мой телефон ххх-хх-хх. Приедешь, позвони от КПП, я тебя встречу. Если вдруг меня не будет, пропуск на тебя будет лежать. -     Спонтанно возникло возражение.     - С чего это я буду срываться с места. -     -Ты посмотри, кем подписан вызов. Возражения не принимаются. Трудовую книжку привези с собой. До встречи, жду. -          В четверг Андрей встретил, проводил в свой кабинет.     - Садись, будем говорить. Считай себя призванным в условиях военного времени. Я твой начальник. Даю тебе трёх человек и жду выполнения задания. -          Внутри у меня начала зреть волна протеста.     - У меня дел полно! -     Андрей вскинул руку, останавливая меня.     -Я знаю, но сейчас нужно сделать, то, что нужно сделать. Считай, что это ещё одна вершина, на которую нужно взойти. Надвигается Олимпиада, и Агентство участвует в её информационном освещении. Детали задачи получишь чуть позже. -           Поднял трубку. - Нина Михайловна, зайдите. -          Дверь пропустила женщину, деловитую и подтянутую.     Андрей протянул руку в моём направлении.     - Ваш начальник. Организуйте ему рабочее место, сводите в одел кадров и введите в курс дела. -          Собрались вместе. Нина Михайловна, Вячеслав, Александр. Все - выпускники Московских вузов. Вся команда, которая должна обеспечить освещение Олимпийских игр.     Вячеслав - молодой специалист.     Александр имеет опыт работы с машинами типа ЕС.     Нина Михайловна работала на ВЦ с машинами ЕС.     Я представился и попросил ввести меня в курс дела относительно задач и средств их решения. То, что я услышал, сильно озадачило меня.          Спустился в машинный зал, пустой, с системой бесперебойного питания, системой кондиционирования и пожаротушения, с работающей вентиляцией.     Залов было два. Большой и маленький. Маленький для системы на базе PDP, большой для UNIVAC, уже заказанной и проплаченной. Сами машины пока отсутствовали, но пустые залы впечатляли.          Будущая система информирования мировых агентств должна будет работать в связке с Олимпийским вычислительным комплексом IBM, размещённым на Лужнецкой набережной.     Олимпийский вычислительный комплекс будет формировать протоколы спортивных событий и передавать в нашу систему. Протоколы имеют табличную форму. Наша система должна будет перерабатывать табличную форму в формат сообщений Агентства и выдавать их по телеграфным каналам мировым агентствам на русском, английском, французском и испанском языках. Было дано имя - СИМТА - Система Информирования Мировых Телеграфных Агентств. С таким именем она вошла в историю.          Переговорил со специалистами большой машины. Все ранее работали на ЕС, имели знания и опыт.     Для маленькой системы только я был готов работать c PDP. Нину Михайловну, Вячеслава и Александра нужно учить.          Утром на следующий день Андрей вызвал к себе.     - Из Олимпийского комитета пришли документы. -     Положил передо мной на стол толстый альбом формата А3 в сотню страниц, сброшюрованный и подшитый. Титульный лист покрыт множеством согласующих подписей и проштампован печатями.     -Что думаешь? -     Я неопределённо пожал плечами.     - Если можно, я заберу это в отдел. Там посмотрим. Выводы и предложения доложу завтра утром. -     Андрей кивком головы одобрил решение.     - В любом случае езжай завтра с Анатолием Ивановичем на Лужнецкую, нужно определить, как они будут выдавать нам протоколы, в каком виде и по каким каналам. -          На этом и расстались.     Появление толстого альбома в отделе было встречено с энтузиазмом. Листание и рассмотрение страниц потребовало много времени. В конце просмотра Александр произнес     - Если на каждую форму делать отдельный модуль, нам втроём не справиться. 80 форм, да ещё на 4 языках, это очень много. -          Для меня начала вырисовываться картина целиком, и проблема вставала в полный рост. Если делать в лоб, то получится программная система из 80 модулей в 8000 программных строк. Их нужно ещё написать и отладить!          Утром позвонил Андрею.     -Решения пока нет. Одно могу сказать, программная система будет большой и громоздкой. Возможно, что-то прояснится после поездки на Лужнецкую. -     -Успехов, потом позвони - прозвучало в ответ.          Я и Анатолий Иванович появились на Лужнецкой в 10. Серое здание старой постройки контрастировало с внутренне начинкой. Технический интерьер вычислительного центра украшали красочные снимки прошлых олимпиад.     К нам вышел начальник машины, представился. Наши удостоверения рассматривал долго и внимательно.     - Что хотите от нас? -     Анатолий Иванович сделал шаг вперёд, определяя, что он старший.     - Хотим получить ответы на два вопроса.     Первый - в каком виде будут выдаваться протоколы на Агентство?     Второй-по каким каналам Агентство может подключиться к Вашей системе? -     Начальник понимающе кивнул головой.     -Вызываю инженера, он даст пояснения по подключению. Программист, который тоже подойдёт сейчас, ответит на вопросы о протоколах. -     Инженер и Анатолий Иванович отошли в сторону. Подошла программист, представилась Мариной. Я изложил вопрос.          - Нужны разъяснения по протоколам.     Я видел формы протоколов. Строки безликие и одинаковые. Можно - ли выдавать протоколы с маркерами на каждой строке, определяющие, что в строке? Пустая строка, строка заголовка или строка текста. -     Мирина подумала и ответила.     -Внутри системы протоколы представлены именно так, как Вы сказали, с маркерами на каждой строке. Перед выдачей на принтер строки чистятся и выходят без маркеров. Для Вас удобнее, чтобы при выдаче к Вам протоколы были с маркерами на каждой строке? -     Я     - Да. Дополнительно, хотелось бы получить распечатку всех форм протоколов с маркерами. -     Марина секунду подумала.     - Это возможно. Пишите нам официальный запрос и в течение недели распечатаем. -           Беседа на этом завершилась, Анатолий Иванович к этому времени тоже получил всё требуемое.          Мы в кабинете Андрея, отчитываемся.     Первым Анатолий Иванович.     - Протоколы к нам можно передать через модемы по телеграфным каналам. С нашей стороны нужны или принтер IBM или эмулятор принтера. Если с нашей стороны будет эмулятор, он должен поддерживать протокол связи с IBM. -     Я     -Протоколы для Агентства будут иметь на каждой строке маркеры, определяющие содержание строк. В течение недели распечатают и пришлют все формы с маркерами. -          Андрей     Это хорошо.     Теперь о плохом.     Президент США запретил поставку затребованного нами оборудования. UNIVAC и PDP мы не получим. Наши предлагают использовать отечественные ЕС и мини-машину - аналог PDP.     Западные левые фирмачи уже готовы поставить UNIVAC и PDP, но без гарантий и обучения. Вопрос пока решается. Продолжайте прорабатывать все, что не требует техники. Пока всё. -          В отделе творческая суета. Нина Михайловна готовит чай. Александр у доски с мелом в руках.     На доске квадратики модулей и блоков будущей системы.          Александр     - Предлагается к рассмотрению общая схема системы. Четыре основные компоненты.     1) Компонента, функционал которой будет поддерживать приём данных от Олимпийской системы.     2) Компонента, функционал которой будет поддерживать выдачу результата на мировые агентства.     3) Компонента, функционал которой будет поддерживать переработку исходных протоколов в экспресс - сообщения от нашего Агентства по каждому спортивному событию.     4) Компонента, функционал которой будет поддерживать набивку и редактирование внутренних, служебных текстов.          Я     - Нужен ещё блок. Пакет ведения базы данных для пары 'сокращённое наименование страны - полное наименование'. Сокращения нужно будет разворачиваться в полное наименование, для чего необходима база данных, выполняющая поиск по сокращённому наименованию. -          Александр пририсовал значок базы данных к компоненте выдачу результата на мировые агентства.               Я     - Я видел, в каком виде нам будут приходить к нам протоколы. Каждая строка протокола будет помечена маркером, в зависимости от того, что на строке. Пустая строк, строка заголовка, текстовая строка. Полный набор маркеров мы получим через неделю.     Возникла мысль сделать программного Робота, который будет выполнять действия над строками. Действия над строками будут определены в командной строке, подготовленной заранее. Например, действие - припустить некоторое количество пустых строк, позиционироваться на строке заголовка, выбрать в результат все строки заголовка, позиционироваться на строке текста.     Командные строки следует подготовить заранее. Получится всё компактно.     Исходный протокол приходит к нам с цифровым идентификатором. По идентификатору выбираем командную строку. Робот выполняет затребованные в командной строке действия и получает результат. Компонента выдачи результата дополняет результат нужным текстом и выдаёт в телеграфные каналы на мировые агентства.           Предлагаю заменить слово Компоненты на слово Блок.     1) Блок, функционал которого будет поддерживать приём данных от Олимпийской системы.     2) Блок, функционал которого будет поддерживать выдачу результата на мировые агентства.     3) Робот, функционал которого будет поддерживать переработку исходных протоколов по каждому спортивному событию в экспресс - сообщения от нашего Агентства.     4) Блок, функционал которого будет поддерживать набивку и редактирование внутренних, служебных текстов.     Базу данных для полных-коротких наименований я дополю базой данных для командных строк. -     Я пририсовал к схеме Александра ещё один квадратик.          Продолжили чаепитие. Схема н доске вселяла уверенность в будущее.          В конце недели пришли распечатки форм с маркерами строк. Отдал их Нине Михайловне.     - Это тебе. Командные строки для Робота - твоя работа. -          Распределили блоки.     Посадский Вячеслав взял блок, отвечающий за набивку командных строк и редактирование текстов.     Глазов Александр взял блок для выдачи результата на мировые агентства и блок приёма данных от Олимпийской системы.     Семендяев Николай взял на себя Робота.     Чебуняева Нина Михайловна подготовит командные строки для Робота.          Оставалось ждать технику.          Возникли англичане. Пообещали поставить машину из ЮАР, в обход всех санкций.     Начала поступать документация. Поставили для тренировки усечённый вариант машины. Пока основной комплект плыл морем, осваивали технику. Чем дальше шло освоение, тем всё более падало настроение. Это был компьютер 60-х годов. Никакого сравнения с IBM и PDP. Особенно умилял 6-битовый байт. Можно закодировать 64 буквы алфавита, или кириллицы, или латыни по отдельности. Вместе никак.          Оборудование, наконец прибыло. Установили в малом зале. ICL290 - так называлась машина. Вид добротный. Дисковод с магнитной подвеской вала смотрелся устойчиво и непоколебимо.     Самая большая непонятность была в том, как мы будем работать с текстами на кириллице и на латыни одновременно.     Пакетов ведения баз данных не было. Нужно строить индексный файл.     Просмотр Ассемблера для машинных кодов радости не принес.          Прояснился уровень бедствия с приёмом данных из Олимпийской системы. Нужен был эмулятор принтера с перекодировкой из восьмибитного байта IBM в шестибитный байт ICL.           Специалисты ICL предложили использовать знак '\' как триггерный переключатель c латыни на кириллицу и обратно. Этот знак потом прошёл через всю систему, стал головной болью для разработчиков. Нужно было внимательно работать с текстом, а главное помнить, какое было предыдущее переключение, с кириллицы на латынь или обратно.           Фирма предложила КОБОЛ для разработки программных модулей. Радости мало, но хоть что-то.     Индексный файл строился отдельной процедурой, и разработка этой процедуры далась с большим трудом. Программировать пришлось в машинных кодах. Но когда процедура заработала, помнится, ушла безысходность и наступило ощущение возможности выполнить работу целиком.          Отношения с фирмачами складывались ровными, рабоче-дружескими. В их среде я получил статус 'Главный программист', и приходилось отвечать на самые разнообразные вопросы.          Связь с Олимпийской системой отсутствовала. Блоки системы созревали и требовали полноценного тестирования. Пришёл к Андрею. Вид его был озабоченный и выглядел он уставшим.     -Что нужно? -     Изложил просьбу.     - Слушай, я машину тебе дал! Трудись. Мне бы твои заботы. Западники как с цепи сорвались. Всё блокируют, всё замораживают. Только с французами наметился просвет, может быть продадут нам свой IRIS. -     Внимательно выслушал Андрея, получил от него разрешение на поездку на Лужнецкую, мысленно пожелал Андрею успехов в его деле.          На Лужнецкой меня встретила Марина.     -Что привело Вас в наши края? -     Изложил просьбу.     - Дайте копию тестовых протоколов и наименований стран - участников игр. -          -Лента будет готова завтра. На будущее. За день до поездки звоните нам, чтобы мы могли подготовить. Кстати, у меня имеется лента с копиями протоколов. Они устаревшие, но для отладки подойдут. -          Ушла, вскоре вернулась с бобиной магнитной ленты.     - Здесь порядка 200 протоколов во всех формах. Ну всё. Удачи, звоните. -          На том и расстались.           У себя поставил бобину на лентопротяжку.     Подошли Нина Михайловна, Александр и Вячеслав.     С лёгким волнением нажал кнопку запуска процедуры копирования. Построился индексный файл, загрузились наименования стран. Потом лента остановилась, и процедура попросила установить ленту с командными строками для Робота. Всё считалось. Далее, процедура попросила установить ленту с тестовыми протоколами.     Проверил, сколько бумаги в принтере. Оказалось, достаточно. Нажал ПУСК. Считался первый протокол, Робот обработал текст и выдал на принтер. Лента дёрнулась дальше, следующий протокол ушёл в машину.     И так все 200 протоколов. Робот трудился, сбоев не зафиксировано.     Нина Михайловна должна будет проверить правильность командных строк для Робота. Ура. Впереди много работы, но появилось ощущение возможного успеха.           Этими действиями был опробован резервный вариант передачи протоколов через магнитную ленту из Олимпийской системы IBM в ICL.     Фирмачи трудились над связью с Олимпийской IBM. Шестибитовые слова ICL и восьмибитовый байт IBM плохо сопрягались друг с другом.     Для эмулятора принтера поставили отдельный персональный компьютер. В те времена это было в новинку.     Фирмачи часто просили связаться с Мариной и выдать на линию Агентства тестовые протоколы.      В итоге, связь отладили и протоколы начали поступать в нашу систему.          Персональный компьютер имел много цветных огоньков, и они начинали весело мигать при приёме очередного протокола. Мы шутили     - Протокол появился в пределах прямой видимости. -          Летом 79-го произошёл инцидент.     В наружный раструб забора свежего воздуха попала промасленная ветошь. В жаркий день она начала тлеть, дым по вентиляции ушёл в малый машинный зал.     Сработала система пожаротушения, которая через громкую связь потребовала покинуть машинный зал и включила обратный отсчет до начала закачки газа.      Возникла суета, электронный замок на двери заело. Дежурные инженеры быстро отключил электропитание системы пожаротушения и распахнули двустворчатую входную дверь.     Инцидент был исчерпан, но осадок остался.          Перед самым началом игр сверху скатилась проблема. Ливия, стала называться Ливийской Джамахирией, что выходило за рамки запланированной длины строки для наименования страны. Переделывать все внутренние буфера не стали. В блоке приёма и в блоке выдачи данных встроили программные заплатки, которые на входе переделывали Ливийскую Джамахириею в аббревиатуру ЛИВИЯ, а в выходном блоке аббревиатура ЛИВИЯ разворачивалась в Ливийскую Джамахириею. Проверили. Всё работает. Так и оставили.          За сутки до открытия Олимпиады съездил на Лужнецкую и забрал бобину с наименованиями стран-участниц. Привёз.     В машинном зале собрались все сотрудники IСL и наша дежурная смена. Бережно высвободил бобину из упаковки и поставил на лентопротяжку. Кнопка 'ПУСК', и лента начала считываться. Послышался характерный звук перемещающихся головок пакета магнитных дисков. По мере считывания стойка с дисковым пакетом начала раскачиваться. Закралась мысль - как бы чего не случилось!     От группы сотрудников IСL отделился молодой человек и упал сверху на дисковод. Колебания уменьшились и вошли в норму.     Потом молодой человек вернулся к коллегам, которые дружескими рукопожатиями отметили этот поступок.          Лента считалась, дисковод престал шуршать головками, и наступила тишина.     Все вышли из зала. Остался я один.     Накатилась волна ощущений из моей юности. В горах я всегда уходил последним. Один на вершине и никого рядом. Только надёжно вбитый крюк, карабин и верёвка, уходящая вниз и подрагивающая от напряжения. В эти минуты накатывалось чувство одиночества и щемящей безысходности.           Именно это чувство накатилось на меня с последними считанными битами.          Всё.     Я вышел за дверь машинного зала. Теперь сюда могли заходить только дежурные операторы. Остальным доступ закрыт.     За дверью меня ждал Андрей. Отобрал у меня пропуск с расширенными правами доступа во все помещения Олимпиады, вручил пропуск для посещения столовой. Взглянул на меня и произнёс только одно слово 'ДЕРЖИСЬ'.          Для меня вся Олимпиада была ещё впереди.          Поднялся в рабочую комнату. Нина Михайловна, Александр и Вячеслав сидели вокруг чайного столика и ждали меня. Чайник весело шипел, выпуская облака белого пара.     Нина Михайловна насыпала свежую заварку, и тягучий запах качественного чая накрыл всех сидящих в комнате.     Все взгляды обратились ко мне, и я понял, что от меня ждут слов.      Я встал и произнёс короткую фразу - МЫ СДЕЛАЛИ ЭТО! -     Этого было достаточно.     Да, мы сделали программную систему, которая сейчас трудится в компьютере, делая все действия, заложенные и проверенные нами. Она уже не принадлежит нам. СИМТА - Система Информирования Мировых Телеграфных Агентств стала частью истории.          Дни Олимпиады тянулась однообразно. Смотрели программу соревнований и ждали экспресс-сообщений Агентства, сформированные нашей системой.     Они отстукивались на телетайпе, установленном в нашей комнате. Сначала список участников соревнования в алфавитном порядке, потом сообщение с первыми тремя результатами, затем с первыми шестью, далее с первыми десятью, и в конце - список всех, отсортированный по результатам.     Мы обсуждали результаты и шли пить чай. И так день за днём.          В последний день пришло итоговое экспресс-сообщение со списком всех участников Игр.     Возникло волнение - как сформировался этот список? - Мы учли все возможные последствия от Ливийской Джамахирии, но обеспокоенность осталась.     Телетайп долго отстукивал весь текст, наконец выдалась последняя строка и телетайп замолчал. Мы обменялись рукопожатиями и поздравили друг друга с успешным завершением Олимпийских игр 80.           Со слезами на глазах проводили улетающего Олимпийского Мишку.          Ребята написали отчёты о своей работе. Я тоже.     Собрал распечатки всех экспресс - сообщений, сформированных системой, сброшюровал и сдал в секретариат.     Жена нашла много новых седых волос на моей голове.     На душе пусто и тоскливо. Работа окончена, отдел расформирован. Рабочая комната опустела.               ***