Hercules
Hercules Graphics Card (HGC) - графический контроллер, выпускавшийся Hercules Computer Technology начиная с 1982 года.
Карта Hercules была разработана Van Suwannukul, основателем Hercules Computer Technology. Ему требовался видеоадаптер для работы над докторской с использованием Тайского алфавита.
Совместимость HGC
Наиважнейшей характеристикой HGC была его полная эмуляция MDA. С точки зрения функционирования эти два адаптера работали идентично в текстовом режиме. HGC работал на тех же частотах, с теми же дисплеями и подключался через аналогичные разъемы. Зона символа формировалась того же размера — 9x14 пикселей, обеспечивая разрешающую способность 720 х 350 пикселей. Горизонтальная частота была равна 18.1 Кгц, а кадровая — 50 Г. Поддерживались все атрибуты символов, присущие MDA, — подчеркивание, мерцание, повышенная яркость и инверсирование изображения. HGC даже использует параллельный порт с базовым адресом ОЗВС (Hex) — точно так же, как и MDA. В то время как HGC технически совместим с MDA и с его программным обеспечением, он полностью несовместим ни с каким графическим стандартом IBM. Программы должны быть специально написаны для HGC. Программы, созданные для CGA или других графических стандартов IBM, не могут быть использованы на компьютере с HGC.
Память HGC
Сильной стороной HGC является его память. Не в пример MDA этот адаптер снабжен 64 К памяти. Вся его память функционально разделена на два банка по 32 К с базовыми адресами ОВОООО(Нех) и 0В8000(Нех). В различных режимах HGC использует память по-разному. В текстовом режиме с ее помощью можно организовать до 16 страниц текста. В графическом режиме она позволяет создать образы двух страниц экрана.
Перекрытие памяти
В монохромном режиме у Геркулеса возникала одна проблема. 64 К памяти было слишком много для зарезервированного за монохромным режимом объема памяти. Происходило перекрытие области памяти цветного режима, что потенциально могло привести к конфликту в случае установки в одной и той же системе и CGA, и HGC. По решению разработчиков степень совместимости управлялась программным переклю-чателем. По умолчанию при загрузке HGC использовал только половину памяти — 32 К по адресу ОВОООО(Нех). Это исключало возникновение конфликта. Помещая определенное значение в регистр порта ввода-вывода с адресом 03BF(Hex), программы реализовывали на-стройку конфигурации, разрешая адаптеру пользоваться ресурсами обоих банков памяти. Размещая 0 во второй бит (бит 1) регистра данного порта, производится отключение второго банка. Установка в этом бите 1 включает этот банк. Вместе с платой адаптера поставляется специальная программа, в основном называемая HGC.COM. Запуск этой программы с параметром FULL приводит к использованию HGC всего ресурса памяти. Параметр HALF отключает второй банк. Позже эту функцию стали реализовывать программные драйверы, разработанные для использования графики HGC.
Графические стандарты Геркулеса
В графических режима HGC обеспечивает слегка отличающуюся разрешающую способность 720 х 348. Каждому пикселю назначается 1 бит, и для поддержания параметров не остается места. Восемь смежных пикселей описываются байтом информации. 90 байт уходит на каждую строку из 720 пикселей. Старшие биты каждого байта связываются с левыми пикселями экрана. Однако строки не хранятся в памяти в том порядке, в каком они отображаются на экране. Непрерывная последовательность информации обеспечивает изображение 4-х строк экрана. В результате экран разделен на 4 области и в память последовательно заносится информация по одной строке каждой области. Затем наступает очередь вторых строк и так далее. Включение графического режима происходит программно, установкой значения определенного бита в регистр задания конфигурации. Первый бит этого регистра порта ввода-вывода с адресом 03BF управляет режимом. Нулевое значение этого бита выключает этот режим, а единичка включает.