Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
30
Добавлен:
29.03.2016
Размер:
460.29 Кб
Скачать

Функция 05н прерывания int10н: выбор активной страницы

Функция 05Hпозволяет выбирать страницу, выводимую на экран в текстовом или графическом режиме. Можно создать несколько различных страниц и переключаться между ними с помощью этой функции. Эта операция – просто запрос, не возвращающий значений:

Функция 06н прерывания int10н: прокрутка экрана вверх

Эта операция в текстовом или графическом режиме прокручивает экран вверх в выбранной области (на активной видеостранице). Выводимые строки прокручиваются вверх за пределы выводимой на экран области, а внизу прокручиваемой области появляются пустые строки.

Эта функция уже использовалась в гл. 8, где установка регистра АLв 0 вызывала прокрутку всего экрана вверх, очищая его. Установка ненулевого числа в АLвызывает прокрутку этого числа строк вверх. Для выполнения функции загрузите следующие значения в регистры:

АL= число строк (00 для всего экрана) СХ = начальные строка:столбец

ВН = атрибут или значение пикселя DX= конечные строка:столбец

В следующем примере в текстовом режиме устанавливается атрибут цвета и весь экран прокручивается вверх на одну строку:

Операция не возвращает значений. Вот стандартный способ прокрутки одной

строки вверх.

  1. Для установки строки, в которой находится курсор, определите элемент данных, например, ROW, проинициализировав его значением 0;

  2. Выведите строку и переместите курсор на следующую строку;

  3. Проверьте, не близка ли ROWк нижнему краю экрана (СМРROW,22);

  4. Если да, прокрутите одну строку, используйте ROWдля установки курсора и очиститеROWв 0;

  5. Если нет, увеличьте ROWна 1 (INCROW).

Пара регистров СХ:DХ позволяет прокручивать любую прямоугольную часть экрана. Будьте внимательны и соразмеряйте значение в ФД с размером в СХ:DХ, особенно когда прокручивается только некоторая часть экрана. В ниже следующем примере создается окно (с отдельными атрибутами) из 7 строк и 30 столбцов, с верхним левым углом в координатах 12:25, верхним правым — в 12:54, нижним левым — в 18:25 и нижним правым — в 18:54:

В примере прокручиваются 7 строк, то есть все строки с 12 по 18 включительно, так что только эта область очищается. Обычно при создании окна прокручиваются (и очищаются) все его строки, а в дальнейшем — по одной. Поскольку атрибуты окна сохраняют свои значения, пока они не будут изменены, можно устанавливать различные атрибуты для различных окон одновременно.

В графическом режиме в BHвместо атрибутов помещается значение пикселов. Вот пример, устанавливающий строки в красный цвет:

Функция 07н прерывания int10н: прокрутка экрана вниз

Для текстового и графического режимов прокрутка экрана вниз вызывает сдвиг нижних строк за пределы экрана и появление пустых строк сверху. За исключением того, что экран прокручивается вниз, эта функция работает так же, как и 06Н, рассмотренная ранее. Для выполнения функции загрузите значения в следующие регистры:

АL= число строк (00 — для всего экрана) СХ = начальные строка:столбец

ВН = атрибут или значение пикселя DX= конечные строка:столбец

Функция 08н прерывания int10н: считывание символа и его атрибутов в положении курсора

Функция 08Н считывает как символ, так и его атрибут из области данных дисплея в текстовом или графическом режимах. Считываемый символ определяется положением курсора. Загрузите номер страницы в BH, как показано ниже:

Операция помешает символ в AL, а атрибуты — в АН. В графическом режиме операция возвращает 00Н для не-ASCIIсимволов. Поскольку операция считывает только один символ, для чтения последовательности символов придется использовать цикл.

Соседние файлы в папке Лекции