Метод, использовавшийся в ранних видеоаппаратурах текстового режима для эмуляции растровой графики
Текстовая полуграфика , псевдографика или символьная графика — это примитивный метод, использовавшийся в ранних видеоаппаратных средствах текстового режима для эмуляции растровой графики без необходимости реализации логики для такого режима отображения.
Существует два различных способа эмуляции растровой графики. Первый заключается в создании адресуемого режима со всеми точками низкого разрешения с использованием набора специальных символов со всеми бинарными комбинациями определенной матрицы подразделения размера символа текстового режима; этот метод называется блочной графикой [ 1] или иногда мозаичной графикой [2] [3 ]
Второй способ заключается в использовании специальных фигур вместо глифов (букв и цифр), которые выглядят так, как будто нарисованы в режиме растровой графики, иногда их называют полу- или псевдографикой ; важным примером этого являются символы, нарисованные в виде рамок .
Полуграфические символы (включая некоторые блочные элементы) по-прежнему включены в BIOS любой совместимой с VGA видеокарты, поэтому любой ПК может отображать эти символы с момента включения, даже если операционная система еще не загружена. Одинарные и двойные линии по-прежнему часто рисуются этим методом, когда система использует текстовый режим; например, при запуске программы настройки BIOS.
Например, символ размером 8×12 пикселей можно разделить по вертикали на две половины и по горизонтали на три части, а затем присвоить значения «чернила» и «фона» элементам матрицы в двоичном шаблоне, соответствующем двоичной последовательности позиции в таблице шрифтов матрицы мозаики блоков 2×3 [5] так называемых squots (квадратных точек) [6] или секстантов . [7] Менее часто используемые версии используют «матрицу» 1×6, и в этом случае эти шесть «пикселей» иногда называют sixels . [8] Но деление символа размером 8×8 на 2×2 «пикселя», называемых квадрантами [7], также было распространено (например, оно использовалось в Sinclair ZX81 ).
Иногда полуграфические символы текста просто включаются в системный набор шрифтов, иногда используется специальное видеооборудование для прямого преобразования битового шаблона из видеопамяти в пиксели. В редких случаях матрица символов не делилась вертикально на три, например, в матрице 8×8 мозаика иногда делится так, что она использует схему строк сканирования 3:2:3. Графический режим Galaksija является примером, хотя при схеме 4:5:4 эффект искажения был минимальным. [9]
Основополагающее применение этой технологии было в TRS-80 , где единственным способом получить дискретные пиксели на экране, которые можно было бы включать и выключать по отдельности (все точки адресуемые), было использование матрицы пикселов 2×3 блочной графики. В случае TRS-80 эта блочная графика не была включена в шрифтовое ПЗУ, как позже стало нормой, а генерировалась непосредственно из логической схемы из шести бит из видеопамяти с использованием выделенной схемы, сделанной из логических вентилей . [10] Более ранней системой, использующей тот же псевдографический массив матрицы 2×3, был интерфейс видеотерминала (VTI) Poly -88 от полиморфных систем , система на основе шины S-100 , предшествовавшая TRS-80.
Если система также поддерживала цвет, цветовое разрешение полученных пикселей обычно было равно разрешению текста, что часто приводило к конфликту атрибутов , поскольку цвет пикселя нельзя было изменить на основе каждого пикселя, а можно было задать только один цвет «чернил» и один цвет «фона» для всех пикселей в пределах позиции символа.
Иногда количество символов в шрифте, предназначенном для блочной графики, можно было бы уменьшить вдвое, если бы система также поддерживала атрибут «invert», так как половина символов в наборе шрифтов полной блочной графики являются логической инверсией другой половины набора шрифтов. Другие приемы, которые использовались для уменьшения количества необходимых символов, заключались в использовании пробела для символа «все биты равны нулю» и использовании символа 7F hex для символа «все биты включены», так как символ 7F hex (десятичное 127) часто определялся как символ «все пиксели включены» (это было связано с тем, что при использовании бумажной ленты, пробивая все семь отверстий, создавался 7F hex «байт», который считался символом «DEL» или «стирания» ). [ необходима цитата ] Назначение в ASCII символа стирания (кодовой точке 127) привело к тому, что проектировщики VDU использовали «стирание» для квадрата символа, заполненного «чернилами», который часто использовался для представления курсора. [ необходима ссылка ]
Примеры использования блочной графики
Другие примеры систем, использующих блочную графику:
Наборы символов ZX80 и ZX81 , где использовалась матрица 2×2 пикселя, с трюками с атрибутами пробела и инвертирования, чтобы свести количество символов в ПЗУ к 7 (из необходимых 16). [11] ZX Spectrum также поддерживал блочную графику, а также «настоящую» графику с более высоким разрешением. Кроме того, на Spectrum системный шрифт (хранящийся в ПЗУ) можно было легко и мгновенно изменить на тот, который хранился в ОЗУ, что позволяло программистам определять собственные полуграфические символы в соответствии со своими потребностями.
Другие системы, которые использовали матрицу 2×2, включали Panasonic JR-200 и Mattel Aquarius . Последняя поддерживала не только полуграфику 2×2, но и полуграфику 2×3, хотя и неидеально, поскольку пиксели полуграфики в среднем ряду символа были менее высокими, чем в верхнем и нижнем рядах, из-за несовершенного деления матрицы символа 8×8 пикселей.
Commodore PET также имел несколько символов для поддержки полуграфики текста 2×2 в своем наборе символов PETSCII . PET также был одной из первых систем, которая в значительной степени полагалась на полуграфические символы, чтобы получить любую форму графики на экране.
TRS -80 Color Computer и Dragon 32/64 являются хорошими примерами систем, использующих матрицу цветной полуграфики 2×2. Но их Motorola 6847 VDC также поддерживал малоиспользуемый режим полуграфики из 6 блоков. [12] [13]
Системы Videotex и телетекста использовали матрицу 2×3 и один цвет переднего плана («чернила») и один цвет фона, обычно из набора из восьми цветов (включая черный и белый). Многие системы использовали « графику Videotex ». Одним из самых известных примеров является графический режим по умолчанию Acorn BBC Micro ( режим 7 ). [14] Другими системами, которые использовали графику, подобную «Videotex», являются: ABC 80 , Grundy NewBrain , многие системы Acorn Eurocard и Philips P2000T , которые фактически использовали чип телетекста, разработанный для их телевизоров.
PC -8001 удалось объединить обычный текст с полным набором из 256 текстовых полуграфических «символов» в матрице 2×4; система отличала набор из 256 полуграфических шаблонов от набора из 256 символов, используемого для «обычных» шрифтов, с помощью байтов атрибутов символов . [19]
Одной из последних видеосистем, где текстовая полуграфика была полезной опцией, был Color Graphics Adapter (CGA). Этот графический адаптер для ранних IBM-PC поддерживал только четыре цвета в графическом режиме высокого разрешения, но в текстовом режиме он мог отображать 16 различных цветов. Хотя шрифтовое ПЗУ адаптера CGA не содержало всех типичных символов текстовой полуграфики, все еще было возможно создать режим текстовой полуграфики CGA размером 160 × 100, используя полудокументированный трюк. [20]
Полуграфические символы
Полуграфические символы также являются символами в шрифте, которые призваны создавать впечатление, что система может поддерживать графику высокого разрешения, в то время как на самом деле система работает в текстовом режиме. Такие символы, как символы рисования коробок , круги и точки, символы карт , такие как ♠, ♣, ♥ и ♦, и геометрические фигуры «графических строительных блоков», такие как треугольники, придавали таким системам такой вид.
Одной из первых систем, использовавших такие символы, каноническим примером, которому последовали другие, была Commodore PET , в которой многие из них были в наборе шрифтов PETSCII . [21] Оригинальная PET в такой степени полагалась на эти символы, что печатала их на своей клавиатуре, как можно увидеть здесь, пример, который вскоре скопировали и другие системы.
Другим хорошим примером системы, которая полагалась на полуграфические символы, является почтенный Sharp MZ80K , который не имел графики высокого разрешения, ни перепрограммируемых символов, но полностью полагался на расширенный набор шрифтов со множеством псевдографических символов. [22] С ними все еще можно было генерировать игры, которые выглядели так, как будто система имела графику высокого разрешения. [23]
Некоторые системы, имевшие программируемый набор шрифтов, но не имевшие настоящего оборудования для растровой графики высокого разрешения, поставлялись с наборами символов по умолчанию, которые нужно было загрузить в ОЗУ наборов символов, и эти наборы часто включали в себя упомянутые здесь идеи, хотя часто также случалось, что по мере необходимости определялись специальные полуграфические символы.
Системы, основанные на полуграфических символах
Примерами систем, в графике которых активно использовались полуграфические символы, являются:
Commodore PET была одной из первых систем, активно использующих полуграфические символы для вывода любой формы графики на экран (см. PETSCII ).
Sinclair ZX80 и ZX81 использовали блочные графические символы для графики с низким разрешением 64×48 пикселей в черно-белом режиме или 32×48 пикселей в черном, белом и размываемом сером цветах, как показано в наборе символов ZX80 и наборе символов ZX81 .
Mattel Aquarius полностью полагался на свой набор символов для игр, хотя он и продавался через магазины игрушек. Он так и не стал коммерчески успешным отчасти из-за этого ограничения, которое было устаревшим в то время (см. набор символов Mattel Aquarius ). [24]
Серия компьютеров Sharp MZ не предлагала высокого разрешения или программируемых символов, но имела очень полный набор полуграфических символов (см. набор символов Sharp MZ ). - и поэтому по-прежнему предлагала множество визуально привлекательных игр. [25]
Compukit UK101 (клон популярной суперплаты Ohio Scientific) также была очень ранней системой, которая использовала набор из 256 символов.
Текстовые режимы более поздних компьютеров Apple II, начиная с Apple IIc и улучшенной версии Apple IIe , поддерживали набор символов MouseText , который заменял мигающие заглавные символы при включении. Хотя эти системы Apple не полагались на эти наборы символов, они играли роль в имитации графики, подобной графическому интерфейсу их более продвинутых членов семейства, оставаясь в текстовом режиме.
^ Расширенная спецификация телетекста (PDF) . Европейский институт стандартов в области телекоммуникаций. 1997. стр. 6.
^ Стандарт Unicode, версия 15.1 — Геометрические фигуры (PDF) . Unicode, Inc. 2023.
^ ETS 300 072 - Терминальное оборудование (TE); Протокол уровня представления Videotex Синтаксис данных уровня представления Videotex (PDF) . Европейский институт стандартов в области телекоммуникаций (опубликовано в 1996 году). 1990.
^ Goldklang, Ira (2015). "Graphic Tips & Tricks". Архивировано из оригинала 29-07-2017 . Получено 29-07-2017 .
^ ab Ewell, Doug ; Bettencourt, Rebecca G.; Bánffy, Ricardo; Everson, Michael ; Silva, Eduardo Marín; Mårtenson, Elias; Shoulson, Mark; Steele, Shawn; Turner, Rebecca (2019-01-04). "5. Графические символы". Предложение добавить символы из устаревших компьютеров и телетекста в UCS (PDF) . Terminals Working Group (TWG), Международная организация по стандартизации . стр. 3. L2/19-25. Архивировано (PDF) из оригинала 2020-12-24 . Получено 2021-01-11 . стр. 3: Слово «секстант» используется в этом документе по аналогии с «квадрантом» — термином, используемым для определенных символов UCS с 1999 года — для обозначения блока полуграфики, состоящего из шести меньших блоков или «ячеек», расположенных в два столбца и три строки. В спецификации телетекста символы в этой группе могут отображаться либо с ячейками, соединенными вместе, как в случае с существующими символами квадранта, либо с узким пространством между ячейками. Эмулятор телетекста может интерпретировать управляющий символ U+001A («разделенная графика») для отображения пространства между ячейками или U+0019 («смежная графика») для возврата к виду по умолчанию, соединенному{{cite book}}: |work=проигнорировано ( помощь )
^ "Еженедельные события JayceLand в Рочестере #191: All White Sixel". jayceland.com .
^ "OLD-COMPUTERS.COM Museum ~ GALAKSIJA Galaksija software & screens". Смотрите второе изображение сверху. На изображении видна небольшая разница в высоте некоторых "пикселей" . Получено 27.01.2014 .
^ "Описание блочной графики TRS-80".
^ Технические подробности Набор символов и блочная графика ZX-81
^ "Режим отображения CoCo Semi-graphics-6".
^ "Режим отображения Semi-graphics-6". 2021-02-14. Архивировано из оригинала 2021-02-14.
^ "RTRussell: BBC BASIC для Windows". www.bbcbasic.co.uk .
^ "MATRA HACHETTE > ALICE 90". old-computers.com . Архивировано из оригинала 2021-10-03 . Получено 2021-10-03 .
^ Эрвье, Карл; Ванлиерде, Стефан (204). «ле VG5000μ». Страница поклонников VG5000μ . Архивировано из оригинала 21 августа 2021 г. Проверено 3 октября 2021 г.
^ EF9345 - ОДНОКРИСТАЛЛИЧЕСКИЙ ПРОЦЕССОР ПОЛУГРАФИЧЕСКОГО ДИСПЛЕЯ HMOS2 (PDF) . SGS-THOMSON Microelectronics. Март 1995 г.
^ Программирование PC-8801 — Информация о VRAM (Источник на японском языке; соответствующее предложение: «アトリビュートに開始位置とセミグラフィック指定ビット=1 を立てて、)テキスト VRAM には文字コードの代わりにドットパターンを書き込みます。" This примерно переводится как «В начальной позиции полуграфического режима, как только соответствующий бит атрибута установлен в значение один, вместо [графической буквы по умолчанию] в видеопамять будет записан точечный рисунок для кода символа." )
^ IBM PC XT Technical Reference, IBM, 1983, стр. 1-142 , получено 24 августа 2018 г.
↑ Руководство Commodore C64: Справочное руководство программиста Commodore 64, Commodore, 1983, стр. 379 , получено 24 августа 2018 г.
^ "В статье на сайте old-computers.com о Sharp MZ80K упоминается отсутствие графических возможностей".
^ "Sharp MZ80K - игра BASE ZERO". 2010-01-29 – через www.youtube.com.