HGC

Оригинальный видеоадаптер Hercules (1984) с дополнительным разъёмом для принтера

HGC (англ. Hercules Graphics Card) — стандарт мониторов и видеоадаптеров для IBM PC. Он поддерживает текстовый режим с высоким разрешением и один графический режим. Видеоадаптер подключался к монохромному (зелёному, желтому, светло-коричневому или, довольно редко, чёрно-белому) монитору.

В текстовом режиме на экран выводилось 25 строк текста по 80 символов в каждой строке. Этот режим был совместим со стандартом MDA. Разрешение в графическом режиме составляет 720×348 пикселей. Так же, как и CGA и MDA, видеоконтроллер был построен на базе микросхемы MC6845, но был оснащён 64 кбайт видеопамяти — вчетверо больше, чем CGA, и в 16 раз больше, чем MDA.

Адаптер обеспечивал отображение 2 независимых страниц, как в графическом, так и в алфавитно-цифровом режимах. Адрес «нулевой» страницы совпадал с адресами, занимаемыми MDA, а «первая» страница, будучи включена, занимала те же адреса, что и память адаптера CGA. Таким образом, программы, выводившие в память CGA напрямую, могли работать и на этом видеоконтроллере. В графических режимах, как и в CGA, видеопамять оказывалась разбита на «банки», только не на 2, а на 4. Поскольку 350 не кратно четырём, то разрешение в графическом режиме и было ограничено 348 строками.

Считалось, что HGC поддерживает один графический режим, но это неверно. Запрограммировав 6845 определённым образом, можно было добиться, чтобы, с точки зрения программ, «первая» страница видеопамяти выглядела в точности так, как видеопамять CGA, и рисуемое на экране изображение близко соответствовало тому, что получилось бы на цветном мониторе, хотя и без учёта цветов и палитр. Появившиеся программы-эмуляторы CGA позволили играть на HGC в часть тогдашних игр, другая часть не работала потому, что порты ввода-вывода CGA при этом не эмулировались, а программы могли обращаться к ним для учёта строчной и кадровой синхронизации.

В отличие от графических режимов CGA, графические режимы HGC не были поддержаны в BIOS и, таким образом, программисту приходилось выполнять все операции самостоятельно. Позже фирма Microsoft включила в состав MS-DOS утилиту MSHERC.COM, которая добавляла поддержку основного видеорежима HGC через прерывания и функции ОС, но пользовались этой утилитой немногие программы, в частности, QBASIC. Программа MSHERC, как и большинство других, содержала ошибку в таблице программирования — неправильно было указано полное количество символов, из-за чего строчная частота в графическом режиме заметно отличалась от строчной частоты в алфавитно-цифровом режиме, что приводило к срыву синхронизации на некоторых мониторах.

Оболочка Microsoft Windows поддерживала (имела встроенный драйвер) HGC в версиях 3.хх, но поддержка была прекращена с выходом Windows 95, а программный трюк, позволявший установить драйвер от EGA для Windows 3.11 на Windows 95, не срабатывал с HGC. К этому времени популярность платы HGC уже была позади, и никто не предпринял заметных усилий для выпуска драйвера.

Развитие стандарта

Позднее стандарт HGC был дополнен и расширен:

  • HGC+ (Hercules Graphics Card Plus, июнь 1986), позволявший использовать пользовательские шрифты в текстовом режиме.
  • HICC (Hercules InColor Card, апрель 1987) с возможностями, близкими к стандарту EGA — отображение 16 цветов из палитры в 64 цвета.