Выбрать главу

Набивку перфолент выполняли сами студенты. Вскоре им надоело перенабивать перфоленты каждый раз, меняя разве что константы — сами-то программы менялись нечасто, а вот конкретные параметры — довольно значительно — ведь даже по одной температуре надо было проводить десятки опытов с шагом в десять градусов, а для каждой температуры — еще и с разным временем — с шагом, скажем, в одну минуту — перфолент получалось просто невообразимое количество — десятки и сотни. Неудивительно, что творческие личности вскоре взвыли от такой работы и постарались как-то ее упростить. Ну народ и начал творить. Первое, что они сделали — это составили "бланковую" программу — перфоленту с командами, но без значений. И отдельно стали набивать перфоленты со значениями. А уже потом совмещать два в одном — протягивали обе перфоленты на двух аппаратах, а общий результат пробивался на третьем — эту перфоленту уже и заряжали в исследовательскую систему. А чтобы понимать — откуда надо брать значение — стали на бланковой перфоленте пробивать служебную дорожку — есть единица — берем с одного аппарата, нет — с другого. Это уже исключало необходимость повторной набивки вручную самой программы — номеров устройств, субустройств, масок ожидания — оставалось только набить перфоленты с самими значениями. Но на ленте значений надо было оставлять соответствующие им позиции пустыми. "А чего бы не сэкономить бумагу?" — подумали наши гении. И ввели на "бланковой" перфоленте еще одну дорожку — теперь, встретив единицу в этой дорожке, управляющая схема брала число с перфоленты значений — и протягивала обе перфоленты, забирая значение со второй перфоленты, а ленту команд просто протягивая дальше. А если отверстия не было, забирала номер устройства с ленты команд, а ленту значений не трогала, пока на ленте команд снова не встретится единица. А потом еще немного подумали — и подключили оба считывателя напрямую к исследовательской системе — то есть заменили предыдущий вариант с набивкой сводной ленты сразу чтением исходных лент, без создания сводной. Да, потребовалось два аппарата, но зато вышла экономия на перфолентах — и на самой бумаге, и на ее пробивке — теперь требовалась только отдельная лента команд и отдельные ленты значений, причем те — уже без пропусков под команды. Так мы постепенно приходили к Гарвардской архитектуре. Хотя тут про такое вообще не слышали — все-таки секретные штуки, но вот я как-то ляпнул в разговоре — так и прижилось. А потом и разведка подтвердила, что да, еще в конце тридцатых была предложена эта схема в Гарварде. Про меня в очередной раз зашептали "Ну точно разведчик…".

Ну а уж для перевода из десятичных в двоичный код народ сначала составил таблицу всех чисел до 1023 и набивал по ней вручную. Потом ее набили на перфоленте, которую протягивали до нужного числа — всего-то пять метров на двух бобинах, жали кнопку — и сигналы со считывающих датчиков поступали на пробивочную машину. но с такой длинной лентой ускорение получалось только если нужные значения были рядом, что получалось не всегда, поэтому ее разбили на ленты для каждой сотни, вставляли нужную и протягивали до нужного числа — надо, скажем, триста семьдесят два — брали полуметровую ленту с числами от трехсот до трехсот девяноста девяти, протягивали до нужного числа — и вперед. Потом народ понял, что каждый раз менять ленту тоже как-то занудно. Тогда сделали несколько считывателей, в каждом установили по длинной ленте на все 1024 числа — и брали значения с них — ведь шаг изменения значений одной переменной невелик — пять-десять-двадцать единиц, самих переменных тоже немного — три-пять-семь, поэтому достаточно семи считывателей максимум, и на каждом протягивать свою ленту — установили начальные значения на всех считывателях, и затем последовательно нажали на каждом кнопку — на ленте значений последовательно пробились нужные двоичные цифры. Потом сдвинули одну из лент, чей шаг отрабатывается — и снова последовательно пробили значения — и так далее. Получалось довольно быстро. Но и эту схему автоматизировали. Действительно — "Чего это мы будем жать кнопки на всех аппаратах?" — ну и добавили схему с механическим переключателем, которая по нажатию всего одной кнопки пробивала значения со всех аппаратов — главное теперь было не запутаться в смене значений на лентах-источниках — для каждой надо было выставить нужный шаг значений. А потом еще подумали, и подключили эти ленты к самой установке, и теперь было достаточно перед каждым экспериментом установить нужные начальные значения на лентах, а уж схема выбора считывателя последовательно проходила ленты и брала с них значения — ленты как бы организовывали вложенные циклы прохода по своим переменным — температуре, давлению, сопротивлению и так далее. Правда, это безобразие вскоре прекратили — все-таки надо было сохранять значения, при которых проходил эксперимент — и для истории, и чтобы повторить без необходимости настройки. Поэтому на время вернулись к предыдущей схеме с готовыми лентами значений, пока кому-то не пришла в голову мысль сдавать в архив не сами ленты, а параметры считывателей — начальное значение и шаг — количество потребной бумаги снова уменьшилось.