Программируемые калькуляторы. Часть 5.1 Wyle Scientific WS-01 – WS-02. Wyle Laboratories.. Wyle Laboratories. История IT.. Wyle Laboratories. История IT. калькулятор.. Wyle Laboratories. История IT. калькулятор. Ненормальное программирование.. Wyle Laboratories. История IT. калькулятор. Ненормальное программирование. программируемый калькулятор.. Wyle Laboratories. История IT. калькулятор. Ненормальное программирование. программируемый калькулятор. ретроспектива.. Wyle Laboratories. История IT. калькулятор. Ненормальное программирование. программируемый калькулятор. ретроспектива. Старое железо.

Первая половина 1960-х стала временем бурного роста настольной электронной вычислительной техники. На новый рынок выходили и компании, прежде совсем не связанные с калькуляторами.

Программируемые калькуляторы. Часть 5.1 Wyle Scientific WS-01 - WS-02 - 1

Сегодняшний герой как раз из таких. Wyle Scientific мало известен, и мимо него легко было бы пройти, если бы не набор необычных — а по нынешним меркам порой откровенно странных — технических решений.

В апреле 1964 года на выставке Spring Joint Computer Conference в Вашингтоне (SJCC ’64, кстати, главная тема этого мероприятия: «Компьютеры ’64: Решение проблем в меняющемся мире») компания Wyle Laboratories публично продемонстрировала новый настольный калькулятор.

Назывался он Wyle Scientific, или WS-01.

В рекламе для него нашли громкое определение: «Больше чем калькулятор… Почти компьютер».

Программируемые калькуляторы. Часть 5.1 Wyle Scientific WS-01 - WS-02 - 2

И, как мы увидим дальше, основания для этого у Wyle действительно были.

Wyle Laboratories

История началась довольно неожиданно. Wyle Laboratories работала прежде всего в области испытательного и измерительного оборудования для авиационной и аэрокосмической промышленности. Калькуляторами компания не занималась.
Однако осенью 1961 года Wyle приобрела небольшую компанию Ransom Research — разработчика транзисторных логических модулей для специализированного электронного оборудования.

Но у Ransom Research был ещё один проект — электронный калькулятор. К моменту покупки компании существовал уже частично работоспособный прототип будущей машины.

Самое забавное, что Wyle этот калькулятор, мягко говоря, был не особенно нужен: компания вовсе не собиралась выходить на рынок вычислительной техники. Однако разработчикам удалось убедить руководство дать проекту шанс и довести его до конца.

Эксперимент получился недешёвым: по воспоминаниям участников, на доведение калькулятора до серийного состояния компания выделила почти 1 000 000 долларов — более чем серьёзную сумму для начала 1960-х.
И вот весной 1964 года результат этой работы наконец появился на рынке.

WS-01

Wyle Scientific WS-01 стоил 3950 долларов. Аппаратик весил около 22 кг и, по меркам тех лет, действительно считался компактным — его позиционировали как настольный.

Каким должен быть электронный калькулятор, как с ним работать и что он вообще должен уметь, тогда ещё никто толком не знал. Каждый разработчик отвечал на эти вопросы по-своему, и сегодня многие решения тех лет выглядят весьма необычно.

В этом смысле WS-01 — просто кладезь.

 ЭКРАН

Вместо привычных цифровых индикаторов Wyle Scientific получил большой 8-дюймовый электронно-лучевой дисплей. На нём одновременно отображались шесть строк по 24 цифры — для настольного калькулятора это и сейчас поразительно информативный экран.

И сделано это было не для красоты: шесть строк соответствовали шести регистрам калькулятора.

Внизу виден поворотный переключатель положения десятичной точки.

Внизу виден поворотный переключатель положения десятичной точки.

То есть пользователь постоянно видел содержимое всех регистров — и в архитектуре Wyle это было действительно более чем полезно.
Современные калькуляторы обычно показывают одно число, а обмен между внутренними регистрами скрыт от пользователя.

У Wyle всё было наоборот:

Чтобы понимать, что именно сейчас происходит при вычислении, было необходимо видеть сразу несколько регистров.

Цифры на ЭЛТ формировались тоже необычным способом. Для отклонения электронного луча использовались специально сформированные синусоидальные и косинусоидальные сигналы. Поэтому цифры получались плавными, почти рукописными. В литературе эта технология описывается как gated sine/cosine waveform generated digits.

Даже сегодня такой экран выглядит необычно.

ПРЕДСТАВЛЕНИЕ ЧИСЕЛ

Wyle Scientific работал с 24-разрядными десятичными числами — весьма впечатляющая разрядность. Каждая из шести строк дисплея вмещала все 24 разряда.

Положение десятичной точки задавалось ручным переключателем и было фиксированным, но его можно было установить в одно из семи положений: 3, 6, 9, 12, 15, 18 или 21 знак после точки. Так можно было выбирать между большим диапазоном целой части и высокой точностью дробной.

При этом ввод длинных чисел был организован довольно удобно.

В отличие от многих ранних калькуляторов, пользователю не требовалось заранее считать количество цифр до или после десятичной точки. Число вводилось почти как сейчас:

Достаточно было нажать клавишу десятичной точки, и машина сама выравнивала введённые цифры относительно заранее выбранной позиции.

Разработчики отдельно подчёркивали это автоматическое выравнивание как одну из особенностей машины.
Но плавающей запятой здесь всё-таки не было.

КЛАВИАТУРА

С первого взгляда клавиатура WS выглядит несколько странно.

 

Программируемые калькуляторы. Часть 5.1 Wyle Scientific WS-01 - WS-02 - 4

Но она хорошо соответствует устройству и логике машины.

Клавиши разделены на три группы: слева — управление регистрами, в центре — цифровая клавиатура, справа — арифметические операции.

Ещё правее — четыре фиксируемых переключателя, среди них и [POWER ON].

Самая интересная часть — левая: здесь находится управление регистрами, еще одна особенность калькулятора.

ВВОД и ОБМЕН МЕЖДУ РЕГИСТРАМИ

Как уже отмечалось, в аппарате было шесть регистров. Три рабочих:

MQ — Multiplier-Quotient Register;
ENTRY — Entry Register;
ACC — Accumulator;

и три общих:
REG 1, REG 2, REG 3.

Для каждого регистра имелись персональные кнопки FROM (самый левый столбец кнопок) и TO (следующий столбец). Чтобы скопировать число из одного регистра в другой, нужно выбрать исходный регистр как FROM, затем регистр назначения TO и нажать TRANSFER.

Например:
FROM [MQ] → TO [ACC] → [TRANSFER]

Число из MQ окажется в ACC, причём исходное значение в MQ сохранится.

Выбранные регистры отображались непосредственно на экране: слева от строки появлялся маркер FROM, а в регистре TO одна цифра светилась ярче остальных.

Числовые данные вводились цифровыми клавишами и попадали в регистр, выбранный TO.

Яркая метка TO одновременно выполняла роль курсора и показывала позицию следующей вводимой цифры. Таким образом, с клавиатуры можно было вводить числа прямо в любой из шести регистров.

Программируемые калькуляторы. Часть 5.1 Wyle Scientific WS-01 - WS-02 - 5

Редкая для калькуляторов функция — курсор — позволяла реализовать ещё одну необычную возможность: редактирование ввода.

Если в 24-разрядном числе была ошибочно введена одна цифра, всё число заново набирать не требовалось.

Клавишами [FWD SPACE] и [BACK SPACE] можно было подвести светящийся курсор к нужному месту и заменить только ошибочную цифру.
Отдельные клавиши [SHIFT LEFT] и [SHIFT RIGHT] сдвигали уже не курсор, а всё число в выбранном регистре на один разряд.

Такие возможности ввода, редактирования и визуального контроля крайне редки для калькуляторов; похожие функции были разве что у LOCI-2 (см. четвертую часть цикла).

 ОЧИСТКА РЕГИСТРОВ

Три рабочих регистра — MQ, ENTRY и ACC — очищались индивидуально соответствующими клавишами в нижней правой части клавиатуры:
[CLEAR ENTRY], [CLEAR MQ], [CLEAR ACC]

Чтобы очистить REG 1, REG 2 или REG 3, достаточно было скопировать в него содержимое любого уже очищенного регистра.

АРИФМЕТИКА и ВЫЧИСЛЕНИЯ

Но самое интересное — как именно Wyle выполнял вычисления.
Три рабочих регистра имели вполне определённые роли.

  • ENTRY был прежде всего регистром ввода.

  • ACC — аккумулятором.

  • MQ — регистром множителя и частного.

При разных операциях, однако, эти роли менялись.

Сложение выполнялось так:
(ACC) + (ENTRY) → ACC

Вводим первое число в ENTRY, нажимаем [ADD+]: оно прибавляется к ACC.
Вводим второе число и снова нажимаем [ADD+]. Результат всё время накапливается в ACC.

Например (при нулевом ACC):
TO [ENTRY] → 12 → [ADD+]; 13 → [ADD+]
В ACC получаем 25.

Вычитание работает аналогично:
(ACC) − (ENTRY) → ACC

С умножением интереснее: здесь есть целых три клавиши, а участвуют сразу три регистра:
(MQ) × (ENTRY) → ACC

Один множитель помещается в MQ, второй — в ENTRY, а произведение появляется в ACC.
Привычной клавиши умножения «×» здесь нет. Для обычного умножения служит [CLEAR & MULT].
Она сначала очищает ACC, а затем в него помещает результат умножения:
[CLEAR & MULT]: (MQ) × (ENTRY) → ACC

Рядом — ещё две клавиши.
Клавиша [MULT +] прибавляет произведение содержимого MQ и ENTRY к текущему содержимому ACC:
[MULT +]: (ACC) + (MQ) × (ENTRY) → ACC

Клавиша [MULT −] делает то же самое с вычитанием:
[MULT -]: (ACC) – (MQ) × (ENTRY) → ACC

При делении роли меняются: делимое помещается в ACC, делитель — в ENTRY, а частное появляется в MQ.
(ACC) [÷] (ENTRY) → MQ

Ну и ещё одна гордость разработчиков тех лет — аппаратное извлечение квадратного корня:
[√] (ACC) → MQ

Логика действий запутанная, поэтому шесть постоянно видимых регистров — вовсе не дизайнерская причуда. Пользователь Wyle фактически работал непосредственно с регистрами вычислительной машины и сам задавал логику перемещения данных между ними.

РЕЖИМ СЛОЖЕНИЯ С ЛЮБЫМ РЕГИСТРОМ

Общие регистры REG 1, REG 2 и REG 3 служат для хранения констант и промежуточных результатов.

Функция TRANSFER позволяла копировать данные между любыми регистрами, включая общие, хотя в обычных арифметических операциях REG 1–3 напрямую не участвовали.

Но у Wyle Scientific был специальный режим “ADD FROM ANY REGISTER”. Он включался переключателем [ADD ANY REG].

Если в обычном режиме сложение и вычитание работают только с ENTRY, то здесь источником мог стать любой выбранный FROM-регистр, включая REG 1–3.

Например:
FROM [R1] [ADD+] → ACC
то есть содержимое R1 напрямую прибавлялось к аккумулятору.

MULTIPLE OPERATIONS — МНОЖЕСТВЕННЫЕ ОПЕРАЦИИ

Но, пожалуй, самая неожиданная возможность Wyle — одновременная адресация нескольких регистров.

Можно было выбрать до трёх TO-регистров одновременно; при этом только один из них мог быть REG 1–3.

Например, одновременно нажимаем:
TO MQ и TO ENTRY
и вводим “5”. Пятёрка одновременно появляется в MQ и ENTRY.

Теперь [CLEAR & MULT] сразу даст квадрат, 25.

Сначала это выглядит странно, но при программировании такая возможность окажется чрезвычайно полезной.

Эта логика хорошо сочеталась и с [MULT +] / [MULT −]: калькулятор был удобно приспособлен к вычислению сумм и сумм произведений, а результат сразу накапливался в ACC.

 КОГДА 24 РАЗРЯДОВ МАЛО. РЕЖИМ KEEP REMAINDERS

Ещё один дополнительный режим включался переключателем [KEEP REMAINDERS].

В этом режиме после деления в ACC сохранялся остаток, умноженный на 10:
(ACC) [÷] (ENTRY) → MQ, остаток × 10 → ACC

Если затем выбрать TO ACC, выполнить SHIFT RIGHT и снова DIVIDE (÷), справа от десятичной точки в MQ появятся следующие цифры частного. Процедуру можно было повторять неограниченно, получая требуемую точность деления.

При извлечении квадратного корня режим работал похожим образом: в ENTRY сохранялся удвоенный корень, а в ACC — истинный остаток, умноженный на 10.
После сдвига и деления можно было получить следующую значащую часть корня, но, в отличие от обычного деления, такую процедуру разрешалось выполнить только один раз.

ОТРИЦАТЕЛЬНЫЕ ЧИСЛА

А вот работа с отрицательными числами у Wyle была, мягко говоря, не самой дружелюбной. Разработчики подавали её как особенность, но современный пользователь скорее назвал бы это «багом, а не фичей».

Можно заметить: отдельной клавиши задания или изменения знака не было. Отрицательные результаты представлялись в дополнении до 10.

Например, после вычисления
10 − 11

в ACC окажется дополнение до 10 для −1:
999 999 999 999…

Здесь важен переключатель [OVERFLOW LOCK OFF]. В нормальном положении блокировка переполнения включена: попытка прибавить к такому представлению числа «2» вызывало переполнение и останавливало машину.

Переполнение отображалось очень заметно: все цифры на дисплее светились с повышенной яркостью, а у правого края появлялась строка нулей. Состояние снималось нажатием любой клавиши TO.

Если же перевести [OVERFLOW LOCK OFF] в положение, отключающее блокировку, машина не останавливается и арифметика в области дополнений работает: в нашем примере плюс «2» даёт «1».

Если результат оставался в форме дополнения, руководство предлагало «магическую» последовательность для получения привычного модуля отрицательного числа:

FROM ACC → TO ENTRY → TRANSFER → CLEAR ACC → FROM ENTRY → SUB

В ACC появлялась 1, но знак машина при этом не запоминала — пользователь должен был помнить, что полученный модуль относится к отрицательному результату.

ВНУТРИ АППАРАТА

Вся логика калькулятора была построена на дискретных германиевых транзисторах, преимущественно по принципу RTL — резисторно-транзисторной логики. Интегральных микросхем в машине не было.

Но самое интересное — рабочая память. Для хранения регистров использовался небольшой вращающийся магнитный диск.

Фото прототипа WS-01. Металлический цилиндр - диск данных.

Фото прототипа WS-01. Металлический цилиндр – диск данных.

Это был не накопитель для файлов и не хранилище программ, а собственно оперативная память калькулятора.

На диске находились дорожки, на которых циклически сохранялись данные регистров, а отдельная дорожка использовалась для синхронизации работы электроники. В общей сложности устройство хранило примерно 1700 бит.

Такое решение накладывало весьма необычные эксплуатационные ограничения: работающий калькулятор нельзя было поднимать или перемещать. Даже после выключения требовалось подождать две минуты — иначе можно было повредить диск памяти.

То есть внутри настольного калькулятора действительно непрерывно вращался маленький магнитный диск, без которого машина не могла считать.
Красивое техническое решение, ставшее прародителем современных дисков.

Но миниатюрный дисковый узел на тот момент оказался капризным. Из-за жёстких требований к механическим допускам чтение и запись могли становиться нестабильными, и WS-01 быстро заработал репутацию ненадёжной машины: данные могли теряться прямо во время вычислений.

WS-02

Проблема была именно в механике дискового узла: нарушение зазоров между головками и поверхностью диска приводило к ошибкам чтения и записи. Репутацию Wyle нужно было спасать быстро.

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

Вместо него применили магнитострикционную линию задержки, знакомую по другим калькуляторам цикла — Friden EC-130/132 (см. первую часть цикла) и Olivetti Programma 101 (см. третью часть).

В такой памяти данные существуют не в виде неподвижно записанных битов, а в виде последовательности механических импульсов, распространяющихся по проволоке. На конце линии они снова преобразуются в электрические импульсы, усиливаются и запускаются в начало. Таким образом данные непрерывно циркулируют по замкнутому пути.

Но простая замена одного узла другим требовала и дополнительных конструктивных изменений.

Так появилась модель WS-02.

Программируемые калькуляторы. Часть 5.1 Wyle Scientific WS-01 - WS-02 - 7

Для пользователя почти ничего не изменилось: те же регистры, тот же дисплей, та же клавиатура, те же операции. Внешне разницу практически вообще не заметить.

Более того, часть уже выпущенных WS-01 Wyle модернизировала, заменяя дисковую память новой электроникой.

ПРОГРАММИРОВАНИЕ. PC-01

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

Программируемые калькуляторы. Часть 5.1 Wyle Scientific WS-01 - WS-02 - 8

Через несколько месяцев после выхода WS-01 Wyle предложила опциональный считыватель перфокарт PC-01. Вместе с ним цена комплекта увеличивалась до 4350 долларов.

Именно PC-01 делал Wyle Scientific 01/02 программируемым.

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

Программируемые калькуляторы. Часть 5.1 Wyle Scientific WS-01 - WS-02 - 9

Но куда интереснее самого устройства был принцип программирования.

Отдельного языка составления программ в привычном смысле у Wyle не было. PC-01 фактически воспроизводил заранее записанную на перфокарте последовательность действий оператора за клавиатурой.

ПРОГРАММИРОВАНИЕ КАК ДЫРКИ ОТ КАРТОЧКИ

Сами карты были предварительно надрезаны (pre-scored). Для программирования не требовался даже специальный перфоратор: отверстия можно было продавить стилусом или обычной шариковой ручкой.

И ещё одна уже знакомая по ранним программируемым калькуляторам особенность: отдельной памяти программ нет, команды исполняются непосредственно по мере чтения карты. Похожий подход мы уже встречали у калькуляторов доктора Вана (см. часть 4 цикла).

Но сама перфокарта и способ кодирования команд у Wyle были другими. Карта тоже была 40-колоночной, однако PC-01 читал её не по столбцам, а по строкам.

38 столбцов соответствовали 38 клавишам клавиатуры Wyle Scientific. Функции клавиш были указаны прямо в соответствующих колонках карты:

Программируемые калькуляторы. Часть 5.1 Wyle Scientific WS-01 - WS-02 - 10

Ещё один столбец, расположенный в середине карты, служил синхронизирующим стробом и был пробит во всех строках. Последний, сороковой столбец соответствовал команде STOP.

Получалась своего рода бумажная программная таблица.

ЧЕМ УВЕЛИЧИТЬ ОТСУТСТВУЮЩУЮ ПРОГРАММНУЮ ПАМЯТЬ? КЛЕЕМ!

На каждой карте было всего 12 строк — то есть максимум 12 программных шагов. Это, конечно, не то что мало, это катастрофически мало.

Но Wyle компенсировала это двумя приёмами.

Во-первых, один шаг не обязательно соответствовал одной клавише. Как отмечалось выше, некоторые совместимые команды можно было задать в одной строке. Например, команды:

FROM R1, TO ENTRY, TO MQ, TO R2, TRANSFER

записывались одной строкой карты. За один программный шаг содержимое R1 копировалось сразу в ENTRY, MQ и R2.

То есть 12 строк карты — это всё-таки несколько больше, чем просто 12 нажатий клавиш.

Во-вторых, длинные программы склеивались из нескольких карт в ленту. В буквальном смысле! Руководство пользователя давало на этот счёт вполне практические рекомендации:

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

Программируемые калькуляторы. Часть 5.1 Wyle Scientific WS-01 - WS-02 - 11

Так программа на несколько десятков, а то и сотен шагов буквально превращалась в длинную бумажную ленту из склеенных карт. Более того, для циклических вычислений такую ленту замыкали на себя.

Методы программирования середины 1960-х иногда весьма существенно отличались от современных представлений!

ПРАКТИКА ПРОГРАММИСТА

Встретив STOP — единственную программную команду, у которой отсутствовала клавиша на панели калькулятора, — PC-01 останавливался. Для привлечения внимания на считывателе загоралась кнопка RESUME. Оператор мог вручную ввести число с клавиатуры и нажать RESUME для продолжения вычислений.

В PC-01 был и пошаговый режим: переключатель AUTO/STEP позволял для отладки выполнять по одной строке карты после каждого нажатия RESUME.

В реализации работы и управления PC-01 сильно похож на считыватель CP-1 калькуляторов 300-ой серии доктора Вана (см. часть 4.2 цикла). Впрочем, это не удивительно – в этом смысле всё устройства CD-ROM тоже похожи.

Кстати, напрашивается историческая аналогия:

Программируемые калькуляторы. Часть 5.1 Wyle Scientific WS-01 - WS-02 - 12

Но вернёмся к Wyle. Вот пример программы вычисления гипотенузы:

a=√(b^2+c^2 )

Она занимает десять строк. (Увы, традиционную программу факториала сделать не удастся.)

Шаг

Команды в строке

Примечание

1

CLEAR MQ | CLEAR ENTRY

Две команды CLEAR записаны в одной строке. В одной строке можно адресовать до трёх регистров.

2

TO MQ | TO ENTRY

Одновременный выбор двух регистров TO.

3

STOP

Вручную ввести b.

4

CLEAR & MULT

b² → ACC

5

CLEAR MQ

0 → MQ

6

TO MQ | TO ENTRY

Одновременный выбор двух регистров TO.

7

STOP

Вручную ввести c.

8

MULT+

b² + c² → ACC

9

SQUARE ROOT (√)

√(b² + c²) → MQ = a

10

STOP

Ответ находится в MQ.

 Запись этих команд на карте:

Программируемые калькуляторы. Часть 5.1 Wyle Scientific WS-01 - WS-02 - 14

Пример даёт представление, как в Wyle использовались необычная организация памяти, разные режимы умножения, одновременный выбор нескольких TO и необходимость отображения регистров.

PC-01 не столько исполнял машинную программу, сколько автоматизировал действия человека за клавиатурой. По сути, это был аппаратный макрорекордер тех лет.

Wyle предлагала готовые библиотеки программ для математики, статистики, гражданского строительства, образования и других задач, а специалисты компании могли помочь составить программу для конкретного заказчика.

И ГДЕ ЖЕ ОБЕЩАННЫЙ «ПОЧТИ КОМПЬЮТЕР»?

Программируемые калькуляторы. Часть 5.1 Wyle Scientific WS-01 - WS-02 - 15

Продолжение следует.

Автор: Amir_Aizatulin

Источник