Hercules

Материал из Old-Games.RU Wiki
Перейти к навигации Перейти к поиску
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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 управляет режимом. Нулевое значение этого бита выключает этот режим, а единичка включает.