4

Например, в старые времена компьютеры с DOS и прочим просто показывали буквы фиксированной ширины на экране ...

Какая функциональная часть этих компьютеров имела задание отображать физические символы, поскольку (я думаю) исходные операционные системы на самом деле не должны были создавать каждый пиксель, а вместо этого просто сбрасывали байт, соответствующий символу, где-то в памяти, и персонаж появился на экране?

Так что же делает фактический символ, соответствующий байту?

3 ответа3

4

Как описывает ссылка Ƭᴇcʜιᴇ007, в давние времена это делалось специализированным оборудованием в графической карте, называемой генератором символов. Пиксельный шаблон, соответствующий каждому символу, будет сохранен в ПЗУ (или СППЗУ) по адресу, соответствующему значению ASCII символа (или другому коду символа, поскольку наборы символов, отличные от ASCII, были тогда более распространенными). Вы можете изменить свой шрифт, заменив чип символьного ПЗУ на другой, содержащий разные битовые комбинации.

Затем довольно простая схема в графической карте генерирует пиксели на лету, считывая байт из буфера дисплея, используя его в качестве адреса для чтения байта из ПЗУ символа, а затем сдвигая все, что там было найдено, на видеопорт на один бит. вовремя. Поскольку часы, которые работают по этой схеме, синхронизируются с движением электронного луча в ЭЛТ (или наоборот), эти биты соответствуют видимым пикселям вдоль одной строки сканирования. Когда приходит время генерировать следующую строку сканирования, схема считывает данные из следующей строки символьных данных в каждой записи ПЗУ; или если он достигает нижней части символьной ячейки, он переходит к следующей строке в памяти дисплея и снова переносится в первый ряд символьной памяти.

Возможно, это звучит сложнее, чем на самом деле - это можно реализовать с помощью счетчиков и простых конечных автоматов.

Отображения с растровым отображением на самом деле проще: они просто читают все, что находится в памяти дисплея, и заполняют его через видеопорт без промежуточной таблицы поиска. Однако это, очевидно, требует гораздо больше оперативной памяти, а оперативная память была действительно дорогой.

3

Так что же делает фактический символ, соответствующий байту?

В ПК это оборудование называлось графическим адаптером (например, CGA, EGA, PGA и VGA) или адаптером дисплея (например, MDA). Они были на платах расширения (ака карты).

Обратите внимание, что графический адаптер имеет два режима, текстовый и графический. В текстовом режиме коды символов ASCII плюс другие коды, определенные IBM для записи в видеопамять, будут использовать встроенный шрифт для отображения текста в фиксированном формате на экране (например, 24 строки x 80 столбцов для VGA).

Текстовый режим не устарел, как вы подразумеваете. Современные операционные системы обычно имеют пользовательский интерфейс с графическим интерфейсом, поэтому в первую очередь используется графический режим. Но текстовый режим по-прежнему доступен во всех современных графических адаптерах, поскольку VGA должна поддерживаться. Экраны настройки BIOS, загрузочные программы, Linux без графики и синий экран смерти Windows все еще используют текстовый режим.

2

"В былые времена компьютеров с DOS и прочим" символы выводились на экран с помощью видеокарты. Если программа хочет записать текст на экран, она вызывает прерывание BIOS. Вызов прерывания будет содержать инструкцию (символ записи) в старшем байте регистра AX процессора, а символ, который будет напечатан, будет в младшем байте. BIOS передает это видеокарте, а видеокарта рисует символ на экране. Все было решено аппаратно.

Такого не было с тех пор, как умер DOS. Теперь современные операционные системы рисуют на экране, используя пиксели. Появление символов на экране обрабатывается службой рендеринга шрифтов, так что программы могут по-прежнему записывать на экран в простых терминах, не заботясь о "рисовании" букв на экране. Но средство визуализации шрифтов по-прежнему взаимодействует с видеооборудованием в терминах пикселей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .