IMLAC Corporation — американская электронная компания из Нидхэма, штат Массачусетс , которая производила графические дисплейные системы, в основном PDS-1 и PDS-4 , в конце 1960-х и 1970-х годах.
PDS-1 дебютировал в конце 1969 года. [1] Это была первая недорогая [2] коммерческая реализация системы Sketchpad Ивана Сазерленда с высокой степенью интерактивности компьютерного графического дисплея с движением. Продаваемый за $8300 до опций, его цена была эквивалентна стоимости четырех Volkswagen Beetle . PDS-1 был функционально похож на гораздо более крупный IBM 2250 , который стоил в 30 раз больше. Это был значительный шаг вперед к компьютерным рабочим станциям и современным дисплеям.
PDS-1 состоял из монитора CRT , клавиатуры, светового пера и панели управления на небольшом столе с большей частью электронной логики в тумбе стола. Электроника включала простой 16-битный мини-компьютер , 8-16 килобайт памяти на магнитных сердечниках и процессор дисплея для управления движениями луча CRT.
IMLAC — это не аббревиатура, а имя поэта-философа из романа Сэмюэля Джонсона « История Расселаса, принца Абиссинии» . [3]
DEC GT40 имел схожий дизайн и цену с PDS-1D. Его настольная электроника была более компактной и использовала серийно выпускаемую плату PDP 11/05 в качестве локального мини-компьютера. Это автоматически давало ему гораздо больший набор инструментов программирования. Но он также обычно управлялся приложениями, работающими на более крупных системах PDP.
Монитор представлял собой 14-дюймовый монохромный векторный дисплей , постоянно обновляемый из локальной памяти. Его нормальное разрешение составляло 1024 на 1024 адресуемых точек и 2K x 2K в режиме масштабирования мелкого шрифта. Электронный луч ЭЛТ свободно перемещался в положении X и Y и под углом под управлением программы, рисуя отдельные наклонные линии и формы букв, что очень похоже на движения пера по бумаге плоттера . Луч пропускал пустые области экрана. Вещи можно было рисовать в произвольном порядке.
Векторные дисплеи являются устаревшей альтернативой растровым сканирующим дисплеям. В векторных дисплеях электронный луч ЭЛТ «рисует» только отображаемые линии и кривые. В растровых сканирующих дисплеях изображение представляет собой сетку пиксельных пятен («растровое» изображение), а луч ЭЛТ многократно обходит весь экран по фиксированному горизонтальному шаблону (как в телевизорах), независимо от того, какие точки включены. [13] Растровая графика с растровым изображением требует гораздо больше памяти, чем векторная графика. Разрешение 1024x768 черного/белого цвета уровня XGA требует 96 килобайт видеопамяти обновления, что в 12 раз больше, чем у базового PDS-1. В 1970 году такой объем основной памяти стоил около 8000 долларов. [14] (Сейчас он стоит всего 0,05 цента общей DRAM .)
Векторные дисплеи были хороши для показа диаграмм данных, изменения линейных чертежей и диаграмм САПР , переворачивания трехмерных каркасных фигур, редактирования текста, компоновки печатных страниц и простых игр. Но они не обрабатывали цвета, изображения, заполненные области, черно-белые экраны или точность WYSIWYG для шрифтов профессионально напечатанного текста.
Экран PDS-1 многократно обновлялся или перерисовывался 40 раз в секунду, чтобы избежать видимого мерцания. Но нерегулярное движение луча было медленнее, чем равномерное движение на растровых дисплеях. Отклонения луча приводились в действие магнитными катушками , и эти катушки боролись с быстрыми изменениями своего тока. Экран мерцал, когда заполнялся более чем 800 дюймами строк или более чем 1200 символами, потому что лучу тогда требовалось более 1/40 секунды, чтобы все проследить.
Конкурирующий графический терминал Tektronix 4010 с более низкой стоимостью использовал альтернативную технологию хранения на основе трубчатой ЭЛТ, которая не требовала постоянного обновления и, следовательно, не требовала никакой локальной памяти дисплея компьютера. Светящееся изображение запоминалось самим фосфором ЭЛТ . Но, как и в Etch A Sketch , накопленное изображение можно было изменять или перемещать только путем флэш-стирания всего экрана и последующего замедленного перерисовывания всего с помощью данных, повторно отправленных с какого-то большого компьютера. [15] Это было гораздо менее интерактивно, чем PDS-1, и не могло показывать анимацию.
На других дисплеях этой эпохи текстовые шрифты были жестко зашиты и не могли быть изменены. Например, пульты оператора CDC 6600 формировали каждую букву сразу, посылая электронный луч Charactron CRT через металлическую трафаретную маску с отверстием в форме буквы A или через отверстие в форме буквы B и т. д.
Но на PDS-1 все формы букв, размеры и интервалы полностью контролировались программным обеспечением. Каждая желаемая форма буквы E имела свою собственную подпрограмму отображения , которая выполняла последовательность коротких векторных штрихов для этой буквы. Каждое появление буквы на экране было вызовом процессора отображения к подпрограмме этой буквы. Эта схема обрабатывала произвольные шрифты, расширенные наборы символов и даже курсивные языки с письмом справа налево, такие как арабский. Более мелкие, самые быстро рисуемые шрифты были уродливыми, с ромбовидными аппроксимациями закругленных петель. Схема подпрограммы отображения также обрабатывала электронные символы дизайна. [16]
Лицевая сторона монитора PDS-1 была прямоугольной и была доступна в портретной или альбомной ориентации. Сетка точек 1K x 1K была растянута на 33% в длинном направлении, чтобы текст и графика могли заполнить экран. Все графические программы затем должны были учитывать неквадратные пиксели. Если система должна была использоваться в основном для графики, монитор можно было установить с нерастянутой сеткой, оставляя концы экрана постоянно неиспользуемыми.
Процессор дисплея PDS-1 и его мини-компьютер работали одновременно, используя одну и ту же память.
Инструкции для процессора дисплея состояли из 1-байтовых коротких инструкций для букв и кривых, 6-байтовых длинных векторных инструкций и 2-байтовых безусловных переходов. Процессор дисплея не имел обычных инструкций ALU и никогда не модифицировал память. Переходы поддерживали вызовы подпрограмм для повторяющихся объектов, таких как буквы и символы. Переходы также поддерживали упорядочивание отображаемых объектов в связанные списки для быстрого редактирования. Позиции XY были только в целочисленной форме. Не было поддержки поворотов или произвольного масштабирования на лету. Если символ пересекал край экрана, луч обертывался на другую сторону, а не обрезался, создавая размытие. Поэтому более высокие уровни приложения должны были выполнять тест на обрезку, используя отдельные структуры данных. (Это было исправлено в более поздних моделях.) Программирование подпрограмм шрифта букв осуществлялось с помощью языка ассемблера . Код для рисования линий и общей компоновки генерировался на лету программами, работающими на локальном мини-компьютере или на большом удаленном компьютере.
Встроенный миникомпьютер PDS-1 [17] был необходим для быстрого реагирования на взаимодействие пользователя с клавиатурой и световым пером, без задержек при обращении за помощью к удаленному большому компьютеру с разделением времени . Основной задачей миникомпьютера было создание и изменение списка отображения по мере необходимости для следующего цикла обновления. Для текста и двухмерной линейной графики это было легко и не требовало больших вычислений. Чтобы минимизировать затраты, Imlac разработал свой собственный простой миникомпьютер с минимальным количеством регистров и логических вентилей . Это была машина с одним аккумулятором, очень похожая на DEC PDP-8 , за исключением использования 16-битных инструкций и данных вместо 12-битных. Не было никаких инструкций целочисленного умножения/деления, инструкций с плавающей точкой, микропрограммирования , виртуальной адресации и кэша . Единственной формой изменения адреса были косвенные указатели адреса, хранящиеся в памяти. Некоторые ячейки указателя автоматически увеличивались при использовании. Операции со стеком не поддерживались.
Программирование этого миникомпьютера осуществлялось с помощью языка ассемблера. Он не был объектным кодом, совместимым с чем-либо еще, и поэтому имел ограниченную поддержку инструментов. В конечном итоге Imlac добавил самостоятельный компилятор Fortran с часовыми компиляциями из-за тесной памяти. Некоторые модели PDS имели дополнительный дисковод IBM 2310 или 8-дюймовый дисковод. Они работали на элементарной дисковой ОС, поддерживающей программные оверлеи. Диски были исключены из более поздних продуктов.
Электроника PDS-1 была построена на основе интегральных схем TTL низкой плотности серии 7400 , всего с дюжиной логических вентилей или 4 битами регистра на DIP- чип. Небольшие печатные платы вмещали до 12 чипов каждая. Неглубокий пьедестал стола вмещал три стойки или ряда карт, по 25 карт в ряду, и объединительную плату с проволочной накруткой, соединяющую все карты. Не было единой шины объединительной платы. Документация для клиентов включала полные схемы [18] вплоть до уровня вентилей, так что клиенты могли проектировать свои собственные интерфейсные платы. Можно было увидеть, потрогать и понять каждую деталь того, как работает вся система. Время цикла для основной памяти составляло 2,0 микросекунды для PDS-1 и 1,8 микросекунды для PDS-1D. Логика TTL работала в 10 раз быстрее, с 10 тактовыми импульсами на цикл основной памяти.
Базовый PDS-1 не включал в себя дополнительные аппаратные карты для длинных векторов. Вместо этого миникомпьютер создавал длинную последовательность инструкций отображения с коротким ходом. Программное обеспечение использовало быстрый метод Брезенхэма для вычисления промежуточных точек для наклонных линий без выполнения умножений или делений. Аппаратное обеспечение длинных векторов также нуждалось только в схеме сложения/вычитания. Если длинная векторная программа ошибочно запускалась на базовой машине без этой опции, процессор дисплея мог выйти из-под контроля и потенциально сжечь люминофор монитора или отклоняющие усилители.
PDS-1 и PDS-4 были куплены в небольших количествах организациями НИОКР и многими университетами. Они разработали пионерские компьютерные приложения и обучили следующее поколение дизайнеров графических систем. Гипертекстовая система FRESS имела улучшенные возможности и удобство использования, если к ней обращались из системы PDS-1; пользователь мог создавать гиперссылки с помощью светового пера и создавать их просто парой нажатий клавиш. Многооконное редактирование на FRESS также было возможно при использовании PDS-1. Системы PDS-1 использовались для разработки сетевого графического протокола Arpanet.
Системы отображения Imlac были объединены в различные более крупные коммерческие продукты, включающие визуальный дизайн и специализированное программное обеспечение. Imlac продала систему макетирования и набора газет с использованием PDS-1 под названием CES. Механическая САПР Anvil компании MCS использовала более поздние рабочие станции Imlac для интерактивного проектирования механических деталей, которые затем автоматически фрезеровались из металлической заготовки. [19]
Некоторые простые приложения, такие как текстовые редакторы, были полностью закодированы на ассемблере Imlac и могли работать без особого участия с более крупным компьютером. Хофштадтер написал свою книгу «Гёдель, Эшер, Бах» на редакторе Imlac. Но большинство графических приложений требовали мощной поддержки операций с плавающей точкой, компиляторов и файловой системы. Эти приложения работали в основном на дорогом компьютере с разделением времени, который отправлял обработанные данные изображений на Imlac, который запускал небольшую ассемблерную программу, эмулирующую универсальный графический терминал. Типичным использованием была визуализация архитектурных чертежей и анимированных пошаговых руководств, которые ранее были нарисованы в автономном режиме. Использование PDS-1 сдерживалось в течение нескольких лет из-за отсутствия стандартной библиотеки программ, поддерживающей анимацию или интерактивное рисование и перетаскивание объектов.
Но в ночное время студенты были готовы писать большие объемы ассемблерного кода просто ради развлечения. Наиболее памятными сегодня приложениями PDS-1 являются ранние интерактивные игры . Двухпользовательская Spacewar! была перенесена из демо-версии PDP-1. Freeway Crossing , ранний предшественник популярной аркадной игры Frogger , была создана на PDS-1 в рамках психологического эксперимента в 1971 году. [20] [21] Mazewar , первая многопользовательская компьютерная онлайн-игра , была создана на паре PDS-1. Позже до 8 игроков играли на станциях PDS-1 или других терминалах, подключенных к главному компьютеру MIT PDP-10 , на котором работала программа Mazewar AI . [22] Игры Mazewar между MIT и Стэнфордом были основной нагрузкой данных на раннем Arpanet .
Плотность, емкость и цена компьютерной памяти постоянно и экспоненциально улучшались на протяжении десятилетий, инженерная тенденция называется законом Мура . Ограничения обновляемых или запоминающих векторных дисплеев были приняты только в эпоху, когда эти дисплеи были намного дешевле альтернатив с растровым сканированием. Растровые графические дисплеи неизбежно взяли верх, когда цена в 128 килобайт перестала иметь значение.
Imlac PDS-1 в Xerox PARC впечатлили их своей интерактивностью и графикой. Но его уродливый текст побудил Чака Такера разработать экспериментальную растровую машину Xerox Alto в 1973 году [23] , за десятилетие до того, как такой объем памяти стал доступен для неисследовательских однопользовательских машин. А Alto привел к революции графического интерфейса пользователя.
PDS-1 и подобные векторные терминалы были вытеснены в 1980-х годах (непрограммируемыми) растровыми графическими терминалами, такими как AED767. [24] [25] И легко программируемыми персональными рабочими станциями с растровой графикой, такими как машина Terak 8510/a UCSD Pascal и высокопроизводительная система PERQ Unix . И они были вытеснены основанными на микропроцессорах массовыми Macintosh , Windows PC и игровыми консолями . А теперь и отдельными чипами внутри смартфонов .
В 2013 году был написан эмулятор Imlac под названием sImlac. [26] Обновленную версию этого эмулятора можно получить из репозитория GitHub сиэтлского Living Computers: Museum + Labs .
{{cite web}}
: CS1 maint: archived copy as title (link)