Текстовая полуграфика или псевдографика - это примитивный метод, использовавшийся в раннем текстовом режиме видеооборудование для имитации растровой графики без необходимости реализации логики для такого режима отображения.
Есть два разных способа выполнить эмуляцию растровой графики. Первый - создать режим с адресацией по всем точкам с низким разрешением с использованием набора специальных символов со всеми двоичными комбинациями определенной матрицы подразделения размера символа текстового режима; этот метод называется блочной графикой или иногда мозаичной графикой .
. Второй метод заключается в использовании специальных форм вместо глифов (букв и цифр), которые отображаются как при отрисовке в режиме растровой графики, иногда обозначается как полу- или псевдографика ; важным примером этого является символы рисования прямоугольником.
Полиграфические символы (включая некоторые элементы блока) по-прежнему включены в BIOS любой VGA совместимой видеокарты, поэтому любой ПК может отображать эти символы с момента его включения, даже если операционная система еще не загружена. Одинарные и двойные линии все еще часто рисуются этим методом, когда система использует текстовый режим; например, при запуске программы настройки BIOS.
Многие из этих исторических идей были приняты в Unicode, например, в Block Elements, Box Drawing и Геометрические формы Блоки Unicode.
Например, символ 8 × 12 можно разделить по вертикали на две половины и по горизонтали на три части, а затем назначить «чернила» и «фон» значения для элементов матрицы в двоичном шаблоне, соответствующие двоичной последовательности позиции в таблице шрифтов мозаичной матрицы 2 × 3 так называемых сквотов (квадратных точек). Реже используемые версии используют «матрицу» 1 × 6, и в этом случае эти шесть «пикселей» иногда упоминаются как sixels. Но деление символа 8 × 8 на 2 × 2 «пикселя» также было обычным явлением (например, использовалось в Sinclair ZX81 ). Иногда текстовые полиграфические символы просто включаются в набор шрифтов системы, иногда используется специальное видеооборудование для прямого преобразования битового шаблона из видеопамяти в пиксели. В редких случаях матрица символов не могла быть разделена по вертикали на три, например, в матрице 8 × 8 мозаика иногда делится так, что в ней используется строчная схема развертки 3: 2: 3. Графический режим Галаксии является примером, хотя со схемой 4: 5: 4 эффект искажения был минимальным.
Расположение символов и пикселей на дисплее TRS-80Оригинальное использование эта технология была в TRS-80, где единственный способ получить дискретные пиксели на экране, которые можно было включать и выключать индивидуально (все точки адресуются), заключался в использовании матрицы пикселей 2 × 3 блочной графики. В случае TRS-80 эта блочная графика не была включена в ПЗУ шрифтов, как позже стало нормой, а была сгенерирована непосредственно из логической схемы из шести битов видеопамяти с использованием специальной схемы, созданной из логики . gates.
Если система также поддерживала цвет, цветовое разрешение результирующих пикселей обычно было равно разрешению текста, что часто приводило к конфликту атрибутов , поскольку цвет пикселя не мог быть изменен на каждом пиксельная основа, но только для одного «чернильного» и одного «фонового» цвета для всех пикселей в позиции символа.
Иногда количество символов в шрифте, предназначенном для блочной графики, может быть уменьшено вдвое, если система также поддерживает атрибут «инвертировать», поскольку половина символов в наборе шрифтов полной блочной графики является логической инверсией другая половина набора шрифтов. Другие приемы, которые использовались для уменьшения количества необходимых символов, заключались в использовании пробела для символа «все биты равны нулю» и использовании шестнадцатеричного символа 7F для символа «все биты включены» в качестве шестнадцатеричного символа 7F (десятичного 127) часто определялся как символ «все пиксели на» (это из-за того, что при использовании бумажной ленты, пробивая все семь отверстий, создавался шестнадцатеричный «байт» 7F, который считался Символ "DEL" или "стирание" ). Назначение в ASCII символа затирания (к кодовой точке 127) привело к тому, что разработчики дисплеев использовали «затирание» для квадрата символа, заполненного «чернилами», который часто использовался для представления курсора.
Другими примерами систем, которые полагались на использование блочной графики, являются :
Полиграфические символы также являются символами шрифта, которые предназначены для создания впечатления, что система может поддерживать высокое разрешение графика, при этом фактически система работает в текстовом режиме. Такие символы, как символы рисования прямоугольника, круги и точки, символы карт, такие как ♠, ♣, ♥ и ♦, и «графический строительный блок» геометрические фигуры, например поскольку треугольники придали такой вид системам.
Одной из первых систем, в которых использовались такие символы, каноническим примером, которому последовали другие, была Commodore PET, в которой многие из них были внутри набора шрифтов PETSCII.. Оригинальный ПЭТ в такой степени полагался на эти символы, что печатал их на своей клавиатуре, что можно увидеть здесь, пример, который вскоре скопировали другие системы.
Еще одним хорошим примером системы, основанной на полуграфических символах, является почтенный Sharp MZ80K, в котором не было графики с высоким разрешением и перепрограммируемых символов, но он полностью полагался на расширенный набор шрифтов с много псевдографических персонажей. С ними все еще можно было создавать игры, которые выглядели бы так, как будто система имеет графику с высоким разрешением.
Некоторые из систем, которые имели набор программируемых шрифтов, но не имели реального оборудования для растровой графики с высоким разрешением, пришли с наборами символов по умолчанию, которые должны быть загружены в ОЗУ набора символов, и эти наборы часто включали идеи, упомянутые здесь, хотя часто также имел место случай, когда при необходимости определялись выделенные семиграфические символы.
Примеры систем, которые в значительной степени полагались на полуграфические символы для своей графики: