Публикация Школы траблшутеров

Как автоматизация логических схем стала нашим проклятием

Время чтения: 4 мин 30 сек
11 сентября 2023 г. Просмотров: 432

Программирование, Проекты | Олег Брагинский

На третьем курсе с одногруппниками замахнулись создать программу для выполнения учебных задач по компьютерной логике. К мысли, что справимся, подтолкнул заведующий Лабораторией архитектуры вычислительных систем и микропроцессорной техники Жабин Валерий Иванович.

Устав исписывать доску бесконечными формулами, описывающими поведение комбинационных схем, педагог давно размышлял о разработке CAD-системы (Computer-Aided Design). Предстояло в DOS-режиме научиться связывать простейшие логические элементы: И, ИЛИ, НЕ, И-НЕ, ИЛИ-НЕ.

Четверо безумцев с Кафедры вычислительной техники из групп ИВ-01 и ИВ-02 приступили к проектированию программы. Языком выбрали Turbo Pascal 5.5, продумали модульную структуру:

  1. псевдографическая оболочка – выпадающие меню и окна с тенями
  2. система помощи – подсказка по возможностям и особенностям
  3. полотно редактора – соединение предусмотренных элементов
  4. файловые операции – выбор, открытие и сохранение данных
  5. моделирование – пошаговая симуляция логических схем
  6. русификация – в первую очередь принтеров Robotron
  7. курсор мыши – пытались сделать в виде стрелочки
  8. клавиатурные команды, коих было множество
  9. архиватор – сжатие результатов с паролем.

Проекту выбрали название «CXEMA», которое сначала сменилось на «ПРОГМОЛС» (ПРОГрамма МОделирования Логических Схем), а позже превратилось в AFDK (Advanced Functional Designers Kit). В ход пошли кустарные заготовки, имевшиеся у команды в избытке: библиотек ещё не было.

Олег Брагинский привнёс интерфейсную часть благодаря созданию хакерского редактора. Дмитрий Хабенко поднаторел в работе с перекрёстными ссылками, потом взялся за создание справочного блока. Евгений Молдавский придумал элегантное связывание элементов в текстовом режиме.

Наибольший вклад в написание сложнейшего программного кода несомненно внёс Антонов Руслан, оставшийся в проекте после получения диплома для перехода на Windows-версию:

Свежей графикой тут же воспользовались учащиеся, метко изобразившие маститого педагога:

Программа тем временем росла, развивалась, превратившись в отраслевой стандарт обучения:

Воспоминания о былом неожиданно всколыхнули студенты, приславшие учебник идеолога AFDK…

…энтузиасты нашли меня в Сети, благодаря упоминанию во введении…

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

Приходилось делать вид, что ничего не заметил, хотя понимал: кто-то скопировал исполняемый файл CXEMA.EXE, чтобы взломать. По нашему замыслу, делать лабораторные работы в программе можно было только на конкретных компьютерах Киевского Политехнического Института.

Сложность предмета и относительная небрежность товарищей к компьютерной логике приводила к тому, что никто не успевал выполнить намеченный объём исследований за отведённое время пар. А чтобы получить допуск к экзамену, требовалось предъявить 14 работоспособных схем.

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

Даже при обучении в аспирантуре, когда уже не имел отношения к версии AFDK 2.0, встречались студенты, тыкавшие пальцем, громко шушукавшие, качавшие головой. Так из попытки создать «аналог» PCAD мы стали пособниками «издевательств», которые никак не подлежали прощению.

Поэтому нигде кроме скромного блока описаний завершённых проектов в сети деловых контактов LinkedIn не упоминал о продукте, которым можно было бы заслуженно гордиться… если бы не одно «но»: триумф неизменно омрачался чётким пониманием того, что доставили неудобства равным.

Справедливости ради нужно сказать, что «ПРОГМОЛС» неоднократно ломали с помощью отладчика SoftICE. Вскрытие AFDK стало тестовым заданием для начинающих хакеров. Пикантности ситуации добавляло то, что вторым инструментом исследования часто выступал HED.

«Исповедавшись», хочу поблагодарить Антонова Руслана (справа), продлившего CXEME жизнь: