Если вы мало знаете о терминалах, предлагаю вам прочесть первый раздел:
``Введение", а также ``Краткий обзор работы терминалов".
Регенерации изображения терминала самостоятельно происходит 60 раз в секунду
из изображения, сохраненного в памяти о терминале. Для PC изображение монитора
хранится в видеоплате внутри компьютера, а для терминала, эквивалент видеоплаты
находится внутри терминала. Для текстового терминала для хранения изображения
используется небольшой объем памяти. Вместо того, чтобы хранить в памяти каждый
пиксел экрана и тратить память на хранение около четверти миллиона точек,
используется намного более эффективный метод хранения.
Экран, заполненный текстом можно представить в памяти терминала ASCII байтами,
по одному для каждого символа на экране. Весь экран занимает около 2КБ ASCII
байтов. Чтобы отобразить эти символы, терминал должен также знать растр (форма)
каждого из почти 100 печатаемых символов ASCII. При использвования на растр
символа, скажем, 15 байтов, необходимо приблизительно только 1.5КБ памяти для
хранения растров всех символов ASCII (шрифта). Этот текст ASCII и память
шрифта просматриваются так, чтобы возникающее в результате изображение
выводилось на экран приблизительно 60 раз в секунду. Это форма общедоступной
памяти, где одиночный растр символа типа символа "e", разделен между всеми "e"
символами, которые появляются на экранном тексте. Низкие требования к памяти
привели к низким издержкам производства мониторов в начале 1980-ых, когда
стоимость памяти была в несколько тысяч раз выше, чем сегодня (несколько
долларов на килобайт).
Первые терминалы были кое-что вроде дистанционно управляемых пишущих машинок,
которые могли бы только "отображать" (печатать на бумаге) символьный поток,
посланный им из компьютера. Самые ранние модели назывались ``Телетайпами".
Ранние терминалы могли делать перевод строки и возврат каретки точно так же,
как пишущая машинка и подавать гудок, когда приходил символ гудка. Из-за малой
функциональности этот первый тип терминала, называется "dumb". Этот тип
интерфейса терминала (использование типа терминала, называемого "dumb") иногда
используется сегодня, когда компьютер не может выяснить с каким типом
терминала он общается.
Терминалы имеют много возможностей, некоторые из которых доступны всегда, а
некоторые из которых требуют активизации (или изменения) подачей команды от
компьютера. Чтобы осуществить все эти возможности при управлении компьютером
требуется назначить специальные коды так, чтобы компьютер мог сообщать
терминалу, что надо сделать. Имеется два главных типа таких кодов: управляющие
коды (управляющие символы) и escape-последовательности.
Управляющие коды
Управляющие коды (или управляющие символы) состоят из первых 32 байтов
алфавита ASCII. Они включают такие коды: возврат каретки (переместить курсор к
левому краю экрана), перевод строки (переместить курсор вниз на одну строку),
возврат на один символ, символ ESC, табуляция и звонок. Они обычно не
показываются на экране. Обычно имеется команда, которую вы можете дать вашему
терминалу, которая заставит отображать их при получении. Это называется чем-то
вроде "Видимость управляющих символов". Если вы сделаете это, то на дисплей
могут появиться беспорядочные символы, так как escape-последоательности,
которые начинаются с управляющего символа escape, больше не выполняются.
Слова, которые должны появиться наверху или внизу экрана, обнаружатся в
других местах. Escape-последовательности говорят, что надо позиционировать
курсор на экране, но курсор не двигается туда, куда указывает
escape-последовательность.
Escape-последовательности
Так как не имеется достаточного количества управляющих кодов, чтобы делать
все, используется множество escape-последовательностей. Они состоят из
управляющего символа "Escape" (ESC), сопровождаемого последовательностью
обычных символов. После получения символа ESC, терминал исследует символы
после него так, чтобы он мог интерпретировать последовательность и выполнить
команду компьютера, назначенную этой последовательности. Когда он распознает
конец последовательности, дальнейшие полученные символы, отображаются на
экране (если они не являются управляющими кодами или большим количеством
escape-последовательностей). Некоторые escape-последовательности могут иметь
параметры (или аргументы) типа координат на экране, в которые надо переместить
курсор. Параметры являются частью escape-последовательности.
Список escape-последовательностей для вашего терминала должен быть в
руководстве для терминала. Если бы терминал не очень старый, то может иметься
две или три сотни таких последовательностей. Если у вас нет руководства, то
нейти его непросто. Для vt100, последовательности доступны в Интернет. При
поиске в Интернет одной последовательности (типа ESC [5m) вы можете
натолкнуться на длинный список их. Один из способов определить некоторых из
них состоит в том, чтобы найти termcap (terminfo) для терминала и декодировать
его. См. ``Terminfo и Termcap (подробно)" в этом документе и/или ``Руководство
по termcap" в Интернет. К сожалению, termcap (terminfo) для терминала часто не
перечисляет все escape-последовательности, которые доступны для использования
в терминале, но частоупотребляемые, наиболее важные - обычно там есть.
Вперед
Назад
Содержание