Assembler для начинающих


         

Сдвиг изображения


    Программы сдвига перемещают текстовую информацию либо вверх, либо
    вниз, в зависимости от вызванной функции.  Программы сдвига также
    обеспечивают некоторые средства организации окон (фрагментов
    экрана) на экране дисплея - т.е.  BIOS может сдвигать только часть
    содержимого экрана.  Входные параметры программы сдвига определяют
    прямоугольник, расположенный на экране.  Он задает верхний левый и
    правый нижний углы области сдвига.    Видеопрограмма BIOS сдвигает
    данные только в этой области.  Остальная часть экрана не меняется.
 
      Мы уже видели пользу сдвига окон при изучении операционной
    системы и языка Бейсик, которые использовали для сдвига BIOS. Если
    работает 80-символьный дисплей, DOS устанавливает верхний левый
    угол окна сдвига равным (0, 0), а нижний правый угол (24, 79). Так
    сдвигается весь экран. Но Бейсик использует двадцать пятую строку
    для индикации состояния дисплея, и только 24 строки отводит под
    изображение программы. Когда Бейсик сдвигает экран с помощью
    базовой системы ввода-вывода, он устанавливает верхний левый угол в
    точке (0, 0), а правый нижний угол - в точке (23, 79). Из-за того,
    что последняя строка остается за пределами сдвига, она не
    перемещается во время сдвига. В следующей главе приведен пример
    сдвига окна, вызываемого из программы на Бейсике.
 
      Видеопрограмма BIOS выполняет сдвиги с помощью переноса
    символов и атрибутов в дисплейном буфере. Программа сдвига не
    меняет стартового адреса дисплейного буфера; такой метод сдвига был
    бы быстрее, но не позволяет прикладной программе определять, куда
    должны попасть отдельные символы. Способ сдвига, реализуемый в
    BIOS, подходит для обычной работы экрана. Заметим также, что
    программа сдвигает изображение при необходимости более чем на одну
    строку. Обычно программа сдвигает изображение на одну строку.
    Функция сдвига видеопрограммы BIOS позволяет сдвинуть содержимое
    экрана на несколько строк. Если же количество строк сдвига равно



Содержание  Назад  Вперед