Текстовый режим — это режим отображения компьютера , в котором содержимое внутренне представлено на экране компьютера в виде символов, а не отдельных пикселей . Обычно экран состоит из равномерной прямоугольной сетки ячеек символов , каждая из которых содержит один из символов набора символов ; в то же время, в отличие от графического режима или других видов режимов компьютерной графики .
Приложения текстового режима взаимодействуют с пользователем с помощью интерфейсов командной строки и текстовых пользовательских интерфейсов . Многие наборы символов, используемые в приложениях текстового режима, также содержат ограниченный набор предопределенных полуграфических символов, используемых для рисования полей и другой элементарной графики, которая может использоваться для выделения содержимого или для имитации виджетов или объектов интерфейса управления, имеющихся в программах с графическим интерфейсом . Типичным примером является набор символов кодовой страницы IBM 437 .
Важной характеристикой программ текстового режима является то, что они предполагают моноширинные шрифты , где каждый символ имеет одинаковую ширину на экране, что позволяет им легко поддерживать вертикальное выравнивание при отображении полуграфических символов. Это была аналогия ранних механических принтеров, которые имели фиксированный шаг. Таким образом, вывод, видимый на экране, мог быть отправлен непосредственно на принтер, сохраняя тот же формат.
В зависимости от среды буфер экрана может быть напрямую адресуемым . Программы, которые отображают вывод на удаленных видеотерминалах, должны выдавать специальные управляющие последовательности для управления буфером экрана. Наиболее популярными стандартами для таких управляющих последовательностей являются ANSI и VT100 .
Программы, получающие доступ к экранному буферу через управляющие последовательности, могут потерять синхронизацию с реальным дисплеем, поэтому многие программы текстового режима имеют команду повторного отображения всего , часто связанную с комбинацией клавиш Ctrl+ L.
Текстовый режим рендеринга видео приобрел известность в начале 1970-х годов, когда ориентированные на видео текстовые терминалы начали заменять телетайпы в интерактивном использовании компьютеров.
Преимущества текстовых режимов по сравнению с графическими режимами включают меньшее потребление памяти и более быструю обработку экрана. [1] В то время, когда текстовые терминалы начали заменять телетайпы в 1970-х годах, чрезвычайно высокая стоимость оперативной памяти в тот период сделала установку достаточного объема памяти для компьютера, чтобы одновременно хранить текущее значение каждого пикселя на экране, чтобы сформировать то, что сейчас называется буфером кадра . Ранние буферы кадра были автономными устройствами, которые стоили десятки тысяч долларов, в дополнение к расходам на современные дисплеи высокого разрешения, к которым они были подключены. [2] Для приложений, которым требовалась простая линейная графика, но для которых расходы на буфер кадра не могли быть оправданы, векторные дисплеи были популярным обходным решением. Но было много компьютерных приложений (например, ввод данных в базу данных), для которых все, что требовалось, — это возможность быстро и экономически эффективно отображать обычный текст на электронно-лучевой трубке .
Текстовый режим позволяет избежать проблемы дорогой памяти, поскольку выделенное аппаратное обеспечение дисплея повторно отображает каждую строку текста из символов в пиксели при каждом сканировании экрана катодным лучом. В свою очередь, аппаратному обеспечению дисплея требуется только достаточно памяти для хранения пикселей, эквивалентных одной строке текста (или даже меньше) за раз. Таким образом, буфер экрана компьютера хранит и знает только о базовых текстовых символах (отсюда и название «текстовый режим»), и единственное место, где фактические пиксели, представляющие эти символы, существуют как единое унифицированное изображение, — это сам экран, который видит пользователь (благодаря явлению инерционности зрения ).
Например, буфер экрана, достаточный для хранения стандартной сетки 80 на 25 символов, требует не менее 2000 байт. [1] Если предположить монохромный дисплей , 8 бит на байт и стандартный размер 8 на 8 бит для каждого символа, то буфер кадра, достаточно большой для хранения каждого пикселя на результирующем экране, потребует не менее 128 000 бит, 16 000 байт или чуть меньше 16 килобайт. По стандартам современных компьютеров это может показаться незначительным объемом памяти, но для сравнения: оригинальный Apple II был выпущен в 1977 году всего с четырьмя килобайтами памяти и ценой 1300 долларов США (в то время минимальная заработная плата в Соединенных Штатах составляла всего 2,30 доллара в час). Более того, с точки зрения бизнеса, экономическое обоснование создания текстовых терминалов не имело бы смысла, если бы их производство и эксплуатация не обходились дешевле, чем прожорливые по объему бумаги телетайпы, которые они должны были заменить.
Другим преимуществом текстового режима является то, что он имеет относительно низкие требования к полосе пропускания при использовании удаленного терминала. Таким образом, удаленный терминал текстового режима может обязательно обновлять экран гораздо быстрее, чем удаленный терминал графического режима, подключенный к той же полосе пропускания (и, в свою очередь, будет казаться более отзывчивым), поскольку удаленному серверу может потребоваться передать всего несколько десятков байтов для каждого обновления экрана в текстовом режиме, в отличие от сложных вызовов удаленных процедур растровой графики , которые могут потребовать передачи и рендеринга целых битовых изображений .
Граница между текстовым режимом и графическими программами иногда может быть размытой, особенно на оборудовании VGA ПК , поскольку многие более поздние программы текстового режима пытались довести модель до крайности, играя с видеоконтроллером . Например, они переопределяли набор символов, чтобы создать собственные полуграфические символы, или даже создавали вид графического указателя мыши, переопределяя вид символов, над которыми указатель мыши показывался в данный момент времени.
Рендеринг в текстовом режиме с пользовательскими символами также оказался полезен для 2D- компьютерных и видеоигр, поскольку игровой экран можно обрабатывать гораздо быстрее, чем при пиксельно-ориентированном рендеринге.
Видеоконтроллер , реализующий текстовый режим, обычно использует две различные области памяти . Символьная память или таблица шаблонов содержит используемый растровый шрифт , где каждый символ представлен точечной матрицей ( матрицей битов ), поэтому символьную память можно рассматривать как трехмерный битовый массив . Матрица отображения ( текстовый буфер , экранный буфер или таблица имен ) отслеживает, какой символ находится в каждой ячейке. В простом случае матрица отображения может быть просто матрицей кодовых точек (так называемая таблица указателей символов ), но обычно она хранит для каждой позиции символа не только код, но и атрибуты .
В случае растрового вывода, который наиболее распространен для компьютерных мониторов, соответствующий видеосигнал формируется знакогенератором — специальным электронным блоком, аналогичным устройствам с таким же названием, используемым в видеотехнике . Видеоконтроллер имеет два регистра : счетчик строк и счетчик точек, которые служат координатами в точечной матрице экрана. Каждый из них необходимо разделить на соответствующий размер глифа, чтобы получить индекс в матрице отображения; остаток является индексом в матрице отображения. Если размер глифа равен 2 n , то можно просто использовать n младших разрядов двоичного регистра в качестве индекса в матрице отображения, а остальные разряды — в качестве индекса в матрице отображения — см. схему.
В некоторых системах память символов находится в памяти только для чтения . Другие системы позволяют использовать ОЗУ для этой цели, что позволяет переопределять шрифт и даже набор символов для конкретных приложений. Использование символов на основе ОЗУ также облегчает некоторые специальные методы, такие как реализация буфера кадра пиксельной графики путем резервирования некоторых символов для битовой карты и записи пикселей непосредственно в соответствующую им память символов. В некоторых исторических графических чипах, включая TMS9918 , MOS Technology VIC и графическое оборудование Game Boy , это был фактически канонический способ создания пиксельной графики.
Текстовые режимы часто назначают атрибуты отображаемым символам. Например, терминал VT100 позволяет подчеркивать, делать ярким, мигающим или инвертировать каждый символ. Устройства с поддержкой цвета обычно позволяют выбирать цвет каждого символа, а часто и цвет фона, из ограниченной палитры цветов. Эти атрибуты могут либо сосуществовать с индексами символов, либо использовать другую область памяти, называемую цветовой памятью или памятью атрибутов . [3]
Некоторые реализации текстового режима также имеют концепцию атрибутов строк. Например, VT100-совместимая линейка текстовых терминалов поддерживает удвоение ширины и высоты символов на отдельных текстовых строках.
В зависимости от используемого графического адаптера, на IBM PC–совместимых компьютерах доступны различные текстовые режимы . Они перечислены в таблице ниже: [4]
Текст MDA можно выделить с помощью ярких, подчеркнутых, инвертированных и мигающих атрибутов.
Видеокарты в целом обратно совместимы, т.е. EGA поддерживает все режимы MDA и CGA, VGA поддерживает режимы MDA, CGA и EGA.
Наиболее распространенным текстовым режимом, используемым в средах DOS и начальных консолях Windows, является режим по умолчанию 80 столбцов на 25 строк или 80×25 с 16 цветами. Этот режим был доступен практически на всех IBM и совместимых персональных компьютерах. Несколько программ, таких как эмуляторы терминала , использовали только 80×24 для основного дисплея и резервировали нижнюю строку для строки состояния .
Два других текстовых режима VGA, 80×43 и 80×50, существуют, но использовались очень редко. 40-колоночные текстовые режимы никогда не были очень популярны за пределами игр и других приложений, разработанных для совместимости с телевизионными мониторами, и использовались только в демонстрационных целях или с очень старым оборудованием.
Размеры символов и графические разрешения для расширенных VESA -совместимых текстовых режимов Super VGA зависят от производителя. Также на этих видеоадаптерах доступные цвета могут быть уменьшены вдвое с 16 до 8 при использовании второго настраиваемого набора символов (что дает общий репертуар из 512 — вместо обычных 256 — различных графических символов, одновременно отображаемых на экране).
Некоторые карты (например, S3 ) поддерживали пользовательские очень большие текстовые режимы, такие как 100×37 или даже 160×120. В системах Linux программа SVGATextMode часто используется с картами SVGA для настройки очень больших текстовых режимов консоли, например, для использования с мультиплексорами терминалов с разделенным экраном .
Многие современные программы с графическим интерфейсом имитируют стиль отображения программ текстового режима, особенно когда важно сохранить вертикальное выравнивание текста, например, во время компьютерного программирования . Существуют также программные компоненты для эмуляции текстового режима, такие как эмуляторы терминала или консоли командной строки . В Microsoft Windows консоль Win32 обычно открывается в эмулированном графическом оконном режиме. Ее можно переключить в полноэкранный, настоящий текстовый режим и наоборот, нажав клавиши Alt и Enter одновременно. [5] Это больше не поддерживается драйверами дисплея WDDM, представленными в Windows Vista. [6]
Виртуальная консоль Linux работает в текстовом режиме. Большинство дистрибутивов Linux поддерживают несколько экранов виртуальной консоли, доступ к которым осуществляется путем одновременного нажатия Ctrl , Alt и функциональной клавиши .
Библиотека с открытым исходным кодом AAlib предоставляет программы и процедуры, которые специализируются на переводе стандартных файлов изображений и видео, таких как PNG и WMV , и отображении их в виде набора символов ASCII . Это позволяет осуществлять элементарный просмотр графических файлов в текстовых системах и текстовых веб-браузерах, таких как Lynx .