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

Ваш аккаунт

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

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

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

Vesa 1.2

6.7 Функция 05h - Управление оконной видеопамятью Super VGA

Эта функция восстанавливает и возвращает положение указанного окна в видеопамяти. Функция также обеспечивает непосредственный доступ к регистрам, управляющим аппаратным листованием видеопамяти. Для правильного использования этой функции программное обеспечение должно использовать функцию 01h VESA BIOS (Возврат информации о режиме Super VGA), чтобы определить размер, положение и зернистость окна.

        Вход :  AH = 4Fh        Поддержка Super VGA
                AL = 05h        Управление окнами видеопамяти Super VGA
                BH = 00h        Выбор окна видеопамяти Super VGA
                BL = Номер окна
                        0 = Окно A
                        1 = Окно B
                DX = Положение окна в видеопамяти
                     (в единицах зернистости окна)

        Выход : AX = Status
                См. замечания, описанные ниже


        Вход :  AH = 4Fh        Поддержка Super VGA
                AL = 05h        Управление окнами видеопамяти Super VGA
                BH = 01h        Выбор окна видеопамяти Super VGA
                BL = Номер окна
                        0 = Окно A
                        1 = Окно B

        Выход : AX = Состояние
                DX = Положение окна в видеопамяти
                     (в единицах зернистости окна)
                См. замечания, описанные ниже

Замечания:

Эта функция также доступна напрямую для дальнего (far) вызова из прикладной программы. Адрес функции BIOS может быть получен с помощью функции 01h VESA BIOS (Возврат информации о режиме Super VGA). Адрес этой функции содержится в одном из полей в ModelInfoBlock. Отметим, что адрес этой функции может различаться от режима к режиму в конкретных реализациях BIOS и поэтому указатель функции нужно получать всякий раз после установки режима.

В версии дальнего вызова информация о состоянии не возвращается в прикладную программу. Кроме того, в этой версии состояние регистров AX и DX будет испорчено. Следовательно, если регистры AX и/или DX нуждаются в сохранении, прикладная программа должна это сделать сама перед дальним вызовом.

При использовании версии дальнего вызова этой функции прикладная программа должна передать входные аргументы на регистрах BH, BL и DX (для установки окна), однако нет необходимости в заполнении регистров AH или AL.

6.8 Функция 06h - Установить/прочитать логическую длину скан-строк

Данная функция устанавливает длину логических строк растра. Эта функция позволяет прикладной программе устанавливать размер видеобуфера более широким, чем высвечиваемая область. Функция 07h позволяет затем указывать в таком буфере начало высвечиваемой области.

        Вход :  AH = 4Fh        Поддержка Super VGA
                AL = 06h        Длина логических скан-строк
                BL = 00h        Выбор длины скан-строк
                CX      = Желаемая ширина в пикселах

        Выход : AX =    Состояние
                BX =    Число байтов на строку
                CX =    Фактическое число пикселов на строку
                DX =    Максимальное число строк


        Вход :  AH = 4Fh        Поддержка Super VGA
                AL = 06h        Длина логических скан-строк
                BL = 01h        Возврат длины скан-строк

        Выход : AX =    Состояние
                BX =    Число байтов на строку
                CX =    Фактическое число пикселов на строку
                DX =    Максимальное число строк

Замечания:

Желаемая ширина в пикселах может быть недоступна на VGA по аппаратным причинам. Выбирается ближайшее большее значение к желаемому числу пикселов, и фактическое значение возвращается на регистре CX. На регистре BX возвращается значение, которое добавляется к указателю видеопамяти при переходе к следующей строке растра. Например, в режиме 13h оно будет равно 320, а в режиме 12h - 80. На регистре DX возвращается число логических строк, которое размещается в полной памяти и может использоваться в высвечиваемом режиме (при новой длине скан-строк). Эта функция также применима для текстовых режимов. В текстовых режимах прикладные программы должны определять ширину матрицы символа через обычные функции BIOS, умножать ее на желаемое число символов в строке и передавать получившиеся значение на регистре CX.

6.9 Функция 07h - Установить/прочитать начало высвечивания

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

        Вход :  AH = 4Fh        Поддержка Super VGA
                AL = 07h        Управление началом высвечивания
                BH = 00h        Зарезервировано и должно равняться 0
                BL = 00h        Выбор начала высвечивания
                CX      = Первый высвечиваемый пиксел в строке
                DX      = Первая высвечиваемая строка

        Выход : AX =    Состояние


        Вход :  AH = 4Fh        Поддержка Super VGA
                AL = 07h        Управление началом высвечивания
                BL = 01h        Возврат начала высвечивания

        Выход : AX =    Состояние
                BH =    00h Зарезервировано и должно равняться 0
                CX      = Первый высвечиваемый пиксел в строке
                DX      = Первая высвечиваемая строка

Замечания:

Эта функция применима также для текстовых режимов. В текстовых режимах прикладные программы должны определить ширину матрицы символа через обычные функции BIOS, умножить ее на номер колонки первого символа в строке и передавать получившиеся значение на регистре CX. Они должны также умножить высоту матрицы символа на номер первой высвечиваемой строки и передать получившееся значение на регистре DX.

6.10 Функция 08h - Установить/прочитать информацию о DAC-палитре

Эта функция опрашивает и устанавливает режим функционирования DAC-палитры. Некоторые DAC являются конфигурируемыми и предусматривают назначение 6, 8 или большего числа бит для красной, зеленой и синей компонент цвета. Подразумевается, что ширина палитры DAC сбрасывается в стандартное для VGA 6-битное на компоненту значение при вызове стандартной или VESA (AX=4F02h) функции установки режима.

        Вход :  AH = 4Fh        Поддержка Super VGA
                AL = 08h        Установка/чтение DAC палитры
                BL = 00h        Установка ширины DAC палитры
                BH =    Желаемое число бит на цветовую компоненту
                        (Стандарт для VGA = 6)

        Выход : AX =    Состояние
                BH =    Текущее число бит на цветовую компоненту
                        (Стандарт для VGA = 6)


        Вход :  AH = 4Fh        Поддержка Super VGA
                AL = 08h        Установка/чтение DAC палитры
                BL = 01h        Чтение ширины DAC палитры

        Выход : AX =    Состояние
                BH =    Текущее число бит на цветовую компоненту
                        (Стандарт для VGA = 6)

Прикладные программы могут определить переключаема ли ширина DAC, опросив бит D0 в поле Capabilities структуры VgaInfoBlock, которая возвращается VESA функцией опроса информации о Super VGA (AX=4F00h). Прикладные программы могут затем установить ширину палитры DAC в желаемое состояние. Если Super VGA не способна выбрать требуемую ширину палитры, то выбирается ближайшее меньшее значение, которое способна поддерживать Super VGA. Результирующая ширина палитры возвращается на регистре BH.


Предыдущая | Оглавление | Следующая

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

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