Что же дальше? 300-я серия

Итак, хорошо понимая проблемы, которые быстро приведут LOCI-2 к моральному устареванию (см. начало четвёртой статьи цикла), уже через год после его выхода, в 1966 году компания Wang Labs анонсировала перспективную 300-ю серию, призванную значительно расширить рынок. Она разрабатывалась специально для устранения главных недостатков LOCI-2 — сложного управления и слабой эргономики.

Компания полностью переосмыслила физическую и логическую архитектуру вычислителя. Вместо привычного для того времени большого моноблока, каким был и LOCI-2, доктор Ан Ван предложил модульную архитектуру, разделившую интерфейс ввода-вывода и непосредственно вычислительную часть. Это позволило создать унифицированную платформу, которую можно было конфигурировать под задачи конкретного пользователя и отказаться от выпуска множества полностью различных моделей.

Система Wang 300 состояла из двух независимых компонентов, соединённых между собой толстыми магистральными кабелями:

  • электронного вычислительного блока (Electronics Package),

  • клавиатурного терминала (Keyboard/Display Unit).

К вычислительному блоку подключался сменный клавиатурный терминал (клавиатура), обычно соответствующий выбранной модели.

Именно вычислительный блок и терминал вместе образовывали законченный калькулятор.

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

Электронный вычислительный блок

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

С 1966 года выпускалось несколько вариантов: 300E, 310E и 320E, а с 1967 года к ним добавился 360E. Они различались прежде всего набором логических плат, определявших поддерживаемые математические функции и объём памяти.

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

Индекс «E» (Electronics) обозначал «обычный» вычислительный блок, рассчитанный на обслуживание одного терминала. На его корпусе располагался один разъём для подключения клавиатуры.

Но на этом Ан Ван не остановился. В 1968 году появились многопользовательские блоки с индексом SE (Simultaneous Electronics): 300SE, 310SE и 320SE, а в 1969 году — 360SE.

В них было реализовано весьма необычное для второй половины 1960-х годов решение — аппаратный таймшеринг (разделение времени). Блоки «SE» имели четыре независимых порта, что позволяло одновременно подключать четыре терминала. Центральный вычислительный узел работал по принципу Round Robin (кругового обхода): последовательно опрашивал терминалы и выделял каждому квант времени на вычисление. Поскольку скорость работы логарифмического сумматора Wang измерялась миллисекундами, у пользователей создавалось полное ощущение, что каждый работает со своим собственным калькулятором.

Похожий многопользовательский режим мы уже встречали у Mathatronics (см. часть 2 цикла). Он появился позже, поддерживал большее число пользователей, но и стоил значительно дороже.

Терминал

Для каждого варианта вычислительного блока выпускался соответствующий клавиатурный терминал (Keyboard/Display Unit). Это было компактное устройство, не занимавшее много места на рабочем столе. Его индекс соответствовал вычислительному блоку, но с литерой K: 300K, 310K, 320K и 360K.

В них содержались только механические клавиши, кодирующую диодную сетку и дисплей на газоразрядных индикаторах (Nixie tubes). Никаких вычислений он не выполнял: терминал лишь передавал коды нажатых клавиш в вычислительный блок и отображал полученный от него BCD-код на индикаторе.

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

Линейка первых

Базовая модель Wang 300 (вычислительный блок 300E / SE и терминал(ы) 300K) поддерживала только стандартные арифметические операции.

Старшие модели последовательно дооснащались дополнительными функциями. У модели 310 появились возведение в квадрат и извлечение квадратного корня.

Далее модели позиционировались как научные. WANG 320 получила вычисление натуральных логарифмов и экспоненты.

Модель 360 по вычислительным возможностям не отличалась от 320-й, но получила четыре дополнительных регистра памяти (Storage Registers), реализованных на ферритовой памяти электронного блока. Для работы с ними на терминале 360K появились восемь дополнительных клавиш индивидуальной записи и чтения каждого регистра.

Чтобы разместить новые клавиши, компоновку пришлось уплотнить: все увеличенные кнопки стали обычного размера, за исключением клавиши «0». Обмен данными с регистрами осуществлялся с рабочим регистром дисплея W.

Давайте опять посчитаем

По архитектуре серия 300 была основана на машинах LOCI, однако имела несколько принципиальных отличий.

Внимательный читатель наверняка заметил, что на показанных выше клавиатурах имеется двойной набор клавиш для работы с аккумулятор (с регистром А).

И действительно, в 300-й серии использовались уже знакомые нам регистры индикатора W, логарифмирования L и два (!) аккумулятора — левый AL и правый AR. Они работали совершенно независимо, поэтому пользователь мог одновременно выполнять две независимые последовательности сложения и вычитания — фактически как на двух калькуляторах.

 

Для каждого аккумулятора были собственные клавиши очистки и копирования значения в регистр дисплея W. Сложение и вычитание выполнялись практически как на LOCI-2. Каждая операция [+] или [-] дублировалась на индикаторе.

Вот пример вычитания 2-1.5 с использованием левого аккумулятора:

Операции умножения и деления были организованы несколько иначе, чем в LOCI-2. Появилась клавиша [ENTER], однако это не то, о чём можно было бы подумать. Несмотря на наличие отдельной клавиши [×=], именно [ENTER] выполняла знакомую нам операцию «LOCI-умножения»:

  • [ENTER] : L+ln∥W∥→L

а клавиша [x=] – получение окончательного результата цепочки умножений, то есть:

  • [×=] :  exp(L + ln∥W∥ )→ W,0→L.

Вот пример 2 × (−3) × 4

С делением ситуация оказалась несколько сложнее, так как отсутствовала операция «LOCI-деления»

L-ln∥W∥→L, что довольно странно.

Копка [÷=] вычисляла:

  •  [÷=]∶ exp(L-Ln(W) ) → W,0→L

Иными словами, текущее значение регистра L «LOCI-делилось» на введённое число, а результат отображался в регистре W (на индикаторе).

Отсюда следует, если L=0 (после завершения любой операции, кроме [ENTER], регистр L всегда содержит ноль), то операция [÷=] сразу находит обратную величину к введённому числу.

Вот пример вычисления 1/2:

А вот 2/3:

Поэтому цепочки дробных выражений нельзя вычислять в произвольном порядке. Сначала необходимо вычислить знаменатель, затем получить его обратную величину и уже её умножать на множители числителя. Пример (2×3)/(4×5):   

Вычисления функций:

  •   [√x]∶ exp(L+Ln(W)/2) → W,0→L

  •   [x²]∶ exp⁡(L+2×Ln(W)) → W,0→L

  •   [Ln X]∶ L+Ln(W) → W,0→L

  •   [e^x]∶ exp(L+W) → W,0→L

Пример вычисления квадратного корня из двух (при L=0):

Ln(2 × 8):

2.11.9 :

Функции накопления

У всей линейки калькуляторов появились новые функции накопления, управляемые тумблерами.

Переключатель [PROD ACCUM] (расположен слева на клавиатуре) в верхнем положении работает совместно с четырьмя функциями клавиатуры: [×=], [÷=], [√X], [X²]. Он автоматически накапливал в левом сумматоре результаты произведений, частных, извлечения квадратного корня и возведения в квадрат. Накопленное значение в любой момент можно вывести на индикатор клавишей [RECALL ADDER].

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

Например, 2×3+16/4+√9+3²:

В примере результат накопился в левом сумматоре. При этом вручную складывать отдельные промежуточные результаты клавишей [+] уже не требуется — сложение выполняется автоматически.

Переключатель [MULT ACCUM], расположенный справа на клавиатуре, работает с теми же функциями клавиатуры, но накапливает в правом сумматоре значения множителей, делителей, аргументов функций корней и квадратов до выполнения соответствующей операций.

Например, для выражения 2×3+4×5

левый сумматор накопит результат 26, а правый — 8.

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

Последний переключатель, [ENTRY ACCUM], непосредственно связан с функцией [ENTER] и автоматически суммирует с помощью правого сумматора все значения, введённые клавишей [ENTER].

В нашем примере 2 × 3 + 4 × 5только [ENTRY ACCUM] даст в правом сумматоре значение 6, а при одновременном использовании с [MULT ACCUM] получится 14.

Удобство работы с калькуляторами 300-й серии существенно выросло по сравнению с LOCI. Правда, различных «премудростей», чтобы пользоваться в полную силу всеми возможностями, оставалось (и появилось) довольно много.

Wang IC-1

Но, возможно, кому-то наличие различных сумматоров могло показаться недостаточным. На этот случай выпускалось специализированное и, без сомнения, необычное устройство - Wang IC-1 (Item Counter).

Этот внешний модуль для программируемых калькуляторов Wang 300-й серии предназначался для автоматического подсчёта количества выполненных вычислительных операций определённого типа. Он подключался между клавиатурным терминалом и электронным блоком через специальный интерфейс. Для этого подключения требовалась небольшая модернизация клавиатуры. Основное назначение устройства – получать статистику работы без изменения программы или порядка вычислений.

С помощью набора переключателей пользователь выбирал, какие операции необходимо подсчитывать. IC-1 мог подсчитывать количество выполненных операций +, −, ×, ENTER, √, x², а также их различные комбинации.

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

Результат отображался на собственном четырёхразрядном электромеханическом счётчике. Диапазон счёта составлял от 1 до 9999 операций. Значение счётчика сбрасывалось специальной кнопкой.

Предполагалось, что модуль будет полезен при выполнении длительных инженерных, научных и статистических расчётов. Кроме того, IC-1 мог применяться при разработке программ — например, для анализа производительности и эффективности.

Стоимость IC-1 составляла 120 долларов США, а комплект для модернизации уже существующих клавиатур — 140 долларов.

Wang IC-1 – необычный пример специализированного периферийного устройства для настольных программируемых калькуляторов конца 1960-х годов. Это одна из первых функциональных возможностей (причём аппаратная) представления статистического контроля за ходом расчёта вычислительной системы — функция, которая позднее стала обычной частью программных средств анализа производительности.

WANG 362 – если нужна память

В мае 1968 года вышла последняя модификация линейки – калькулятор 362E / 362K. В нём увеличили количество регистров до 12, причём каждый мог использоваться как сумматор.

Чтобы не увеличивать количество клавиш, Ван реализовал двухэтапный доступ к памяти. Первое нажатие определяло операцию с памятью — запись, вызов, сложение или вычитание, — а второе выбирало нужный регистр. Фактически это была адресуемая память.

Регистры на 362K пронумерованы от нуля до одиннадцати. Для выбора регистров 0–9 использовались цифровые клавиши, регистр 10 выбирался клавишей [CLEAR DISPLAY], а регистр 11 — клавишей [CHANGE SIGN].

Справа не Ирина Алфёрова.
Справа не Ирина Алфёрова.

Но Ван пошёл еще дальше и расширил возможности памяти. В 362E появилась возможность разделить каждый регистр на два полурегистра. Таким образом, система могла хранить до 24 чисел, правда, с разрядностью шесть знаков каждое.

С делением памяти на полурегистры мы уже встречались у Olivetti Programma 101 (см. третий очерк цикла).

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

Клавиатура 362К отличалась от 360К только обозначениями правых клавиш, связанных с работой памяти. А благодаря унификации модулей с блоком 362E могла работать и клавиатура 360K — достаточно было заменить шильдики.

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

Угнаться за HP

Выпуск Wang 362E был для Wang Laboratories одной из вынужденных мер, продиктованной необходимостью защитить свою долю рынка от стремительно растущей конкуренции. В мае 1968 года компания впервые столкнулась с серьезной угрозой своему лидерству на рынке научных электронных калькуляторов. Если несколько лет серия 300 практически не имела равных, то после появления новых конкурентов ситуация резко изменилась.

Главным ударом мог стать готовящийся к выпуску новый калькулятор компании Hewlett-Packard (HP) — значительно более быстрый, полностью автономный настольный компьютер-калькулятор с развитым программированием, существенно превосходивший 300-ю серию по возможностям. Вслед за ним конкуренты начали предлагать новые модели с увеличенной памятью, программированием и более современной архитектурой, постепенно отвоевывая у Wang наиболее прибыльный сегмент рынка настольных вычислительных машин.

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

Именно в этом контексте появился Wang 362 — не как очередная плановая модернизация, а как вынужденный «переходный» продукт.

Это был первый шаг, призванный сохранить конкурентоспособность устаревающей 300-й серии.

Тригонометрическая пристройка

Вторым шагом стал выпуск новых, так называемых тригонометрических терминалов 320 KT/KR, 360 KT/KR, 362 KT/KR. Они подключались к уже имевшимся у пользователей соответствующим вычислительным блокам.

На клавиатурах появились четыре дополнительные функции: синус, косинус, арксинус и арктангенс. Интересно, что модели KT оперировали с углами в градусах, а KR — радианами.

Физически такие терминалы были крупнее обычных и имели более сложную конструкцию: чтобы не модернизировать (а тем более не выпускать новый) вычислительный блок, инженеры Wang встроили в корпус клавиатуры автономный транзисторный модуль управления.

При нажатии, например, кнопки [SIN], логика внутри клавиатурного блока сама «диктовала» центральному блоку последовательность команд (имитировала нажатие соответствующих клавиш), реализующую вычисление функции через разложение в ряд Тейлора.

Однако у такого решения, с сохранением совместимости, были ограничения – предварительное содержимое регистров L, AR и AL уничтожалось. Кроме того, тригонометрические функции не могли использоваться в программах калькуляторов серии 300.

Кстати, о программировании

У всех моделей серии программирование предоставлялось как опция. Для этого отдельно приобреталось устройство чтения перфокарт Card Programmer CP-1.

CP-1 представляло собой компактное устройство для автоматизации вычислений с клавиатурами серии 300-362. Он считывал 80-шаговые карты с двухзначными восьмеричными кодами команд, соответствующие операциям клавиатуры.

Надо отметить, набор команд для составления программ заметно уступает LOCI-2.

Перфокарты и сам принцип «программирования» были такими же, как и у LOCI-2 – чтобы «написать» программу, программист должен был карандашом или с помощью портативного перфоратора и специального стилуса выдавить на карте отверстия, соответствующие коду команды данного шага в восьмеричном представлении.

Перфоратор, стилус, 200 пустых перфокарт и некоторая библиотека программ входили в комплект CP-1.

На самом CP-1 имелись две кнопки и переключатель. Кнопка [START] запускала программу с шага 00, а [CONTINUE] возобновляла выполнение с текущей позиции после команды «STOP», предназначенной для остановки программы и ввода данных.

Если переключатель [STEP / AUTO] находился в положении «AUTO», шаги программы считывались и выполнялись последовательно. В положении «STEP» по нажатию [CONTINUE] считывался и выполнялся один шаг, что позволяло отлаживать программу пошагово.

Интересно, что для принудительной остановки программы инструкция рекомендовала просто открыть крышку Card Programmer. Это странное решение, по всей видимости в силу своей редкой востребованности, было приемлемо, поскольку в языке отсутствовали команды ветвления и переходов – зациклиться программа не могла.

Имелась возможность записать программу на несколько карт. На последнем шаге каждой карты должна была находиться команда «STOP». После этого карту можно было заменить и продолжить выполнение программы кнопкой [START].

Устройство CP-1 последовательно соединялось между электронным блоком и клавиатурой с помощью специального прилагаемого кабеля и бокового разъема. С терминалом электронного блока типа E могло использоваться одно CP-1 и до четырех для индивидуальной работы с каждым терминалом блока SE.

CP-1 могло использоваться и с тригонометрическими терминалами, но, как отмечалось выше,тригонометрические функции в программе были недоступны.

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

CP-2

В январе 1969 года WANG анонсировало устройство CP-2. Новый Card Programmer позволял последовательно подключать до четырёх считывателей карт, что увеличивало максимальную длину программы до 320 шагов. Ручная смена перфокарт была одним из неудобств, которые особенно раздражали пользователей: 80 шагов во многих случаях оказывалось слишком мало.

 

Система CP-2 состояла из двух типов считывающих устройств. Основное устройство CP-2M (Master) подключалось к электронному блоку калькулятора и терминалу, а дополнительные CP-2S (Slave) последовательно соединялись с CP-2M. 

Но главное нововведение находилось внутри CP-2M. Специальная схема распознавала дополнительный код операции и запускала обработку условной инструкции: проверялось, является ли значение на дисплее (в регистре W) отрицательным, после чего при выполнении условия осуществлялся переход. Таким образом, в программах Wang 300 появилась хотя бы простейшая возможность ветвления.

Интересно, что WANG Labs предлагала за «небольшую плату» модернизировать существующие устройства CP-1 до модели CP-2S.

Опять угнаться за HP. WANG 370

Но даже с учётом всех этих нововведений программирование 300-й серии оставалось весьма ограниченным. Не имея полноценного счётчика команд (Program Counter, PC) и других необходимых инструментов, она по возможностям программирования отставала даже от более раннего LOCI-2 — не говоря уже о новых калькуляторах других производителей, и особенно HP.

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

Рекламный прототип 370-й.
Рекламный прототип 370-й.

В июле 1967 года Ван представил модель 370 (поступила в продажу через год) — клавиатуру/дисплей со встроенной электроникой, которая расширяла возможности программирования калькуляторов серии Wang 300. Появились переходы, работа с внешней периферией и другие функции, которых не было у обычных терминалов.

Wang 370 можно было подключить к любому электронному блоку серии 300, хотя в качестве основной конфигурации рекомендовались старшие модели 360E/SE и 362E.

В комплекте с Wang 370 поставлялась собственная система считывания перфокарт Wang 371, построенная по уже знакомой схеме «один Master — до трёх Slave». Использовались обычные перфокарты, а конструкция считывателей несколько отличалась от CP-1 и CP-2.

Одной из главных задач Wang 370 было расширение возможностей программирования. Появились логические операции и переходы, циклы, подпрограммы, а также возможность переключаться между считывателями карт. Для этого в систему были добавлены новые коды команд.

От предыдущих терминалов 370-й отличался прежде всего наличием собственной логики. Внутри находились дополнительные платы, отвечавшие за управление считывателями Wang 371, а также за декодирование и выполнение новых команд.

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

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

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

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

WANG 380. Магнитная ленточка памяти

И возможно, как ответ на это, в марте 1968 года Ван представил клавиатуру WANG 380. Это устройство функционально повторяло 370-ю модель, но выводило на новый уровень функцию программирования.

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

Первое – 380 стал первым устройством, при программировании которого компания Wang Labs отошла от использования исключительно перфокарт. Для хранения программ в терминал был встроен накопитель на магнитной ленте. В него устанавливались картриджи – версия 8-дорожечной кассеты 8-track cartridge (популярный формат для домашних и автомобильных стереосистем с середины 1960-х до начала 1980-х годов, когда компактная кассета превзошла ее по популярности для записи музыки). 

Особенностью этих картриджей являлась бесконечная петля магнитной ленты. Поэтому у программ в 380-й модели уже не было жёсткого ограничения по количеству шагов, как у перфокарт: размер программы определялся только длиной ленты в картридже. Wang Laboratories выпускала картриджи разной длины для программ разного размера. 

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

Однако у ленточного носителя был и существенный недостаток – Wang 380 оказался значительно медленнее 370-го. При выполнении программы считывание команды и движение ленты занимало заметное время.

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

В результате программы с большим количеством переходов, подпрограмм или итераций выполнялись заметно медленнее, чем на 370-м, и тем более медленнее, чем на калькуляторах Hewlett-Packard. В них пользовательские программы хранились в значительно более быстрой памяти на магнитных сердечниках — и именно с такими машинами Wang приходилось конкурировать в те годы.

Эволюция программирования

Уровень

Модели

Возможности

Без программирования

300–362

Только ручной расчёт.

CP-1

300–362

Запись последовательности команд на перфокарту. Только линейное выполнение программы.

CP-2

300–362

Запись последовательности команд на перфокарту. Только примитивное условное ветвление.

371,

лента 380

360E / 362E + 370 / 380

Полноценное программирование: условные проверки, ветвления, длинные программы, подключение внешних устройств, работа с перфокартами (370, 380) или магнитной лентой с режимом обучения (380)

Дополнительная память и внешние устройства

Терминалы 370 и 380 имели еще одно важное улучшение – шину ввода-вывода, позволявшую подключать широкий спектр периферийных устройств серии 37x. Для работы с ними была разработана группа специальных программных инструкций, которые взаимодействовали с внешними устройствами, подключенными к порту на задней панели терминалов.

В числе распространенных устройств расширения были дополнительные модули памяти. Первым вариантом был Model 372.

Блок хранения данных 372 имел 16 независимо адресуемых регистров. К одному калькулятору можно было подключить до четырех блоков. Регистры одного блока представляли собой матрицу 2 × 8, а четыре блока образовывали «квадрат» 8 х 8.

Адресация к конкретному регистру осуществлялась через двухзначный адресный код RC, где R – номер строки (от 0 до 7) и C – номер столбца (тоже от 0 до 7) в матрице 8 х 8.

Для работы с блоками памяти на клавиатурах 370/380 имелись специальные переключатели и кнопки.

Для ручного доступа к заданному регистру необходимо было выставить переключатели "40-20-10-4-2-1" в положение, соответствующее адресу RC, а затем нажать клавиши [Store DIRECT] и [Special Code] для сохранения значения регистра индикатора W в регистре RC. Клавиши [Recall DIRECT] и [Special Code] считывали значение из регистра RC в W.

В программе сохранение и восстановление чисел осуществлялось шагом с инструкциями «Store Direct» или «Recall Direct», за которыми следовал шаг с непосредственно числовым адресным кодом RC. Значение переключателей не учитывалось в программе.  

И всё бы хорошо, но стоимость одного блока составляла 1000 долларов США тех лет!

Более старшая Model 373, похожая по внешнему виду на 372, содержала уже 64 регистра — то есть сразу полную матрицу 8 × 8 — при цене 2500$. Для прямой адресации использовалась та же система двухзначного кода, задававшего номер строки и столбца. Команды [STORE DIRECT] и [RECALL DIRECT] работали аналогично 372-й модели.

Однако в 373-й появилась ещё одна возможность — косвенная адресация. Для неё использовалась пара дополнительных регистров – счетчики строк «Row» и столбцов «Column». Они задавали текущие координаты в матрице. Специальные команды позволяли использовать эти значения при программировании косвенной адресации – команды [STORE INDIRECT] или [RECALL INDIRECT] совместно с командой-функцией.

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

В примере ниже: слева показаны команды программы работы с расширенной памятью. Программа последовательно задаёт значения 1,2,3,4 в указанные справа регистры матрицы памяти.

Помимо модулей памяти, для 370-й и 380-й моделей выпускались различные интерфейсные устройства.

Model 379-5 обеспечивал ввод-вывод для популярной в то время модифицированной пишущей машинки IBM Selectric Output Writer.

Model 377 подключал известный нам терминал ввода/вывода Teletype Model 33ASR, а Model 379 являлся интерфейсом для графического дисплея.

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

 Апогей

Консоль программирования Wang 370 с электронным блоком 360E, четырьмя устройствами для считывания перфокарт Model 371, блоком хранения данных Model 373 и телетайпным интерфейсом Model 377 с модифицированным терминалом Teletype Model 33ASR, дополненная интерфейсными модулями серии 379 для задач реального времени – такой комплект действительно представлял собой пусть и громоздкую, но довольно мощную вычислительную систему.

Она позволяла управлять сбором данных с приборов, программно обрабатывать результаты, выводить их на дисплей или печать, а также формировать управляющие сигналы в BCD-коде. В некоторых задачах такая система могла конкурировать по производительности с доступными тогда мини-компьютерами начального уровня, оставаясь при этом существенно дешевле — при стоимости комплекта до 10 000 долларов.

 Но и это еще не всё: серия WANG 200

300-я серии имела большой коммерческий успех. Однако у неё оставалась знакомая по LOCI-2 проблемка: особенности логарифмической вычислительной архитектуры могли приводить к небольшим остаточным ошибкам округления.

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

Полностью перерабатывать архитектуру 300-й серии для перехода к фиксированной десятичной точке было бы дорого и практически означало бы создание новой конструкции. Вместо этого Wang добавила достаточно простую логическую плату, автоматически выполнявшую округление по третьему знаку после запятой. Так формально появилась новая 200-я серия.

Например, 2 ÷ 3 на калькуляторе серии 300 давало результат 0,666666667, а на машине серии 200 — 0,670000000. Десятичная точка при этом оставалась плавающей, а справа по-прежнему отображались нули. Но поскольку результат автоматически округлялся до двух знаков после запятой, машины серии 200 вполне подходили для финансовых и деловых расчётов.

В конце 1967 года были представлены две модели серии 200 — 200SE и 210SE. Они предназначались прежде всего для бизнеса и финансовых организаций. 200SE представляла собой 300SE с дополнительной платой округления, а 210SE — 310SE с той же платой.

Клавиатуры серии 200 работали так же, как соответствующие клавиатуры серии 300, если подключались к электронному блоку 300-й серии. Например, 210K по функциям соответствовала 310K. Однако при подключении 210K к электронному блоку 300-й серии функция округления, конечно, не работала бы.

И наоборот: если клавиатуру 300-й серии подключить к электронному блоку серии 200, функция округления будет работать — поскольку она реализована именно в электронном блоке.

Благодаря такой высокой степени совместимости пользователи и продавцы могли фактически рассматривать 200-ю и 300-ю серии как одно семейство машин, ориентированное на разные задачи: 300-я серия — для инженерных и научных расчётов, 200-я — для финансовых и деловых.

А что же LOCI-2?

300-ая серия появилась после LOCI-2 и уже через год стала основным источником дохода для Wang Laboratories. 

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

Калькуляторы серии 300, в свою очередь, стали главным коммерческим продуктом Wang и обеспечили компании лидирующие позиции на рынке. Их производство продолжалось с 1966 по 1973 год, а продажи отдельных моделей — до середины 1970-х. При этом активная разработка самой 300-й серии завершилась примерно к середине 1969 года.

Историческое наследие

Калькуляторы Wang 300-й серии, безусловно, оставили заметный след в истории вычислительной техники и являются одним из наиболее интересных примеров инженерного компромисса в ранней истории электронных вычислений. В эпоху, когда интегральные схемы только начинали распространяться, а транзисторная логика оставалась сложной и дорогой, доктор Ан Ван разработал уникальную логарифмическую архитектуру.

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

Калькуляторы 300-й серии

Эл.блок

Терминал

Год появления

E / SE

Назначение

Отличительные особенности

300 E/SE

300K

1966/1968

Базовый калькулятор

Только четыре арифметические операции. Самая дешёвая модель серии.

310 E/SE

310K

1966/1968

Инженерные расчёты

Добавлены √x и x². Дополнительная плата и клавиши.

320 E/SE

320K

1966/1968

Научные расчёты

Добавлены ln(x) и eˣ. Полностью укомплектованный вычислительный блок 320E.

360 E/SE

360K

1967/1969

Более сложные вычисления

Четыре регистра памяти Store/Recall. Самая функциональная стандартная модель.

362E

362K

1968

Расчёты с большим объёмом промежуточных данных

12 полных или 24 половинных регистра памяти. Новая схема адресации памяти. Возможность Store, Recall, Add и Subtract по адресам памяти.

320-362 E/SE

320KT / KR

360KT / KR

362KT / KR

1968–1969

Тригонометрические расчёты (KT -градусы, KR - радианы)

Дополнен встроенным секвенсором с диодным ПЗУ, автоматически выполняющий программы вычисления sin, cos, arcsin, arctan. С любым блоком E/SE.

Терминал 370

1968

Полностью программируемая система, с блоками 360E, 362E.

Программирующая клавиатура с чтением программ с перфокарт через считыватели 371. Поддержка условных переходов и ветвлений.

Терминал 380

1968

Полностью программируемая система, с блоками 360E, 362E.

Программы в режиме обучения записываются на магнитную кассету. Поддержка условных переходов и ветвлений.

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

Но продолжения не последовало: 300-я серия оказалась последним поколением программируемых калькуляторов на патентованном метода Ан Вана.


Как-то доктора Вана пригласили на закрытую презентацию прототипа калькулятора, который разрабатывала Hewlett-Packard и который впоследствии получил название HP 9100A. Увидев машину, Ван, по воспоминаниям, понял, что для сохранения конкурентоспособности Wang Labs необходима уже не очередная модернизация существующей архитектуры, а технологическая революция.

Ответом стала новая 700-я серия.

Ан Ван с рекламным муляжом Wang 700.
Ан Ван с рекламным муляжом Wang 700.

Серия 700

Первой машиной нового поколения стала 700-я серия, анонсированная в декабре 1968 году и поступившая в серийное производство в 1970 году.

Новые калькуляторы не имели ни чего общего с 300-й серией. Основу элементной базы составляли TTL-интегральные схемы, оперативная память на ферритовых сердечниках и микропрограмма, записанная в постоянной памяти типа wire-rope ROM. Логарифмическая архитектура была полностью заменена универсальной десятичной арифметикой, выполняемой под управлением микрокода.

Исчезли два независимых вычислительных регистра Left и Right, характерные для серии 300. Вместо них появились более понятные регистры X и Y, причем каждый имел собственный дисплей на тех же лучевых трубках типа NIXIE. Возможно поэтому результат арифметических операций попадал в Y, что очень непривычно, а X оставался без изменений.

Клавиша ENTER (стрелка вверх), не только, как и раньше, завершала ввод числа, но и копировала его в Y. Также имелись операции копирования Y в X (стрелка вниз) и обмен X ⇄ Y. Вычисление арифметики выполнялось сразу после нажатия операции с выдачей результата, поэтому традиционный знак «=» по-прежнему отсутствовал.

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

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

Программирование Wang 700 осуществлялось в режиме LEARN. Максимальная длина программы составляла 960 шагов.

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

Программа факториал числа. Надо помнить, результат арифметики попадает в Y.
Программа факториал числа. Надо помнить, результат арифметики попадает в Y.

Для хранения программ использовался встроенный магнитофон, работавший с обычными аудиокассетами. На одну кассету помещалось примерно до 10 программ по 960 шагов каждая. Для загрузки программы в память оператор переводил аппарат в режим LEARN и выполнял команду [LOAD PROG].

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

По своим возможностям программирования 700-я серия уже заметно приближалась к мини-компьютерам тех лет.

Эмулятор Wang 700
Эмулятор Wang 700

Надо отметить, знакомство с функциями Wang 700 оказалось интересным. Этому помог и существующий эмулятор, который удалось запустить. Возможно, в дальнейшем этой машине будет посвящен отдельный очерк.

И далее…

Наладив производство 700-й, Wang Labs выпускала новые семейства — 500-я серия, ориентированная больше на научные задачи (1971 год), 600-я — на инженерные и бизнес-применения (1972 год), и более компактная 400-я (1972 год). Машины этих серий также перешли на новую микропрограммную архитектуру и использовали более современную элементную базу. В 600-й и 400-й сериях применялись неоновые газоразрядные панели Burroughs Panaplex меньшего размера.

Небольшим реверансом в историю можно считать лишь то, что в этих сериях инженеры сознательно вернули характерную для 300-й серии организацию вычислений с двумя независимыми арифметическими блоками Left и Right, которые выполняли уже все четыре действия. Соответственно, у этих калькуляторов исчез регистр Y и второй дисплей.

Также в 1970-72 годах выпускалась и неудачная 100-я серия. Её производили на устаревшей элементной базе с медленным диодным ПЗУ, продавали в убыток и вскоре прекратили производство.

Серии 600 и 500 имели встроенный магнитофон и числовой принтер. Для аппаратов всех линеек можно было приобрести внешние считыватели перфокарт, кассетные магнитофоны, принтеры и другую периферию.

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

Машины флагманской серии 700 были достаточно успешными, но их выпуск запоздал по сравнению с HP 9100. Компания Вана стала отставать от Hewlett-Packard и в дальнейших разработках. За несколько лет Wang Labs утратила лидирующие позиции на рынке калькуляторов и, несмотря на продажу калькуляторов практически до конца 70-х годов, так и не смогла их вернуть в дальнейшем.

В середине 70-х годов Ван был вынужден уйти из бизнеса калькуляторов. Однако именно наработки последних лет легли в основу востребованных направлений компании — в частности, мини-компьютера Wang 2200 и знаменитых систем обработки текстов, которые на долгие годы сделали Wang Laboratories одним из заметных технологических игроков отрасли.

Один из первых вариантов Wang 2200.
Один из первых вариантов Wang 2200.

ЗЫ: WANG Д3-28

История Wang Labs получила неожиданное продолжение в советской электронной промышленности. На основе «изучения» архитектуры 700-й серии сначала был создан практически прямой прототип — «Электроника С50» (15ВCМ-5), а затем — существенно переработанная настольная вычислительная машина «Электроника Д3-28».

Д3-28 сохранила черты исходной архитектуры, оригинальную регистровую логику и систему команд. При этом за почти десятилетие, прошедшее с появления Wang 700, советские разработчики получили возможность использовать значительно более современную элементную базу.

В машине применялось полупроводниковое ОЗУ объёмом до 128 КБ, масочные ПЗУ и средства работы с текстовыми данными в кодировке КОИ-7. Благодаря этому Д3-28 далеко вышла за рамки обычного клавишного калькулятора. С помощью промышленных интерфейсов к ней подключали видеотерминалы со стандартной клавиатурой, различную периферию, использовали как управляющий компьютер в научных и производственных комплексах вплоть до начала 1990-х годов.

Была создана большая библиотека программ различного направления. И даже специально написанные транслятор Фортран и интерпретаторы Бейсика, которые загружали с магнитной ленты кассет МК-60.

Но это уже совсем другая история...

И кто теперь вспомнит, что всё когда-то начиналось с LOCI - LOgarithmic Computing Instrument, странного инструмента логарифмических вычислений…


«Ан Ван внёс значительный вклад в восстановление одной из исторических достопримечательностей Бостона — театра, который в то время назывался Metropolitan Theatre. В 1983 году он был переименован в Wang Theatre (Театр Вана), а расположенный рядом Metropolitan Center получил название Wang Center for the Performing Arts (Центр сценических искусств Вана).»