INT 10H

редактировать

INT 10h, INT 10H или INT 16 - это сокращение для вызова прерывания BIOS 10шестнадцатеричное, 17-й вектор прерывания в компьютерной системе на основе x86. BIOS обычно устанавливает реальный режим обработчик прерывания в этом векторе, который предоставляет видеоуслуги. Такие сервисы включают в себя установку видеорежима, вывода символов и строк и графических примитивов (чтение и запись пикселей в графическом режиме).

Чтобы использовать этот вызов, загрузите в AH номер нужной подфункции, загрузите другие необходимые параметры в другие регистры и сделайте вызов. INT 10h - это довольно медленно, поэтому многие программы обходят эту процедуру BIOS и напрямую обращаются к оборудованию дисплея. Настройка видеорежима, которая выполняется нечасто, может быть выполнена с помощью BIOS, в то время как рисование графики на экране в игре должно выполняться быстро, поэтому прямой доступ к видеопамяти более уместен, чем вызов BIOS для каждого пикселя..

Кроме того, в современной системе x86 вызовы BIOS могут выполняться только в реальном режиме или виртуальном режиме 8086. v8086 не подходит для длинного режима. Это означает, что современная операционная система, которая работает в защищенном режиме (32 бит) или длинном режиме (64 бит), должна будет переключиться в реальный режим и обратно, чтобы вызвать BIOS - чрезвычайно дорогостоящая операция. Хотя в большинстве современных систем обычно используются драйверы устройств, которые напрямую устанавливают видеорежим, для любительских систем нереально иметь драйвер устройства для каждой видеокарты - проблема, которая также характерна для старых, неподдерживаемых систем, таких как Windows 98. Вместо этого такие системы могут перейти в реальный режим для переключения видеорежима, а затем напрямую отрисовывать в кадровый буфер.

Список поддерживаемых функций

Список неполный; используйте список Ральфа Брауна для получения исчерпывающей информации. Пожалуйста, добавляйте только IBM / PC или другие общие стандартные функции. 00h - 0fh - это CGA.

ФункцияКод функцииПараметрыВозврат
Установить режим видеоAH = 00hAL = видео режимAL = флаг режима видео / байт режима контроллера ЭЛТ
Установка формы курсора текстового режимаAH = 01hCH = начало строки сканирования, CL = сканирование Конец строки

Обычно символьная ячейка имеет 8 строк развертки, 0-7. Итак, CX = 0607h - нормальный курсор подчеркивания, CX = 0007h - курсор полного блока. Если установлен бит 5 канала CH, это часто означает «Скрыть курсор». Итак, CX = 2607h - невидимый курсор.

Некоторые видеокарты имеют 16 строк развертки, 00h-0Fh.

Некоторые видеокарты не используют пятый бит канала. С их помощью сделайте Start>End (например, CX = 0706h)

Установите положение курсораAH = 02hBH = номер страницы, DH = строка, DL = столбец
Получить положение и форма курсораAH = 03hBH = номер страницыAX = 0, CH = начало строки сканирования, CL = конец строки сканирования, DH = строка, DL = Столбец
Прочитать положение светового пера (не работает в системах VGA )AH = 04hAH = Статус (0 = не срабатывает, 1 = запускается), BX = пиксель X, CH = пиксель Y, CX = номер строки пикселя для режимов 0Fh-10h, DH = символ Y, DL = символ X
Выбор активной страницы отображенияAH = 05hAL = номер страницы
Окно прокрутки вверхAH = 06hAL = строки для прокрутки (0 = очистить, CH, CL, DH, DL - использовано),

BH = Цвет фона и цвет переднего плана. BH = 43h, означает, что цвет фона красный, а цвет переднего плана - голубой. См. атрибуты цвета BIOS

CH = номер верхней строки, CL = номер левого столбца, DH = номер нижней строки, DL = номер правого столбца

Окно прокрутки внизAH = 07hкак указано выше
Прочитать символ и атрибут в позиции курсораAH = 08hBH = Номер страницыAH = Цвет, AL = символ
Запись символа и атрибута в позиции курсораAH = 09hAL = символ, BH = номер страницы, BL = цвет, CX = Количество раз для печати символа
Записать символ только в позицию курсораAH = 0AhAL = Символ, BH = Номер страницы, CX = Количество раз для печати символа
Установить цвет фона / границыAH = 0Bh, BH = 00hBL = Цвет фона / границы (только граница в текстовых режимах)
Установить палитруAH = 0Bh, BH = 01hBL = Идентификатор палитры (был действителен только в CGA, но новые карты поддерживают его во многих или во всех графических режимах)
Запись графического пикселяAH = 0ChAL = Color, BH = Номер страницы, CX = x, DX = y
Чтение графического пикселяAH = 0DhBH = номер страницы, CX = x, DX = yAL = цвет
Вывод телетайпаAH = 0EhAL = символ, BH = номер страницы, BL = цвет (только в графическом режиме)
Получить текущее видео режимAH = 0FhAL = видеорежим, AH = количество столбцов символов, BH = активная страница
Изменить набор символов текстового режимаAH = 11hBH = количество байтов на символ, CX = количество символов, которые нужно изменить, DX = начальный символ, который нужно изменить, ES: BP = смещение символьных данных
Запись строки (EGA +, что означает PC AT минимум)AH = 13hAL = режим записи, BH = номер страницы, BL = Color, CX = количество символов в строке, DH = строка, DL = Столбец, ES: BP = Смещение строки
устанавливает VESA-совместимые режимы видео, начиная с 640 на 480 и достигая 1280 на 1024 с 256 цветамиAX = 4f02hBX = видеорежим, если установлен бит знака (бит 15), видеопамять не будет обновляться
Другое VESA VBE командыAX = 4F00h до 4F15hСм. спецификациюСм. спецификацию
См. также
Ссылки
Последняя правка сделана 2021-05-23 07:32:16
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте