Предыдущий раздел | УПРАВЛЕНИЕ УСТРОЙСТВАМИ БЕЗ ПРЕРЫВАНИЙ | Следующий раздел |
На рис.73 приведена логическая схема простейшего драйвера экрана. Этот драйвер позволяет любой обрабатывающей программе вывести на экран символ с заданным цветом. Драйвер состоит из двух логических процедур, доступных извне драйвера: «Инициализация экрана», «Вывод символа». Кроме того, драйвер включает внутреннюю процедуру «Установка курсора», а также две структуры данных – переменные XT и YT, содержащие текущие координаты курсора. Использование этих переменных позволяет повысить скорость пересчета новых координат курсора при обработке символов “Возврат каретки” и “Перевод строки”.
Рис. 73. Логическая схема драйвера экрана
Логическая процедура “Инициализация экрана” не имеет параметров. Она выполняет первоначальную подготовку экрана (через его адаптер) к последующей работе с ним, а также выполняет первоначальную подготовку самого драйвера. Алгоритм этой логической процедуры включает шаги:
Ш а г 1. Очистка используемой (нулевой) видеостраницы путем заполнения ее символами пробела с фоном требуемого цвета.
Ш а г 2. Задание нулевой видеостраницы в качестве отображаемой на экране. Для этого в регистры начального адреса сканирования (см. табл.6) следует поместить 0.
Ш а г 3. Задание максимальной толщины курсора.
Ш а г 4. Запись нулевых значений в переменные XT и YT.
Ш а г 5. Установка курсора в начальную позицию экрана.
Ш а г 6. Объявление резидентным модуля “Вывод символа”.
В том случае, если драйвер экрана предназначен для обслуживания одной-двух прикладных программ, инициируемых достаточно редко, шаг 6 отсутствует, так как в этом случае нецелесообразно постоянно держать драйвер в ОП. Гораздо лучше объединить его и прикладную программу в единый загрузочный модуль.
Логическая процедура “Вывод символа” имеет два входных параметра: S – код символа, М – цвет символа (0 ≤ M ≤ 7). Двоичное представление числа M определяет цвет в соответствии с табл.7. Например, M=2=010b задает зеленый цвет символов. Алгоритм данной логической процедуры:
Ш а г 1. Если символ S есть «Возврат каретки» или «Перевод строки», то
переход на шаг 3.
Ш а г 2. Запись символа и его атрибутов в видеопамять.
Ш а г 3. Запись новых значений в переменные XT и YT .
Ш а г 4. Установка следующей позиции курсора.
Внутренняя процедура «Установка курсора» не имеет параметров. Она выполняет установку курсора в ту позицию, которая соответствует значениям переменных XT и YT.
Предыдущий раздел | В начало | Следующий раздел |