Средства управления экраном образуют один из важнейших элементов программирования для IBM-совместимых персональных компьютеров, что обусловлено прежде всего необходимостью организации удобного взаимодействия программы с ее пользователем. Любая сколько нибудь серьезная программа в настоящее время должна иметь достаточно развитый и продуманный экранный "видеообраз", с помощью которого реализуется интерфейс с пользователем.
Рассмотрим общие принципы организации отображения информации на экран дисплея. Формирование изображений на экране производится дисплейным адаптером, который представляет собой специализированный микропроцессор с собственной памятью, регистрами и наборами команд. Интерфейс с адаптером реализуется ядром операционной системы (BIOS), который управляет адаптером, записывая значения в его память, устанавливая состояние регистров и инициируя выполнение команд. Со своей стороны BIOS предоставляет прикладным программам (и операционной системе) возможности управления дисплейным адаптером посредством функций прерывания 10h (видеосервис). Некоторые из них мы рассмотрим.
|
|
Заметим, что память дисплейного адаптера включена в общее пространство компьютера и тем самым доступна напрямую и для прикладных программ. Данное обстоятельство весьма существенно, так как содержимое этой памяти непосредственно отображается на экране. Зная правила "кодирования" изображения в памяти адаптера и адреса этой памяти, можно формировать картину на экране, записывая в оперативную память те или иные значения.
Дисплейная аппаратура ориентирована на два режима работы: текстовый и графический. В текстовом режиме рабочее пространство экрана рассматривается как совокупность строк, каждая из которых содержит определенное число позиций (знакомест). В каждой позиции может быть отображен один из 256 стандартных ASCII-символов. Текстовый режим может иметь несколько вариантов, различающихся количеством и длиной экранных строк (наиболее распространенным является размер 25 строк по 80 символов в каждой).
Текстовый режим является как сравнительно простым для понимания, так и несложным и эффективным в реализации. Вместе с тем он сильно ограничен по свои возможностям. Необходимая программная поддержка этого режима со стороны операционной системы является минимальной и в то же время позволяет разрабатывать развитые и эффективные интерфейсы.