Прерывание INT10h выполняет все многочисленные операции по обслуживанию дисплейного адаптера.
При вызове прерывания INT 10h, как и при вызове многих других прерываний, регистр AH содержит номер функции, которую требуется выполнить. Остальные регистры при вызове прерывания содержат операнды.
Программирование дисплейного адаптера - сложная задача. Функции, выполняемые прерыванием INT 10h обширны, полностью они будут описаны во втором томе книги. Приведем краткий обзор функций прерывания INT 10h.
Эта функция обычно вызывается первой при начале работы с дисплейным адаптером или при необходимости изменить текущий режим адаптера. Что здесь имеется в виду?
Напомним, что дисплейный адаптер может работать либо в текстовом, либо в графическом режиме. На самом деле существует несколько текстовых и несколько графических режимов, различающихся количеством строк и столбцов, способом представления цвета и т.д.
В процессе инициализации BIOS задает начальный режим адаптера исходя из его типа. Если Вашей программе нужен другой режим, отличный от исходного, она должна использовать эту функцию. При этом необходимо учитывать, что дисплейные адаптеры могут поддерживать не все режимы.
С помощью этой функции вы можете установить размер и форму курсора, сделать курсор мигающим или убрать его совсем.
Эта функция позволяет управлять расположением курсора на экране, в частности, один из способов убрать курсор - расположить его за пределами экрана, например, на несуществующей 26 строке.
Программа может узнать в любое время, где расположен курсор. Это может потребоваться ей, например, для того, чтобы переместить курсор в следующую позицию (вправо, вверх, вниз, на 10 символов левее текущего положения и т.д.).
Световое перо используется относительно редко, однако если оно есть, то функция 04h позволит вам работать с этим устройством.
Компьютер хранит, как правило, не один отображаемый образ экрана, а несколько. Для этого видеопамять (память для хранения видеоизображения, находится на плате видеоконтроллера) разбивается на так называемые страницы. Отображается только активная страница видеопамяти.
Используя механизм страниц, программа может заранее подготовить изображение в неактивной странице, затем сделать подготовленную страницу активной. Изображение новой страницы мгновенно появится на экране.
Некоторые отладчики программ используют одну страницу видеопамяти для отлаживаемой программы, другую - для выдачи своих диагностических сообщений.
С помощью этих функций вы сможете переместить выбранную область окна на заданное число строк вверх или вниз. Освободившееся место будет заполняться пустыми строками. Одно из применений этой функции - полная очистка экрана.
С помощью этих функций можно прочитать или записать символ и его атрибут. При записи символа можно задать число повторений. Функцию записи с повторением удобно использовать для заполнения области экрана каким-либо символом.
Запись/чтение символа начинается с текущего положения курсора.
Эта функция предназначена для записи символа в видеопамять без задания для него индивидуального значения атрибута. Используется текущий атрибут. Можно задавать кратность записи.
Эта функция позволяет управлять цветом рамки вокруг изображения в текстовом режиме и цветом фона в графическом режиме (для адаптеров EGA, VGA).
Можно высветить точку заданного цвета в заданном месте экрана для выбранной дисплейной страницы или прочитать значение цвета любой точки на экране соответственно.
После записи символа на экран курсор продвигается на следующую позицию, при этом обрабатываются такие управляющие символы, как BEL (подача звукового сигнала), возврат на одну позицию, перевод строки, возврат к началу строки.
Если Ваша программа изменяет видеорежим, она может сохранить старый видеорежим, получив его с помощью этой функции.
Кроме того, функция возвращает количество столбцов на экране и номер текущей активной дисплейной страницы.
Эти функции работают только при использовании дисплейных адаптеров EGA и VGA. Они позволяют устанавливать свою цветовую палитру, загружать знакогенератор (например, шрифтом для русских букв) и выполнять некоторые другие функции.
Для машин класса AT и выше при наличии дисплейных адаптеров EGA или VGA эта функция позволяет вывести на экран произвольную строку символов заданной длины, с заданным атрибутом и в заданном месте экрана. Можно также задать номер дисплейной страницы.
Если вы не можете использовать эту функцию (Ваш компьютер - XT или дисплейный адаптер - CGA), единственный способ вывести на экран строку символов с помощью прерывания INT 10h - вызывать в цикле функции 09h, 0Ah или 0Eh для вывода строки по одному символу.