Читаем Код. Тайный язык информатики полностью

Поначалу цифровые компьютеры не были интерактивными. Для программирования одних использовались переключатели и кабели, для программирования других — перфорированная лента или пленка. В период с 1950-х до начала 1970-х годов компьютеры эволюционировали до такой степени, что нормой стала пакетная обработка с минимальным вмешательством оператора: программы и данные сохранялись на перфокартах, которые затем считывались в память. Программа анализировала полученную информацию, делала некоторые выводы и печатала результаты на бумаге.

Самые ранние интерактивные компьютеры работали с помощью телетайпных аппаратов. Такие установки, как система распределения времени Дартмутского университета (начала 1960-х), описанная в предыдущей главе, позволяли одновременно применять несколько телетайпов. Пользователь набирал на телетайпе строку текста, на которую компьютер отвечал одной или несколькими строками, отпечатываемыми на рулоне бумаги. Обмен информацией между телетайпом и компьютером осуществлялся с помощью потоков ASCII-кодов (хотя могла быть и другая кодировка), включающих, помимо кодов символов, простые управляющие коды, например для возврата каретки и перевода строки.

Однако электронно-лучевая трубка, которая получила более широкое распространение в 1970-е, не имела таких ограничений. Программное обеспечение могло использовать экран более гибко — в качестве двумерной платформы для отображения информации. Тем не менее разработчики большинства программ для небольших компьютеров, вероятно привыкшие к определенной логике отображения информации, продолжали рассматривать экран в качестве «стеклянного телетайпа». Создаваемые ими программы выводили данные на экран построчно сверху вниз, а по достижении нижней границы его содержимое необходимо было прокручивать вверх. Именно таким способом дисплей использовали все программы CP/M и большинство программ MS-DOS, а операционная система UNIX до сих пор с гордостью поддерживает эту традицию.

Интересно, что набор символов ASCII не является столь уж неуместным при работе с ЭЛТ. Изначально эта кодировка включала код 1Bh (Escape), специально предназначенный для расширения набора отображаемых символов. В 1979 году Американский национальный институт стандартов опубликовал стандарт «Дополнительные управляющие символы для использования с ASCII». Его цель — «удовлетворение ожидаемых потребностей в контроле над вводом и выводом на двумерных устройствах отображения информации, включая интерактивные терминалы с электронно-лучевой трубкой и принтеры».

Код 1Bh занимает всего один байт, поэтому может иметь только одно значение. Код Escape предваряет последовательности символов, которые выполняют определенные функции. Например, последовательность, состоящая из кода Escape, за которой следуют символы [2J, стирает все содержимое экрана и перемещает курсор в верхний левый угол.

1Bh 5Bh 32h 4Ah

Телетайпный аппарат не позволяет сделать ничего подобного. Последовательность, состоящая из кода Escape, за которой следуют символы [5; 29H, перемещает курсор на пятую строку 29-го столбца.

1Bh 5Bh 35h 3Bh 32h 39h 48h

Комбинация ЭЛТ и клавиатуры, которая реагирует на ASCII-коды (возможно, и на Escape-последовательности), поступающие с удаленного компьютера, иногда называется «немым» терминалом. Такой терминал работает быстрее и гибче по сравнению с телетайпными аппаратами, однако его скорости недостаточно для внедрения нового в пользовательском интерфейсе. Настоящие инновации были реализованы в 1970-х годах в небольших компьютерах, в которых, как и в гипотетическом компьютере из главы 21, видеопамять была частью адресного пространства микропроцессора.

Первым признаком того, что домашние компьютеры будут сильно отличаться от своих более крупных и дорогих предшественников, было, вероятно, приложение VisiCalc, разработанное Даниэлем Бриклином (род. 1951) и Бобом Фрэнкстоном (род. 1949) в 1979 году для компьютера Apple II. Приложение VisiCalc выводило на экран двумерное изображение электронной таблицы. До этого электронная таблица представляла собой разлинованный лист бумаги, обычно используемый для выполнения вычислений. Приложение VisiCalc заменило бумагу экраном, позволив пользователю перемещаться по электронной таблице, вводить числа и формулы, а также пересчитывать результаты после внесения изменений.

Удивительным в VisiCalc было то, что это приложение нельзя было воссоздать на больших компьютерах. Подобным программам необходимо очень быстро обновлять экран. По этой причине приложение VisiCalc записывало данные непосредственно в видеопамять компьютера Apple II, являющуюся частью адресного пространства микропроцессора. Интерфейс между большим компьютером с системой распределения времени и «немым» терминалом работал недостаточно быстро для такой электронной таблицы.

Перейти на страницу:

Похожие книги