Hazeltine 2000 — один из первых универсальных «умных» компьютерных терминалов , [1] [a] представленный в октябре 1970 года по цене 2995 долларов США (что эквивалентно 23 500 долларам США в 2023 году). В то время как более ранние терминальные системы включали «умные» функции редактирования, в частности IBM 2260 , Hazeltine 2000 был первым, который использовал стандартный интерфейс RS-232 и отправлял свои управляющие последовательности в потоке данных. Его можно было подключить к любому современному мини-компьютеру или мэйнфрейму , имевшему последовательный порт [2] и использовавшему наборы символов стандарта ASCII .
Одной из передовых функций дизайна была концепция « пакетного режима », который кэшировал данные, вводимые пользователем, и отправлял их все сразу на хост. Система также имела две интенсивности отображения, передний план и фон (яркий и тусклый). Данные, отправляемые в фоновом режиме, были независимыми и не отправлялись обратно на сервер. Это позволяло отправлять формы как текст в фоновом режиме, а затем переключать терминал в режим переднего плана для ввода данных. Это использовалось для создания экранных форм, которые можно было заполнять и очищать без необходимости повторной отправки фоновой компоновки.
Базовая модель отображала 27 строк по 74 символа, только заглавные буквы, в то время как расширение добавило строчные буквы и макет 80 на 25. В 1974 году расширенная версия стала единственной моделью, а цена была снижена. Базовая система была переработана несколько раз с использованием новой электроники, которая стала доступна в 1970-х годах. Hazeltine 1500 была более дешевой версией, представленной в 1977 году. Команда разработчиков была недовольна поддержкой, которую они получили от корпорации, и подразделение было выделено в отдельную компанию Esprit Systems.
Система представляла собой устройство «все в одном» с 12-дюймовым диагональным экраном с зеленым фосфором и областью отображения 8,5 на 5,75 дюймов. Система весила 62 фунта (28 кг) и требовала не менее 24 дюймов (610 мм) глубины на столе, а также потребляла огромные 350 Вт во время работы. Ей требовалось 30 секунд для «разогрева», и для охлаждения системы постоянно работал вентилятор. [3] Более поздние модели сначала выросли до 63 фунтов (29 кг), а затем упали до 57 фунтов (26 кг). [4]
В отличие от большинства стеклянных терминалов той эпохи, 2000 предлагал только RS-232 , не имея общей токовой петли на основе Teletype Model 33 , которая широко использовалась в качестве специального терминала в 1970-х годах. Переключатели на задней стороне корпуса позволяли устанавливать скорость на все распространенные скорости от 110 до 9600 бит/с. Второй переключатель, «CA», добавлял дополнительные Request To Send
символы для отправки данных, чтобы повернуть канал связи в полудуплексных модемах, таких как WE202C. Это также имело побочный эффект снижения скорости; при включении максимальная скорость составляла 1200 бит/с, но он также поддерживал более широкий диапазон скоростей ниже этого, чтобы соответствовать диапазону скоростей, наблюдаемых с этими модемами , добавляя 150 и 600 бит/с. [5]
Система также имела выходы для принтера, кассетного хранилища и видеосигнала, так что его можно было дублировать на трех дополнительных экранах. Разъемы были сложными, крепления HDR-панелей на основе тех, что использовались в авионике , основной сфере деятельности Hazeltine. RS-232 подключался через жестко смонтированный кабель с 25-контактным разъемом на конце, а не через порт на задней панели. [6]
Клавиатуру можно было отсоединить, подключив к терминалу с помощью 5-футового (1,5 м) 54-контактного HDR-разъема. [4] Она имела основную часть с раскладкой пишущей машинки с 51 клавишей, а также цифровую клавиатуру справа и секцию управления курсором справа от цифровой клавиатуры. Справа от нее в столбце шла серия из семи индикаторов состояния и кнопок с выключателем в верхней части столбца. [7]
Четность выбиралась с помощью вращающегося переключателя на задней панели: нечетный, четный, всегда 1 или всегда 0. Ошибка четности приводила к загоранию лампы четности, которую можно было сбросить, нажав на нее. [8]
Система базовой модели имела набор символов из 64 символов, охватывающих набор ASCII верхнего регистра . Они были нарисованы на экране в матрице точек 5 на 7, что позволяло 27 строк по 74 символа в каждой строке. С дополнительной опцией нижнего регистра матрица символов была расширена до 5 на 8, что позволяло иметь только 25 строк, хотя, слегка настроив дисплей, они расширились до 80 столбцов в ширину. [9]
Ключевой особенностью 2000 была его способность переходить в «пакетный режим» либо нажатием соответствующей лампы/кнопки справа от клавиатуры, либо отправкой соответствующей команды в виде кодов ASCII с хост-компьютера. Когда терминал находился в этом режиме, включалась пакетная лампа/кнопка. [10]
В пакетном режиме набор текста на клавиатуре не отправлялся немедленно на хост, а вместо этого буферизовался в 2 КБ внутренней памяти ядра . Буферизированные данные отправлялись, когда пользователь нажимал клавишу возврата. Обычно отправляемые данные представляли собой все, что находилось на строке до курсора, но это можно было изменить, нажав ⇧ Shiftи удерживая специальную клавишу в кластере курсора. [11] Это приводило к появлению второго курсора на экране в текущем местоположении, и он начинал отправлять данные с этой позиции до первого символа возврата каретки, который он видел в данных. [12]XMIT
Пакетный режим обычно использовался в сочетании с отдельной функцией, режимом переднего плана/фона. Эта система позволяла отображать текст на экране с нормальной интенсивностью, передний план, или с пониженной интенсивностью, фон. Режим для каждого символа на экране удерживался в буфере, поэтому данные переднего плана и фона могли отображаться в любом месте экрана. [13]
Ключевой особенностью этой концепции является то, что общие команды, такие как очистить экран, могут быть введены для очистки только данных переднего плана или фона, а пакетный режим отправляет только символы переднего плана. На практике хост-компьютер отправлял бы поток данных в фоновом режиме для компоновки формы, отправляя пробелы в режиме переднего плана для указания областей ввода. После завершения формы он переключался бы обратно в режим переднего плана и включал бы пакет. [13]
После отправки таким образом ввод пользователя будет попадать только в те части экрана, которые находятся в режиме переднего плана, и только его записи будут отправлены обратно на хост. Кроме того, клавиши курсора и клавиша табуляции пропускали фоновые символы, позволяя пользователю легко перемещаться по форме от поля к полю. [13]
Как и множество последующих интеллектуальных терминалов, 2000 использовал escape-последовательность для отправки команд на терминал. Для 2000 команды обозначались как , что они называли «вводным кодом». [14] Одиночный символ, следующий за вводным кодом, определяет действие. К ним относятся (shift out) для запуска передачи в пакетном режиме, (unit partition) для указания того, что следующие данные находятся в режиме переднего плана, (end of media) для указания фона, (file partition) для очистки экрана или (group partition) для очистки только переднего плана. [15]Control-Shift-periodSO
US
EM
FS
GS
Набор команд также включал базовое редактирование и позиционирование курсора, типичное для других интеллектуальных терминалов. DC2
отправлял курсор в «домашнюю» позицию в верхнем левом углу, DC3
удалял строку и SUB
(заменяя) вставлял пустую строку под позицией курсора. [15] DC1
позволял отправлять курсор в указанное место на экране, следуя за ним двумя символами ASCII, где код символа указывал число. Например, NUL
, код ASCII 0, отправлял курсор в строку или столбец 0. Чтобы избежать проблем при передаче, шаблон повторялся в 32, Space
, так что координата Y могла быть отправлена с использованием символов в диапазоне печатаемых символов . Координата X была слишком большой, чтобы поместиться в диапазоне печатаемых символов, поэтому она повторялась в символе 96, хотя это не позволяло обращаться ко всему диапазону таким образом. [16]