Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Программирование EGA и VGA

Вызов функции 7: Прокрутка (скроллинг) активной страницы вниз.

Комментарии

С помощью этой функции выполняется прокрутка текста на экране: строки перемещаются сверху вниз, а вверху осуществляется вставка пустых строк. Функция работает так же, как и описанная выше функция 6.

Исходные данные

Регистры (устанавливаются до вызова функции):

  • AH: устанавливается 7
  • AL: число прокручиваемых строк (0 - очистка экрана)
  • BH: символ атрибута новых строк (см. функцию 8)
  • CH: номер верхней строки окна
  • CL: номер левого столбца окна
  • DH: номер нижней строки окна
  • DL: номер правого столбца окна

Приводимая ниже программа печатает сообщение "This line scroll (except for this part)" и прокручивает первую часть вниз на одну строку. Вторая часть сообщения не прокручивается, в результате чего эффект скроллинга окна особенно нагляден.

Пример на языке ассемблера:

        data    segment public
                msg1    db 'This line will scroll (except for'
                        db 'this part)'
                msg2    db 'This line will not scroll'
        data    ends
        code    segment public
                assume  CS:code
        main    proc    far
        start:  push    DS
                sub     AX,AX
                push    AX
                mov     AX,data ;получить размещение сегмента данных
                mov     ES,AX   ;установить ES для вызова функции
                assume  ES:data
                mov     AX,data
                mov     DS,AX
                assume  DS:data
                mov     AX,3    ;режим 3 (алфавитно-цифровой)
                int     10h
                mov     DH,12   ;строка 12
                mov     DL,10   ;столбец 10
                mov     BH,0    ;страница 0
                mov     BP,offset msg2 ;ES:BP указатель на строку
                mov     BL,0fh  ;белый высокой яркости
                mov     CX,25   ;длина строки
                mov     AL,1    ;курсор перемещается
                                ;только строка символов
                                ;атрибут в BL
                mov     AH,13h  ;функция 13h - запись строки
                int     10h     ;вызов видео-BIOS
                mov     DH,13   ;строка 13
                mov     DL,10   ;столбец 10
                mov     BH,0    ;страница 0
                mov     BP,offset msg1 ;ES:BP указатель на строку
                mov     BL,0fh  ;белый высокой яркости
                mov     CX,44   ;длина строки
                mov     AL,1    ;курсор перемещается
                                ;только строка символов
                                ;атрибут в BL
                mov     AH,13h  ;функция 13h - вывод строки
                int     10h     ;вызов видео-BIOS
                mov     CX,2    ;задержка (множитель)
                                ;для увеличения времени
        ps1:    push    CX
                mov     CX,0ffffh ;длина паузы
        ps2:    loop    ps2     ;пустой цикл для задержки
                pop     CX
                loop    ps1     ;цикл через множитель
                mov     CH,13   ;координата левого верхнего угла 13,0
                mov     CL,0
                mov     DH,24   ;правый нижний угол на строке 24
                mov     DL,31   ;столбец 31
                mov     AL,1    ;переместить 1 строку
                mov     BH,0fh  ;атрибут новой строки
                mov     AH,7    ;прокрутка вверх
                int     10h     ;вызов видео-BIOS
                ret
        main    endp
        code    ends
        end     start

Среди функций работы с экраном (0 - 7) наиболее важной является функция установки режима. Как правило, быстрая переустановка режима не требуется, а использование вызова BIOS гарантирует, что режим будет установлен правильно для всех адаптеров, в которых он поддерживается. Функции 1 - 7 наиболее полезны для использования их в качестве прототипов. В случае написания программ, осуществляющих непосредственную работу с экранной памятью, эти функции играют незначительную роль.


[ Назад ] [ Оглавление ] [ Далее ]

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог