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