Tooprogram.ru

Компьютерный справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Int 10h ассемблер

Ассемблер

Прерывание 10h: службы ROM BIOS для видеодисплея

Все видеослужбы ROM BIOS запрашиваются с помощью прерывания 10h (в десятичной нотации 16). Имеется 25 основных служб, предоставляемых данным прерыванием. Подобно всем другим службам ROM BIOS видеослужбы нумеруются, начиная с 00h, и выбираются с помощью занесения номера службы в регистр AH. Обычно при работе с этими службами требуется задавать дополнительные параметры в регистрах AL, BX, CX или DX.

Служба 0: установить режим выдачи изображения

Служба 0 используется для выбора одного из четырнадцати режимов выдачи, показанных в таблице. Режимы с 0h по 6h применимы для стандартного цветного графического адаптера (CGA); режим 7h применяется для монохромного режима (MDA); режимы с 0Dh по 10h были добавлены для улучшенного графического адаптера (EGA); наконец, режимы 11h — 13h были внедрены на многоцветном графическом массиве (MCGA) (PS/2 моделей 25 и 30) и видеографическом массиве (VGA) (PS/2 моделей 50, 60 и 80).

Обычно при установке режима ROM BIOS чистит буфер памяти экрана, даже если снова и снова устанавливается один и тот же режим. Такая повторная установка того же самого режима может быть использована как простой и эффективный способ очистки экрана. В некоторых версиях DOS команда CLS фактически чистит экран с помощью данного способа. Установка видеорежима приводит также к установке принятых по умолчанию значений цветов цветовой палитры, поэтому при очистке экрана не используйте службу 0, если вы работаете с цветами, вместо этого применяйте видеослужбу 6.

При наличии адаптеров EGA,MCGA и VGA вы можете также дать указание ROM BIOS не очищать экран при установке видеорежима. Для этого к номеру режима, задаваемому вами в регистре AL, прибавьте число 80h (в десятичной нотации 128), что соответствует добавлению 1 в бит 7.

Значения регистров для службы установки видеорежима 0h

Номер службы Параметр

AH = 0 AL = номер режима

Таблица. Видеорежимы, устанавливаемые с помощью

видеослужбы ROM BIOS

Режим Тип Разрешающая Число Видеопод-

способность цветов системы

00h,01h Текстовый 40*25 16 CGA,EGA,

02h,03h Текстовый 80*25 16 CGA,EGA,

04h,05h Графический 320*200 4 CGA,EGA,

06h Графический 640*200 2 CGA,EGA,

07h Текстовый 80*25 Монохромный MDA,

08h,09h,0Ah Только для PCjr

0Bh,0Ch Внутренние режимы BIOS

0Dh Графический 320*200 16 EGA,VGA

0Eh Графический 640*200 16 EGA,VGA

0Fh Графический 640*350 Монохромный EGA,VGA

10h Графический 640*350 16 EGA,VGA

11h Графический 640*480 2 MCGA,VGA

12h Графический 640*480 16 VGA

13h Графический 320*200 256 MCGA,VGA

Например, следующий фрагмент очистит экран и установит видеорежим 3:

Служба 6: прокрутить окно вверх

Служба 06h (в десятичной нотации 6) и ее напарник служба 07h (в десятичной нотации 7) используются для задания на экране прямоугольной области текстового окна и прокручивания его содержимого вверх или вниз на одну или более строк. Для достижения эффекта прокрутки в нижнюю часть окна службой 06h вставляются пустые строки (служба 07h вставляет пустые строки в верхнюю часть окна); при этом верхние строки окна (нижние — в случае службы 07h) смещаются и исчезают с экрана.

Число строк, подлежащих прокрутке, задается в регистре AL. При AL = 00h окно очищается полностью (то же самое произойдет, если мы прокрутим больше строк, чем позволяет размер окна). Положение и размер окна задается в регистрах CX и DX: CH содержит верхнюю строку, а DH — нижнюю строку; CL — левую колонку, а DL — правую колонку. Атрибуты для новых пустых строк в обеих службах, задаются в регистр BH. Ниже суммируется порядок задания значений регистров для обеих служб (06h и 07h).

Значения регистров для служб прокрутки окон 06h и 07h

Номер службы Параметры

AH = 06h AL = число строк, подлежащих прокрутке

(прокрутка CH = номер строки для верхнего лев. угла

AH = 07h CL = номер колонки для верх. левого угла

(прокрутка DH = номер строки для нижнего прав. угла

DL = номер колонки для ниж. правого угла

BH = атрибут для выдачи пустых строк

Служба 7: прокрутить окно вниз

Служба 07h (в десятичной нотации 7), как мы уже упоминали, является зеркальным отображением службы 06h. Различие между этими двумя службами состоит в том, как происходит прокрутка. При выполнении службы 07h новые пустые строки появляются в верхней части окна, а старые строки исчезают со стороны его нижней части. (При выполнении службы 06h имеют место противоположные изменения.)

Служба 02h: установить положение курсора

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

Для задания позиции курсора номер строки помещается в регистр DH, номер колонки в DL, а номер страницы в BH. Нумерация строк и колонок начинается с координат 0,0 в левом верхнем углу экрана. В графических режимах для идентификации положения курсора используются координаты строки и колонки пикселов вместо координат для знака. Номер страницы — это обычный номер страницы изображения, используемый в Бэйсике: страницы от 0 до 7 в 40-колонных режимах и от 0 до 3 в 80-колонных режимах. В графических режимах номер страницы должен быть установлен в 0.

Сведения о задании регистров даны ниже.

Значения регистров при установке положения курсора

Функции VGA BIOS

Графические режимы VGA за прошедшее с момента создания (1987 год) этого типа видеоконтроллеров время сильно устарели, а текстовые используются двадцать лет и продолжают успешно применяться (благодаря простоте выполнения операций в этих режимах). Поэтому в настоящее время интерес для программистов представляет только небольшая подгруппа функций из стандартного набора VGA BIOS, предназначенная для работы в текстовом режиме:

• управление положением и размером курсора;

Для вызова функций VGA BIOS используется прерывание Int 10h. Набор функций очень большой, но в целом — устаревший. Ниже рассматриваются только те функции, применение которых до сих пор является целесообразным. Более подробную информацию о функциях можно получить в книгах [3,10, 29,33, 40].

Прерывание Int 10h, функция OOh: установить видеорежим

Функция предназначена для установки заданного видеорежима. Коды VGA-режимов приведены в табл. 4.1. Все современные видеоконтроллеры поддерживают текстовый режим, а также сохраняют совместимость с устаревшими графическими режимами VGA на тот случай, если пользователю понадобится запустить какую-нибудь из старых программ.

Читать еще:  Указатель в си это

Перед вызовом прерывания требуется занести в регистры следующие значения:

• в АН — значение OOh;

• в AL — код видеорежима.

Таблица 4.1. Коды VGA-совместимых режимов

Знак «*» означает, что в данном режиме отключен механизм преобразования палитры.

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

Фрагмент программного кода, в котором выполняется установка текстового режима, выглядит следующим образом:

mov АН.О :код функция установки режима

mov AL,03h ;код режима

int 10h ;вызов прерывания

Прерывание Int 10h, функция 01 h: установить размер курсора

Функция предназначена для задания размера курсора в текстовом видеорежиме. Применяется она обычно в текстовых редакторах для уведомления пользователя о текущем режиме работы (вставка или замещение символов).

Перед вызовом прерывания требуется занести в регистры следующие значения:

• в СН — номер начальной строки курсора в знакоместе;

• в CL — номер конечной строки курсора в знакоместе.

Номера начальной и конечной строк курсора задаются относительно верхней границы знакоместа. Для задания номеров начальной и конечной строк в регистрах CL и СН используются только разряды 0-4, в разряды 5-7 требуется записать нули.

Курсор можно сделать невидимым, если установить номер строки текущей позиции курсора за пределами нижней границы экрана (при помощи функции 02h). Это — самый надежный способ; существуют и другие приемы, но далеко не на всех видеоконтроллерах они дают нужный результат.

Прерывание Int 10h, функция 02h: установить позицию курсора

Функция позиционирует курсор на экране.

Перед вызовом прерывания требуется занести в регистры следующие значения:

• в ВН — номер текстовой видеостраницы;

• в DH — номер строки (Y);

• в DL — номер столбца (X).

За начало системы координат принят левый верхний угол экрана, причем ось X направлена слева направо, а ось Y — сверху вниз В стандартном текстовом режиме значение X можно задавать в пределах от 0 до 79, значение Y — от 0 до 24. Если задать значение Y = 25, то курсор становится невидимым (уходит за нижнюю границу видеостраницы).

Прерывание Int 10h, функция 03h: получить позицию и размер курсора

Функция определяет текущую позицию курсора на заданной видеостранице, а также размер курсора.

Перед вызовом прерывания требуется занести в регистры следующие значения:

• в ВИ — номер видеостраницы.

После выполнения функции в регистрах будут размещены следующие значения:

• в СИ — номер начальной строки курсора в знакоместе;

• в CL — номер конечной строки курсора в знакоместе;

• в DH — номер строки текущей позиции курсора;

• в DL — номер столбца текущей позиции курсора.

Прерывание Int 10h, функция 05h: установить видеостраницу

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

• в AL — номер видеостраницы, которую требуется установить.

Прерывание Int 10h, функция 10h, подфункция OOh: установить один регистр палитры

Функция предназначена для 16-цветных режимов (текстовых и графических). Она позволяет переопределить цвет, соответствующий одному из кодов цвета.

Перед вызовом прерывания требуется занести в регистры следующие значения:

• в АХ – код lOOOh;

• в BL — номер регистра палитры (0-15);

Прерывание Int 10h, функция 10h, подфункция 01 h: установить цвет рамки экрана

Функция позволяет изменить цвет рамки экрана (по умолчанию он черный).

Перед вызовом прерывания требуется занести в регистры следующие значения:

• в АХ – код lOOlh;

Прерывание Int 10h, функция 10h, подфункция 02h: установить все регистры палитры

Функция предназначена для 16-цветных режимов. Она позволяет переопределить значения 16 регистров палитры и регистра рамки экрана.

Перед вызовом прерывания требуется занести в регистры следующие значения:

• в АХ – код 1002h;

• в ES: DX — указатель на массив из 17 байт (байты 0-15 содержат цвета палитры, байт 16 — цвет рамки).

Прерывание Int 10h, функция 10h, подфункция 03h: переключить бит атрибута «мерцание/яркость»

Функция переключает значение седьмого бита байта атрибутов символа: мерцание или яркий фон.

Перед вызовом прерывания требуется занести в регистры следующие значения:

• в АХ – код 1003h;

• в BL — значение бита 7 в байте атрибутов (0 — яркий фон, 1 — мерцание символа).

Функция воздействует на режим отображения всех символов, а не на один конкретный символ. По умолчанию установка бита 7 в байте атрибутов символа вызывает его мерцание.

Ни мерцание, ни яркий фон не следует применять без особой необходимости — они утомляют оператора, сидящего за экраном монитора.

Прерывание Int 10h, функция 10h, подфункция 07h: прочитать один регистр палитры

Функция предназначена для 16-цветных режимов. Она позволяет прочитать значение цвета из заданного регистра палитры.

Перед вызовом прерывания требуется занести в регистры следующие значения:

• в АХ – код 1007h;

• в BL — номер регистра палитры (0-15).

После выполнения функция возвращает значение цвета в ВН.

Прерывание Int 10h, функция 10h, подфункция 08h: прочитать один регистр палитры

Функция позволяет прочитать значение цвета рамки экрана из соответствующего регистра видеоконтроллера.

Перед вызовом прерывания требуется занести: в регистр АХ код lOOBh.

После выполнения функция возвращает значение цвета в регистре ВН.

Прерывание Int 10h, функция 10h, подфункция 09h: прочитать все регистры палитры

Функция предназначена для 16-цветных режимов. Она позволяет прочитать и сохранить в оперативной памяти значения 16 регистров палитры и регистра рамки экрана.

Перед вызовом прерывания требуется занести в регистры следующие значения:

• в АХ – код 1009h;

• в ES:DX — указатель на массив из 17 байт для сохранения кодов цвета.

После выполнения функции байты 0-15 указанного массива содержат цвета палитры, байт 16 — цвет рамки.

Прерывание Int 10h, функция 10h, подфункция 10h: установить один регистр ЦАП

Читать еще:  Единицей работы в системе си является

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

Перед вызовом прерывания требуется занести в регистры следующие значения:

• в АХ – код 1010h;

• в ВХ — номер регистра ЦАП (0-255);

• в DH — новое значение интенсивности красного цвета (0-63);

• в СН — новое значение интенсивности зеленого цвета (0-63);

• в CL — новое значение интенсивности синего цвета (0-63).

Прерывание Int 10h, функция 10h, подфункция 12h: перезагрузить группу регистров ЦАП

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

Перед вызовом прерывания требуется занести в регистры следующие значения:

• в АХ – код 1012h;

• в BX — номер начального регистра ЦАП (0-255);

• в СХ — число перезагружаемых регистров (1-256);

• в ES: DX — указатель на массив загружаемых оттенков из ЗхСХ байт.

Массив оттенков должен содержать число 3-байтных строк, равное значению, записанному в СХ. Первый байт в строке кодирует интенсивность красного, второй — зеленого, третий — синего цветов.

Прерывание Int 10h, функция 10h, подфункция 15h: прочитать один регистр ЦАП

Функция предназначена для 256-цветных режимов. Она позволяет прочитать содержимое заданного регистра цифро-аналогового преобразователя.

Перед вызовом прерывания требуется занести в регистры следующие значения:

• в АХ – код 1015h;

• в BX — номер регистра ЦАП (0-255).

После завершения функции в регистрах будут размещены следующие значения:

• в DH — значение интенсивности красного цвета;

• в СН — значение интенсивности зеленого цвета;

• в CL — значение интенсивности синего цвета.

Прерывание Int 10h, функция 10h, подфункция 17h: прочитать группу регистров ЦАП

Функция предназначена для 256-цветных режимов. Она позволяет сохранить в оперативной памяти компьютера набор оттенков, соответствующих группе цветовых кодов.

Перед вызовом прерывания требуется занести в регистры следующие значения:

• в АХ – код 1017h;

• в BX — номер начального регистра ЦАП (0-255);

• в СХ — число считываемых регистров (1-256);

• в ES-DX- указатель на область памяти для сохранения считанной информации (массив размером ЗхСХ байт).

После выполнения функции массив оттенков будет содержать 3-байт- ные строки: первый байт в строке кодирует интенсивность красного, второй — зеленого, третий — синего цветов.

Прерывание Int 10h, функция 11 h, подфункция OOh: загрузить шрифт пользователя для текстового видеорежима

Функция обеспечивает загрузку заданного пользователем шрифта в знакогенератор. Применяется в текстовом видеорежиме.

Обычно весь шрифт загружается целиком (СХ = 256, DX = 0), однако при необходимости возможна перезапись отдельного участка в наборе символов (в СХ записывается число заменяемых символов, в DX —номер первого символа в заменяемом участке). Память знакогенератора может содержать до восьми наборов шрифтов, однако обычно используется только блок с нулевым номером (BL = 0). В цветном текстовом режиме VGA используется шрифт 8×16, то есть ВН = 16. Символы представлены в растровой форме, каждой точке изображения соответствует один бит в маске символа, а каждой строке — один байт; символ кодируется 16 байтами, а полная таблица шрифта занимает 4 Кбайт.

Перед вызовом прерывания требуется занести в регистры следующие значения:

• в АХ – код llOOh;

• в ВН — число байтов в матрице символа;

• в BL — номер загружаемого блока знакогенератора;

• в СХ — число загружаемых символов;

• в DX — номер первого загружаемого символа в таблице кодов;

• в ES: BP — указатель на таблицу, содержащую маски символов загружаемого шрифта.

Источник: Кулаков В. К90 Программирование на аппаратном уровне: специальный справочник (+дискета). 2-е издание. — СПб.: Питер, 2003. — 847 е.: ил.

Электронная библиотека

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

после записи параметров в регистры, где функция представляет собой число из диапазона от 0 до 1Ch.

Функция 0: установить видеорежим.

Вход: AL = номер видеорежима.

Данная функция устанавливает видеорежим с указанным номером, в соответствии с табл. 6.1.

CGA, EGA, MCGA, VGA

CGA, EGA, MCGA, VGA

CGA, EGA, MCGA, VGA

CGA, EGA, MCGA, VGA

При установке видеорежима, как правило, видеопамять очищается, поэтому очистку экрана можно выполнять с помощью повторной установки видеорежима. Эта функция приводит к установке принятых по умолчанию значений цветов. Если необходимо установить видеорежим, не очищая экран, то перед вызовом функции надо записать в AL сумму номера режима и числа 80h. ROM BIOS использует для программ обслуживания данные, записанные в память, начиная с адреса 400h. Эта область состоит

из двух блоков по 256 байт. В частности, номер видеорежима находится по адресу 449h. Текущий видеорежим можно определить функцией 0Fh.

Функция 1: установить размер курсора.

Вход: CH – начальная строка сканирования,

CL – конечная строка сканирования.

Курсор состоит из 16 сканируемых строк в стандартных текстовых режимах. Данная функция позволяет переустановить номера отображаемых строк. (По умолчанию для VGA значения CH = 13 и CL = 14.) Для номеров строк используются лишь младшие тетрады регистров CH и CL.

Функция 2: установить положение курсора.

Вход: BH – экранная страница,

DH – номер строки (координата y),

DL – номер строки (координата x).

Каждая страница экрана может иметь собственное положение курсора. Номер страницы, которая в данный момент выводится на экран, устанавливается с помощью функции 5 (прерывания 10h).

Функция 3: прочитать координаты положения курсора.

Вход: BH – экранная страница,

CH – начальная строка сканирования,

CL – конечная строка сканирования,

Сообщает размеры и координаты курсора на странице BH.

Функция 5: установить активную страницу экрана.

Вход: AL – номер новой экранной страницы.

Функция используется для выбора страницы, которая будет отображаться на экране. В текстовых режимах 0-3 номер страницы принимает значения от 0 до 7. В графических 16-цветных режимах номер страницы изменяется в пределах 0-1 или 0-3.

Функция 6: прокрутить окно вверх.

Вход: AL – число строк прокрутки,

CH – номер строки для верхнего левого угла,

Читать еще:  Ассемблер x86 64

CL – номер столбца для верхнего левого угла,

DH – номер строки для правого нижнего угла,

DL – номер столбца для правого нижнего угла,

BH – атрибут изображения для пустых строк.

Функция 7: прокрутить окно вниз.

Входные параметры те же, что и для функции 6.

Функция 8: прочитать знак и атрибут.

Вход: BH – номер активной страницы.

Выход: AL – код символа ASCII, прочитанного по месту расположения курсора,

AH – атрибут текстового знака.

Функция применяется для чтения знаков с экрана. Работает как в текстовом, так и в графическом режиме.

Функция 9: записать знак и атрибут.

Вход: AL – код символа ASCII, прочитанного по месту расположения курсора,

BL – значение атрибута (в текстовом режиме), цвет символа (в графическом режиме),

BH – номер страницы экрана (кроме режима 3),

CX – число экземпляров знака и атрибута, подлежащих записи.

Функция 0Ah: записать знак.

Вход: AL – код ASCII, записываемый на экран,

BL – цвет символа (для графических режимов),

BH – цвет фона (для видеорежима 13h) или номер страницы (для остальных режимов),

CX – число экземпляров знака и атрибута, подлежащих записи.

Эта функция в отличие от функции 9 не позволяет изменять текущий атрибут в текстовом режиме.

Функция 0Bh: установить 4-цветную палитру.

Вход: BH = 00h, BL – цвет фона, или

BH = 01h, BL – номер палитры (0 или 1).

В случае BH = 0 цвет фона может принимать значения от 00h до 0Fh. В случае BH = 1 можно выбрать одну из двух палитр, обеспечиваемых аппаратными средствами.

Функция 0Ch: записать пиксел.

Вход: AL – цвет пиксела,

BH – номер страницы экрана,

DX – координата y,

CX – координата x.

При установленном бите 7 в регистре AL пиксел будет иметь цвет, полученный в результате поразрядной операции XOR со старым цветом точки, имеющей координаты x = CX и y = DX.

Функция 0Dh: прочитать пиксел.

Вход: BH – номер страницы экрана,

DX – координата y,

CX – координата x.

Выход: AL – значение цвета пиксела.

Возвращает цвет точки, имеющей координаты (x, y). Действует в графических режимах.

Функция 0Eh: вывод символа в режиме телетайпа.

Вход: AL – код ASCII символа,

BL – цвет символа (в графическом режиме),

BH – страница экрана (для ранних IBM PC).

Выводит символ на экран как на печатающее устройство, при необходимости переходя на новую строку или делая скроллинг вверх.

Функция 0Fh: получить текущий видеорежим.

Выход: AL – номер текущего видеорежима,

AH – число знаков в строке (80 или 40),

BH – номер активной страницы.

Функция 10h: установка и чтение регистров палитры.

Вход: AL – подфункция

AL = 0 – установить один регистр палитры,

AL = 1 – установить цвет окантовки экрана,

AL = 2 – установить 16 регистров палитры и цвет окантовки,

AL = 3 – установить яркость фона или атрибут мерцания,

AL = 7 – прочитать значение регистра палитры,

AL = 8 – прочитать регистр цвета окантовки,

AL = 9 – прочитать значения 16 регистров палитры и регистра окантовки,

AL = 10h – изменить указанный регистр цвета DAC.

AL = 0. Номер регистра палитры (который в функциях вывода символов и точек задается как параметр цвета) при вызове этой подфункции следует записать в BL, а новое значение регистра палитры – в BH. Подфункция AL = 7 выполняет обратную операцию – при вызове подфункции AL = 7 номер регистра палитры следует записать в BL, а в BH будет возвращаться текущее значение этого регистра палитры. Значение регистра палитры, состоящего из смеси Red красных, Green зеленых и Blue синих цветов, где Red, Green и Blue – целые числа, принимающие значения от 0 до 3, вычисляются по формуле

Здесь a % b обозначает остаток от деления a на b, a / b – целая часть дроби , a * b – произведение. Если Red состоит из битов Rr, Green – из Gg, Blue – из Bb, то значение регистра BH будет равно 00rgbRGB.

AL = 1. Часть экрана, лежащая вне рабочей области, называется окантовкой (или окаймлением). Эта часть не обязательно должна быть черной. При вызове данной подфункции значение цвета окантовки задается в регистре BH. Подфункция 8 возвращает в BH значение цвета окантовки.

AL = 2. Изменение значений всех регистров палитры и регистра окантовки. Перед вызовом данной подфункции следует записать новые значения регистров в 17-байтную таблицу (массив), а адрес этой таблицы передается с помощью регистров ES и DX. Подфункция 9 выполняет обратное действие, записывая регистры палитры и окантовки в массив, адрес которого находится в регистрах ES и DX.

AL = 3. Значение, переданное в регистре BL, определяет, будет ли мерцание задано (BL = 1) или отменено (BL = 0). При отмене мерцания цвет фона изменяется в диапазоне от 0 до 15. (В этом случае старший бит байта атрибута обозначает интенсивность цвета фона.)

AL = 10. Осуществляет изменение регистра, принадлежащего набору, состоящему из 256 регистров цвета цифроаналогового преобразователя (DAC или ЦАП). В BX задается номер регистра цвета. Значения красного, зеленого и синего цветов задаются соответственно в регистрах DH, CH и CL. Для чтения одного из регистров цвета следует записать номер регистра цвета в BX и вызвать подфункцию 15h, которая возвратит значения RGB в DH, CH и CL.

Функция 11h: загрузить набор символов, используемых в текстовых или графических режимах.

Функция 12h: выбор альтернативной программы печати экрана.

Функция 13h: записать строку знаков.

В зависимости от AL использует заданные атрибуты для записи строки с адресом ES:BP на экран. Длина строки задана регистром CX, начальная позиция – регистром DX, страница – регистром BH. Если AL = 0, то атрибуты берутся из регистра BL. Если AL = 2 или AL = 3, то на экран переписываются из строки байты, помещая в видеоп

амять сначала знак, а затем его атрибут. Если AL = 2, то курсор остается в первоначальной позиции. Если AL = 3, то курсор перемещается в положение за последним знаком выведенной строки.

Функция 1Ah: прочитать / записать код комбинации дисплея.

Возвращает двухбайтовый код, указывающий, какая комбинация видеоподсистем и видеодисплеев присутствует на данном компьютере.

Функция 1Bh: получить информацию о функциональных возможностях видеоподсистемы и ее статусе.

Функция 1Ch: сохранить или восстановить статус видеоподсистемы.

Срочно?
Закажи у профессионала, через форму заявки
8 (800) 100-77-13 с 7.00 до 22.00

Ссылка на основную публикацию
Adblock
detector