< Назад  Далее >

Статья 8. Esc-последовательности

Из рассмотрения примеров статьи 7 видно, что возможности DOS по управлению экраном весьма скудны. С помощью функции 09h можно выводить на экран символьные строки, включая в них управляющие символы и символы псевдографики. Позиционирование курсора, как и очистку экрана, приходится выполнять с помощью пробелов. В DOS нет никаких функций, с помощью которых можно было бы программно установить курсор в заданное место экрана; нельзя также изменить цвет выводимых символов (это-то при цветном мониторе!).

Включение в систему устанавливаемого драйвера терминала (файл ANSI.SYS) дает пользователю дополнительные возможности управления экраном и клавиатурой. Если в символьной строке, выводимой на экран, встречается код клавиши Esc (27, или 1Bh), за которым следует символ [, то ANSI-драйвер перехватывает последующие символы и интерпретирует их, как команды управления экраном или клавиатурой. С помощью Esc-последовательностей можно очищать экран, перемещать по нему курсор, выбирать цвета фона и символа, изменять видеорежим, а также переопределять клавиши клавиатуры.

В дальнейших примерах будут использоваться такие Esc-последовательности:

Помимо перечисленных, имеются Esc-последовательности, служащие для выбора видеорежима, переопределения клавиш клавиатуры и другие.

Модифицируем текст выводимой строки программы 7.3, включив в него Esc-последовательности управления экраном.


Пример 8.1. Управление экраном с помощью Esc-последовательностей


message  db 10 dup (7)                           ; Звуковой сигнал
         db 27, '[2J', 27, '[31;5m'              ; Очистка экрана
         db 27, '[12;35H', 201, 9 dup (205), 187 ; Позиционирование и символы
         db 27, '[13;35H', 186, 'Внимание!', 186 ; Позиционирование и символы
         db 27, '[14;35H', 200, 9 dup (205), 188 ; Позиционирование и символы
         db 27, '[0m', 27, '[25;1H$'             ; Отмена цвета и позиционирование


Сайт управляется системой uCoz