Приложение 8. Список функций BIOS.

Информация взята автором из различной справочной литературы, в том числе и ком­пьютерного происхождения. Часть информации убрана мной из данной главы вследствие того, что она морально устарела. Часть информации оставлена мной не столько для прак­тического использования, сколько в общеобразовательных целях. Описание функций BIOS для SVGA (по стандарту VESA) адаптеров помещено в главу 27. Сделано это для того, чтобы лишний раз подчеркнуть тот факт, что данная информация еще не устоялась.

Обслуживание видеосистемы (прерывание ЮН).

BIOS предоставляет пользователю ряд функций для управления дисплеем. Эти функ­ции вызываются через прерывание ЮН. Функции дисплея перечислены в таблице. Набор допустимых функций определяется типом дисплея и его адаптера, но функции с номера­ми 0-15 поддерживаются любым адаптером, допускающим графику. ПЗУ, содержащее видеофункции прерывания, ЮН находится на плате видеоадаптера и, естественно, коррект­но управляет видеосистемой. Это является одним из главных преимуществ использования 10-го прерывания. Недостатком является медленная их работа. Однако такие функции, как установка режима или переключение видеостраниц, будут полезны в любой программе.

номер

функция

О (ООН)

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

І (Qm)

установка типа курсора

2 (Q2IT)

установка позиции курсора

З (ОЗН)

получить позицию и размер курсора

4 (Qffl)

получить позицию и состояние светового пера

5 (Q5IT)

установка активной страницы дисплея

б (Q6H)

скроллинг окна вверх

7 (Q7IT)

скроллинг вниз

8 (Q8IT)

чтение знака с атрибутом

9 (09Н)

запись знака с атрибутом

АН)

запись знака

11(0ВН)

установка палитры

12 (ОСИ)

чтениеточки

13(0DH)

запись точки

14(0ЕН)

вывод знака в режиме телетайпа

15(0FH)

получить режим дисплея

16(10Н).

установка регистров палитры

 

17 (ПН)

установка знакогенератора

 

18 (12Н)

дополнительные функции поддержки EGA

 

19(13Н)

вывод строки

 

2Q (14Н)

загрузка фонтов VGA

 

21 (І5Н)

получить физические параметры активного дисплея

 

АН)

получить или установить     типа дисплея

 

27(1ВН)

получение информации о состоянии

 

28(1СН)

сохранение и восстановление состояния дисплея

 

Функции BIOS для управления дисплеем.

1.   Установка режима дисплея

Параметры: (АН) = 0,

(АЬ) - режим дисплея Результатов нет.

Вызов разрушает регистры АХ, ВР, БІ, БІ.

Допустимые режимы наиболее распространенных в ГШ ЭВМ дисплеев (адапте­ров) перечислены в таблице.

Режим (AL)

Тип

Разрешение Поддерживается

адаптерами

Цвет знак/фон

Адрес буфера

Q

текстовый

4Q*25

все, кроме MDA

оттенков

B8QQQ

І

текстовый

4Q*25

все, кроме MDA

Іб/8

B8QQQ

2

текстовый

8Q*25

все, кроме MDA

оттенков

B8QQQ

З

текстовый

8Q*25

все, кроме MDA

Іб/8

B8QQQ

4

графический

32Q*2QQ

все, кроме MDA

4

B8QQQ

5

графический

32Q*2QQ

все, кроме MDA

4 оттенка

B8QQQ

б

графический

64Q*2QQ

все, кроме MDA

2

B8QQQ

7 .

текстовый

8Q*25

MDA

нет

BОООО

8

графический

16Q*2QQ

PCjr

Іб

BОООО

9

графический

32Q*2QQ

PCjr

Іб

BОООО

1Q

графический

64Q*2QQ

PCjr

Іб

BОООО

ІІ

резерв

 

 

 

 

І2

резерв

 

 

 

 

ІЗ

графический

З20*200

EGA, VGA

Іб

AOOOO

І4

графический

64Q*2QQ

EGA, VGA

Іб

AOOOO

І5

графический

б40*З50

EGA,VGA

нет

AOOOO

Іб

графический

б40*З50

VGA

Іб

AOOOO

І7

графический

64Q*48Q

VGA

2

AOOOO

І8

графический

б40*480

VGA

Іб

AOOOO

І9

графический

З20*200

VGA

25б

AOOOO

Режимы адаптеров дисплея

Режимы дисплея подразделяются на текстовые и графические. B текстовых режи­мах буфер дисплея содержит коды символов, интерпретируемые знакогенератором, а также байты атрибутов, определяющие цвет и другие характеристики изображений знаков (мерцание, интенсивность, иногда подчеркивание). B текстовых режимах эк­ран рассматривается как 25 строк текста по 4Q или 8Q знаков в строке.

B графических режимах возможен доступ к отдельным точкам (точнее, элементам изображения) экрана. Экран рассматривается как 200 (или З50) линий по З20 или б40 точек на каждой из них. Буфер дисплея содержит атрибут каждого элемента изображе­ния. Вывод текстовой информации в графических режимах поддерживается специ­альными модулями BIOS.

B адаптере дисплея CGA имеется специальный порт управления режимом (3D8H). Запись байта в этот порт - режим экрана. В следующей таблице показана кодировка

байта управления режимом.

Кодировка битов порта управления режимом дисплея CGA

режим

 

биты порта 3D8H

 

 

 

1

б

5

4

З

2

І

Q

 

Q

X

X

b

Q

с

І

0

Q

х - неиспользуемый бит

І

X

X

b

Q

с

Q

Q

Q

Ь- бит мерцания:

2

X

X

b

Q

с

І

Q

І

0 - выключено,

З

X

X

b

Q

с

Q

Q

І

1 -включено.

4

X

X

b

Q

с

І

І

X

с - бит видимости:

5

X

X

b

Q

с

X

X

X

0 - изображение не выводится на экран,

б

X

X

b

І

с

X

X

X

1 - изображение выводится на экран

Режимы и 5 аналогичны режимам и 4, за исключением того, что в первых подавляется цвет. Фактически подавление цвета возможно только в дисплеях опреде­ленного типа (так называемых составных мониторах); в наиболее распространенных мониторах (RGB), в которых каждый основной цвет управляется своим сигналом, такое подавление невозможно, так что режим 1, например, ничем не отличается от режима 0.

При установке режима экран очищается даже в случае, когда режим не изменяется. Вызов функции 0, однако, не лучший способ очистки экрана; функция 6 или 7 работает несколько быстрее. Некоторые адаптеры (EGA, PCjr, VGA) позволяют избежать очист­ки экрана при смене режима. Такой режим кодируется единицей в старшем (AL).

Отметим еще, что при изменении режима меняется и размер курсора, в частности, в графических режимах курсор не отображается на экране.

При включении питания или системном сбросе устанавливается режим дисплея, определяемый переключателями конфигурации (обычно режим 0), MS DOS при заг­рузке устанавливает режим 2. Текущая установка режима хранится в области данных BIOS и может быть прочитана, однако предпочтительно воспользоваться для получе-ниярежимафункцией(АН)=15 INT ЮН.

Замечания:

1. EGA, PCjr, PC Convertible, VGA. Если бит 7 (AL) = 1, то буфер экрана не очи­щается при установке режима.

2. EGA. Начальный режим (при включении питания) определяется переключате­лями в адаптере.

3. PC Convertible. Начальный режим при работе с цветным монитором- 2, с чер­но-белым - 7. Режим 7 используется как черно-белыйдля дисплея VGA (640*200) или для MDA (640*350).

4. VGA. Начальный режимдисплея - 3. Для всех режимов, кроме режима 19, ини­циализируются первые регистров управления цветом; значения остальных 24Q регистров управления цветом не определены.

5. VGA. Начальный режим дисплея 3 (цветовой дисплей) или 7 (черно-белый). Для всех режимов, кроме режима инициализируются первые б4 регистра управления цветом; значения остальных регистров управления цветом не определены.

2.   Установка типа курсора

Параметры: (АН)=1,

(СН) - номер верхней линии курсора,

(CL) - номер нижней линии курсора. Результатов нет.

Вызов разрушает регистры АХ, BP, SI, DI.

Bывод текстовой информации на экран средствами BIOS производится с пози­ции курсора. B текстовых режимах положение и размер курсора фиксируются вовнутренних регистрах адаптера дисплея (аппаратный курсор), в графических режи­мах - моделируются средствами BIOS. При выводе знака курсор не перемещается автоматически.

Для установки размера курсора используется функция І INT І0П Размер и форма курсора определяются параметрами в четырех младших битах регистров СН и CL. Строки знакоместа на экране нумеруются сверху вниз, начиная с 0, и курсор представ­ляет собой прямоугольник, состоящий из всех точек указанных линий. Если (CL) < (СН), то курсор будет состоять из двух частей.

Допустимые значения параметров СН и CL определяются типом адаптера и раз­мером знакоместа на экране: для CGA знакоместо составляется из 8 строк, так что параметры не должны превышать 7, для MDAи EGA они не должны превышать 13. При включении питания или системном сбросе устанавливается размер курсора: (СН) = 6 и (CL) = 7 для CGAh EGA в режиме, отличном от режима MDA, (СН) = 11 и (CL) = 12для MDAh EGA в режиме MDA.

Биты 5 и 6 (СН) в некоторых адаптерах можно использовать для указания частоты мерцания курсора, в частности, можно с их помощью сделать курсор Однако использование этого средства нельзя рекомендовать, поскольку оно не будет работать на некоторых компьютерах. Проще сделать курсор невидимым, установив его (функцией 2 - см. ниже) за пределами экрана.

Функция І устанавливает размер курсора для всех страниц дисплея. Невозможно установить различные курсоры для разных страниц. B графических режимах нет ап­паратного видимого курсора, и функция просто сообщает BIOS размер курсора, кото­рый будет использоваться, когда режим экрана станет текстовым.

Замечание. VGA. Перед записью в регистры адаптера значение (СН) удваивается, a (CL) удваивается и

3.  Установка позиции курсора.

Параметры:      = 2,

^Н) - номер страницы дисплея,

(DH) - номер строки, (DL) - номер столбца. Результатов нет.

Bызов разрушает регистры АХ, BR SI, DI.

Функция устанавливает позицию курсора на указанной странице дисплея. Стра­ница может быть активной, и тогда в текстовом режиме изображение курсора переме­стится на экране, или неактивной. Для графических режимов номер страницы должен быть равен 0. Допустимые номера страниц для текстовых режимов приведены в таб­лице ниже. Корректность номера страницы не проверяется, и использование неверно­го номера приводит к непредсказуемым результатам.

Координаты курсора во всех режимах задаются в текстовых единицах. Строки экрана нумеруются сверху вниз от 0 до 24, а столбцы - слева направо от 0 до 40 или

80. Допускается такое указание выводит курсор за пределы видимого

экрана.

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

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

Режим

Размер

экрана

Текстовый

размер

Размер

знака

Число

страниц

Адаптер

0,1

320*200

40*25

8*8

8

кроме MDA

 

320*350

 

8*14

8

EGA, VGA

 

320*400

 

8*16

8

 

 

360*400

 

9*16

8

VGA

2,3

640*200

80*25

8*8

4

PC-jr,CGA, PC Convertible

 

640*200

 

8*8

8

EGA, VGA

 

640*350

 

8*14

8

EGA, VGA

 

640*400

 

8*16

8

VGA

 

720*400

 

9*16

8

VGA

4,5

320*200

40*25

8*8

1

кроме MDA

6

640*200

80*25

8*8

1

кроме MDA

7

720*350

80*25

9*14

1

MDA, PC Convert

 

720*350

 

9*14

8

EGA, VGA

 

720*400

 

9*16

8

VGA

8

640*200

160*200

20*25

8*8

8*8

4

1

PC Convertible

PC-jr

9

160*200

40*25

8*8

1

PC-jr

10

160*200

80*25

8*8

1

PC-jr

13

320*200

40*25

8*8

8

EGA, VGA

14

640*200

80*25

8*8

4

EGA, VGA

5,16

640*350

80*25

8*14

2

EGA, VGA

17

640*480

80*30

8*16

1

VGA

18

640*480

80*30

8*16

1

VGA

19

320*200

40*25

8*8

1

VGA

Аппаратные спецификации режимов дисплея

4. Получить позицию и размер курсора

Параметры: (АН) = 3,

(ВН) - номерстраницыдисплея. Результат:   (СН) - номер верхней линии курсора, (CL) - номер нижней линии курсора,

(DH) - номер строки, (DL) - номер столбца. Вызов разрушает регистры АХ, ВР, SI, DI.

Функция возвращает размер и положение курсора в той же форме, которая требуется для установки этих значений функциями 1 и 2. Страница, для которой возвращается позиция курсора, может и не быть активной. Для графических ре­жимов номер страницы должен быть равен 0. Допустимые номера страниц для текстовых режимов приведены в Корректность номера страницы не прове­ряется, и использование неверного номера приводит к непредсказуемым резуль­татам.

5. Получить позицию и состояние светового пера

Параметры: (АН) = 4.

Результат:    (АН) - состояние светового пера: - неактивно, 1-активно, и - координата      по горизонтали; (СН) - координата пера по вертикали (для режимов 15 - 18 - (СХ)); (DH)-номер строки; (DL)-номер столбца. Вызов разрушаетрегистры АХ, BP, SI, DI. При (АН) = 0 содержимое регистров ВХ, СХ и DX не определено.

Координаты светового пера возвращаются в двух формах: позиция знакоместа (но­мер строки и номер столбца) и координаты на графическом экране. Графические коор­динаты неточны: вертикальная координата всегда четна, а горизонтальная делится на 4 или на 8 в зависимости от режима экрана.

Некоторые компьютеры возвращают (АН) = 0 как признак того, что световое перо не установлено.

Замечание. PC Convertible, VGA-функция не поддерживается; всегда возвращает­ся (АН) = 0; (ВХ), (СХ), (DX) разрушается.

6. Установка активной страницы дисплея

Параметры:      = 5,

(AL) - номер страницы. Результатов нет.

Вызов разрушает регистры АХ, ВР, SI, DI. Номер страницы отсчитывается от нуля. Число страниц зависит от режима дисп­лея и типа адаптера - см. табл. 5. Наличие страниц функцией не проверяется.

Замечание. PC-jr. Поддерживаются четыре подфункции: (AL) =   80H - читать регистры страницы. Выход:

(BL) - регистр страницы микропроцессора,

(ВН) - регистр страницы дисплея;

регистр страницы микропроцессора.

Вход:

(BL) - номер страницы; (AL) =   82H - установить регистр страницы дисплея. Вход:

(BL) - номер страницы;

(AL) =   83H - установить регистры страницы. Вход: - регистр страницы микропроцессора, (ВН) - регистр страницы дисплея.

7. Скроллинг окна вверх

Параметры:      = 6,

(AL) - величина сдвига,

(ВН) - атрибут заполнителя пустой строки,

(СН) - номер строки левого верхнего угла окна, (CL) - номер столбца левого верхнего угла

- номер строки правого нижнего угла окна,

(DL) - номер столбца правого нижнего угла окна.

Результатов нет.

Вызов разрушает регистры АХ, BP, SI, DI.

Все параметры задаются в текстовой форме даже для графических режимов. Пря­моугольное окно экрана, определенное координатами перемещается вверх на (AL) строк. Информация, выходящая за пределы экрана, теряется, а освобождаемая область заполняется знаком пробела (код 20Н) с атрибутом (ВН). В графических ре­жимах область заполняется нулевыми кодами. При (AL) = 0 окно очищается.

Замечание: фактически координатами левого верхнего угла являются min и а координатами верхнего правого угла - max

max

8. Скроллинг окна вниз

Параметры: (АН) = 7,

(АЬ) - величина сдвига, (ВН) - атрибут заполнителя пустой строки, (СН) - номер строки левого верхнего угла окна, (СЬ) - номер столбца левого верхнего угла окна, (БН) - номер строки правого нижнего угла окна, (БЬ) - номер столбца правого нижнего угла окна.

Результатов нет.

Вызов разрушает регистры АХ, ВР, БІ, БІ. Функция совершенно аналогично функции (АЬ) = 6 скроллинга вверх.

9. Чтение знака и атрибута

Параметры: (АН) = 8,

(ВН) - номер страницы дисплея. Результат: (АЬ)-кодзнака,

(АН) - атрибут знака.

Вызов разрушает регистры ВР, БІ, БІ.

Функция возвращает код и атрибут знака в позиции курсора на указанной страни­це дисплея. Страница не обязана быть активной. Для графических режимов необходи­мо (ВН) = 0.

В текстовых режимах дисплея в его буфере хранятся коды и атрибуты знаков, а изображения знаков вырабатываются знакогенератором дисплея. Знакоместу экрана соответствуют два смежных байта в памяти дисплея, первый из которых содержит код знака, второй - его атрибут. Если п - номер строки, т - номер столбца и р - номер страницы, то адрес кода знака в буфере дисплея СС7\ определяется формулами:

для режимов 0 и 1 В8000Н+2048*р+80*п+2*т;

для режимов 2 и 3 В8000Н+4096*р+160*п+2*т.

Атрибуты знака кодируются в следующем байте памяти: биты 2 - 0 - цвет знака: ООО-черный, 001 - синий,

010- зеленый,

011- голубой,

100- красный,

101- оранжевый, ПО-коричневый, 111- белый;

бит 3 - бит интенсивности: 0 - нормальная интенсивность, 1 - высокая интенсив­ность; биты 6-4- цвет фона (прямоугольного окна, в котором изображается знак);

Список функций BIOS

кодируется аналогично цвету знака; бит 7 - бит мерцания: 0 - нормальное изображе­ние, 1 - мерцающее изображение.

В цветовых текстовых режимах атрибут прямо используется для управления изоб­ражением на экране; в режимах подавления цвета любой код, отличный 000, дает белый цвет (см., однако, замечание о типах дисплеев в п. 11.1).

Другие адаптеры используют сходную кодировку байта атрибутов, но могут допускать другое использование битов 3 и 7 и программируемый выбор набора цветов знака и фона.

В графических режимах используется совершенно другая кодировка информации (см. 11.12); когда функция (AL) = 8 применяется в графических режимах, она исполь­зует для распознавания знаков (знакоместо может и не содержать кода никакого знака) таблицу изображений знаков. Изображения знаков с кодами 0 - 7FH хранятся в ПЗУ BIOS; таблица изображений остальных знаков (80Н - OFFH) указывается вектором BIOS не устанавливает этот вектор, точнее, устанавливает его на некоторый слу­чайный адрес ПЗУ, Для использования в графических режимах знаков с кодами 80Н -OFFH необходима загрузка специальной программы GRAFTABL69, которая резидент­но загружает таблицу изображений дополнительных знаков и устанавливает вектор ее начало.

Если функция 8 не распознает графического изображения знака, то возвращается (AL) = 0.

10. Запись знака с атрибутом

Параметры: (АН) = 9,

(AL)   код знака,

(ВН) - номер страницы дисплея,

(BL) - атрибут знака,

(СХ) - счетчик повторений. Результатов нет.

Вызов разрушает регистры АХ, ВР, SI, DI.

Функция копирует знак и его атрибут в память дисплея. Если (ВН) указывает на активную страницу, то изображение знака немедленно появится на экране.

Регистр СХ указывает число повторений вывода знака. Следует отметить, что для вывода одного знака нужно указать (СХ) = при (СХ) = 0 выводится до б553б знаков. Знаки выводятся в последовательные адреса, начиная с адреса, соответствующего позиции курсора на странице. Позиция курсора при выводе не изменяется. Если при выводе в графическом режиме установить бит 7 BL в единицу, то атрибут знака будет поразрядно складываться с текущим атрибутом знакоместа экрана (инструкцией XOR).

Для режима    в (ВН) передается цвет фона.

Вывод знака с одновременным изменением позиции курсора выполняется функцией 14.

Хорошие русификаторы обрабатывают эти режимы.

11. Запись знака без изменения атрибута

Параметры: =10,

(AL)   код знака,

(ВН) - номер страницы дисплея,

(СХ) - счетчик повторений. Результатов нет.

Вызов разрушает регистры АХ, ВР, SI, DI.

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

12. Установка палитры

Параметры: (АН) = 11,

.  (ВН) - код подфункции (0 или 1),

(BL) - номер основного цвета или номер палитры.

Результатов нет.

Вызов разрушает регистры АХ, ВР, SI, DI.

Подфункция (ВН) = 0 применимадля любого режимадисплея. В текстовых режимах она устанавливает цвет бордюра экрана; (BL) может принимать любое значение от Одо 16. В графическихрежимахподфункция нетолько определяет цвет бордюра, но также в режи­мах среднего разрешения (320*200) задает основной цвет. Этому цвету соответствует в выб­ранной палитре (см. ниже) код 0. В графическихрежимахвысокого разрешения (гдедопус­кается только два цвета) подфункция 0 устанавливает цвет фонаи цвет бордюра.

Подфункция (ВН) = 1 используется для установки палитры (цветового набора) в графических режимах. Для адаптера CGA допускается ее использование только в ре­жимах 4 и 5, для других адаптеров (EGA, PCjr) она может применяться и в других режимах. В (BL) задается код палитры (0 или 1 для адаптера CGA).

Каждая палитра состоит из четырех цветов.

Для палитры 0:

0 - основной цвет (устанавливаемый отдельно),

1 - зеленый,

2 - красный,

3-коричневый. Для палитры 1:

0 - основной цвет,

1 - синий,

2 - голубой,

3 - белый.

Замечание для EGA, VGA. Если функция выполняется в графическом режиме

640*400 и (ВН) = 0, то устанавливается цвет фона.

13.

Параметры: =12,

(AL) - атрибут (цвет) точки, (СХ) - позиция по горизонтали, (DH) - позиция по вертикали.

Результатов нет.

Вызов разрушает регистры АХ, ВР, SI, DI.

Функция применима только в графических режимах.

Атрибутом точки является код ее цвета: в режимах среднего разрешения код цвета согласно выбранной палитре, в режимах высокого разрешения 0 обозначает белый (или основной) цвет, 1 - черный.

Буфер графического дисплея заполнен атрибутами точек, причем первые 8 Кбайт соответствуют линиям сканирования экрана с четными номерами (0,2,198), следу­ющие 8 Кбайт - линиям с нечетными номерами. В режимах среднего разрешения точ­ке экрана соответствуют два бита буфера, в режимах высокого разрешения - один бит. Позиция атрибута точки с горизонтальной координатой m и вертикальной координа­той m определяется следующим образом:

- для режимов среднего разрешения -

биты 2*(m mod 4) и 2*(т mod 4)+1 байта с адресом

В8000Н+8192*(n mod 2)+80*(n/2)+m/4

- для режимов высокого разрешения - бит 7-(m mod 8) байта с адресом

mod

Выполнение функции зависит от старшего бита (AL): если он равен 0, то атрибут точки просто помещается в буфер дисплея, если же этот бит равен 1,то выполняется

поразрядное сложение (операцией XOR) атрибута с соответствующими битами буфе­ра дисплея.

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

14. Чтение точки

Параметры: =13,

(СХ) - позиция по горизонтали,

(DH) - позиция по вертикали. Результат: (AL) - атрибут (цвет) точки, Вызов разрушает регистры АХ, ВР, SI, DI.

Функция применима только в графических режимах и возвращает атрибут точки графического дисплея в младших битах (AL). Старшие биты (AL) сбрасываются в 0.

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

15. Вывод знаков в режиме телетайпа

Параметры: (АН)

(AL) - знак для вывода,

(BL) - атрибут знака (используется только в графических режимах).

Результатов нет.

Знак выводится в текущую позицию курсора на активной странице, и курсор про­двигается с учетом возможного перехода на новую строку и скроллинга при достиже­нии конца страницы.

Знаки "возврат каретки" (ODH), "перевод строки" (ОАН), "звонок" (07) и "возврат на шаг" (08) обрабатываются особо и не появляются на экране.

Замечания: в некоторых моделях компьютера требуется указание номера актив­ной страницы в ВН.

16. Получить режим дисплея

Параметры: =15.

Результат:    (АН) - ширина экрана в текстовом формате; (AL) - режим дисплея;

(ВН) - номер активной страницы.

Вызов разрушает регистры ВР, SI, DI.

В графических режимах возвращается (ВН) = 0.

Дополнительные средства управления цветом

Четыре следующие подфункции применимы только для адаптеров

EGA, PCjr, VGA.

Установка регистра палитры.

Параметры:      = 1000Н,

(BL) - номер регистра,

(ВН) - значение для установки. Результатов нет.

Каждый из 1 б регистров управления палитрой может принимать одно из б4 значе­ний. Биты (ВН) кодируются следующим образом:

0 - голубая компонента нормальной интенсивности, бит 1 - зеленая компонента нормальной интенсивности,бит2 - красная компонентанормальной интенсивности, бит 3 - голубая компонента меньшей интенсивности, бит4 - зеленая компонента меньшей интенсивности, бит 5 - красная компонента меньшей интенсивности, биты 6 и 7 резервируются.

Нормальный основной цвет получается установкой нормальной компонен­ты, интенсивный основной цвет - установкой обеих компонент, но допускается любая комбинация бит. Значения регистров управления палитрой определяют набор используемых оттенков. Атрибут знака и фона используется как индекс регистра. Так, адаптер EGA определяет следующие умолчания для значений ре­гистров управления палитрой:

регистр

код

цвет

0

ООН

черный

1

01Н

синий

2

02Н

зеленый

3

ОЗН

голубой

4

04Н

красный

5

05Н

оранжевый

б

14Н

коричневый

7

07Н

белый

8

38Н

темно-серый

9

39Н

светло-голубой

10

ЗАН

светло-зеленый

И

ЗВН

светло-синий

12

ЗСН

розовый

13

3DH

палевый

14

ОЕН

желтый

15

3FH

интенсивный белый

Умолчания для регистров управления палитрой адаптера EGA

2.   Установка цвета бордюра.

Параметры: (АХ)=1001Н,

(ВН) - значение для установки. Результатов нет.

3. Установка регистров палитры и цвета бордюра.

Параметры: (АХ)= 1002Н,

(ES:DX) - указательна 17-байтовыйблокданных,

первые 16байтов которого содержат значения, посылаемые

в регистры палитры, а последний байт - цвет бордюра.

Результатов нет.

4. Выбор интенсивности или мерцания.

Параметры: (АХ)= 1003Н,

(BL) = 0 - разрешение интенсивности, (BL) = 1 - разрешение мерцания.

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

Следующие функции применимы только в VGA.

5. Чтение регистра палитры.

Параметры: (АХ)=1007Н,

(BL) - номер регистра палитры (0 - 15). Результат:   (ВН) - прочитанное значение.

6. Чтение регистра бордюра.

Параметры: (АХ) = 1008Н.

Результат:   (ВН) - прочитанное значение.

7. Чтение регистров палитры и бордюра.

Параметры: (АХ) = 1009Н,

(ES:DX) - указатель 17-байтовой области для результатов. Результат:    байты 0 -15 области результатов - значения регистров палитры;

байт 16- значение регистра бордюра.

8. Установка регистра управления цветом.

Параметры:

(ВХ) - номер регистра,

(DH) -значениекраснойкомпоненты,

(СН)-значениезеленойкомпоненты,

(CL) - значение голубой компоненты.

Результатов нет.

9. Установка блока регистров управления цветом.

Параметры: (АХ) = 1012Н,

(е&БХ) - указатель таблицы значений цветовьгх компонент;

(ВХ) - номер первого из регистров управления цветом,

(СХ) - число устанавливаемых регистров. Результатов нет.

Таблица значений содержит три байта для каждого из устанавливаемых регист­ров: значения красной, зеленой и голубой компонент цвета.

10. Выбор режима управления цветом. Параметры:

(ВЬ) = 0, (ВН) - режим:

0 - устанавливается 4 блока по 64 регистра управления цветом;

1 - устанавливается 16 блоков по 16 регистров управления цветом. Результатов нет.

Функция недопустима в режиме дисплея 19.

11. Выбор палитры.

Параметры: (АХ) = 1013Н, (ВЬ)=1,

(ВН) - номер блока регистров управления цветом (0- 3 или 0 - 15 в зависимости от ранее выбранного режима).

Результатов нет.

Замечание. Функция (АН) = 0 устанавливает умолчания для первых 64 регистров управления цветом и 64-регистровые блоки. Значения регистров в трехдругих блоках не определены.

12. Чтение регистра управления цветом.

Параметры:

(ВХ) - номер регистра, Результаты: (БН) - значение красной компоненты, (СН) - значение зеленой компоненты, (СЬ) - значение голубой компоненты.

13. Чтение блока регистров управления цветом.

Параметры:

(Е8:БХ) - указатель таблицы значений цветовых компонент;

ASSEMBLER. Учебтшкурс

(ВХ) - номер первого из регистров управления цветом, (СХ) - число регистров Результаты: таблица значений содержит три байта для каждого изустанавливаемыхрегистров: значения красной,

зеленой и голубой компонент цвета.

14. Чтение режима управления цветом. Параметры: (АХ) =101 АН,

Результаты: (BL) - режим управления цветом (0 или 1),

(ВН) - номер активного блока регистров управления цветом.

Суммирование компонент цвета в оттенки серого.

Параметры:      = 101ВН,

(ВХ) - номер первого из регистров управления цветом (СХ) - число регистров.

Результатов нет.

Функция читает компоненты цвета изуказанныхрегистров, выполняет взвешен­ное суммирование (30% красной компоненты, 59% зеленой и 11% голубой) и записы­вает результат в эти регистры.

Следующие функции применимы в VGA:

(АХ) = 1000Н, (ВХ) = 0712Н - установка регистров управления цветом соответ­ственно восьми основным цветам; результатов нет; (АХ) = 1003Н-см. 11.17.4; (АХ)= 1010Н-см. 11.17.8; (АХ) = 1012Н-см. 11.17.9; (АХ)= 1015Н-см. 11.17.12; (АХ)= 1017Н-см. 11.17.13; (АХ)=101ВН-см. 11.17.15.

18. Установка знако-генератора

Следующие подфункции функции (АН) =11Н позволяют пользователю опреде­лять изображения наборов знаков в текстовых и графических режимах дисплея. Эти функции поддерживаются только адаптером EGA, и допустимые значения парамет­ров определяются объемом буфера адаптера.

Каждые 64Кбайтабуферной памяти позволяют определить один блокизображений знаков. Таким образом, допускается от одной до четырех таблиц изображений, каждая изкоторыххранитизображения256знаков.Поумолчаниювсеблокиинициируются одной итойже стандартной таблицей. В режимах4 - 6 адаптер использует изображения только первых 128 знаков, в других режимах - изображения всех 256 знаков.

1. Загрузка таблицы знакогенератора (текстовые режимы).

Параметры:

(ES:BP) - указатель на таблицу изображений знаков,

(CX) - число знаков,

(DX) - смещение в таблице знаков,

(BL) - номер блока (таблицы знакогенератора), (ВН) - длинаизображения знака (байт).

Результатов нет.

2. Установка стандартной монохромной таблицы.

Параметры:

(BL) - номер блока (таблицы знакогенератора). Результатов нет. Загружается таблица фонтов 8* 14.

3. Установка стандартной цветовой таблицы. Параметры:

(BL) - номер блока (таблицы знакогенератора).

Результатов нет. Загружается таблица фонтов 8*8.

4. Установка указателя блока для текстовых режимов. Параметры: (Аф = 1103Н,

(BL) - выбор блоков:

биты 3 - 2 - номер блокадля использования в случае, когда бит 3 байта атрибутов знака равен 1,

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

Результатов нет.

Вызовы функций 11 ООН -1102Н завершают установку (текстового) режима EGA, позволяя, кроме того, определить таблипу пользователя изображений знаков. В соче­тании с функцией 1 ЮЗНони позволяют использовать набор из 512 знаков.

Если, например, пользователь хочет работать с набором знаков блока 3, он может вызвать функцию 1103Hc(BL) = OFH. Будет установлен набор 3, а бит 3 байта атрибу­тов будет управлять интенсивностью знака (см. 16.11). Вообще если при вызове функ­ции 1103Нбит2 (BL) равен биту 0 и бит 3 равен биту 1, то бит 3 байта атрибутов будет управлять интенсивностью.

Вызов функции 1103Н, например, с (BL) = ОСН, позволяет определить набор из 512 знаков. Если бит 3 байта атрибутов знака равен 0, то изображение знака будет выбираться из блока 0, если бит 3 равен 1 - то из блока 1. Если используется набор из

24 -

512 знаков, то рекомендуется вызвать функцию 1000Н с (ВХ) = 0712Н для установки подходящей цветовой палитры.

5. Подфункции (АХ) = 11 ЮН, 111 Ши 1112Наналогичны соответственно под­функциям (АХ) = 1100Н, 1 ІОІНи 1102Нсо следующими отличиями:

- они могут использоваться только непосредственно после установки режима дисплея (функцией 0);

- при вызове должна быть активна страница 0;

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

Эти подфункции также применимы только в текстовых режимах.

6. Загрузка дополнительной таблицы знаков графики.

Параметры: (АХ) = 1120Н,

(Е&ВР) - указатель таблицы изображений знаков

с кодами 80Н - ОБЕН (в формате 8*8 точек). Результатов нет.

7. Загрузка таблицы знакогенератора (графические режимы).

Параметры:

(ЕБ:ВР) - указатель таблицы изображений знаков, (СХ) - длина изображения знака (байт), (ВЕ) - число строк текстового экрана: О - число строкуказано в (ВЦ,

1- 14 строк,

2- 25 строк,

строки.

Результатов нет.

8. Установка стандартной таблицы знаков размера 8* 14 точек.

Параметры: (АХ)=1122Н,

(ВЕ) - число строк текстового экрана (как в функции 1121Н).

Результатов нет.

9. Установка стандартной таблицы знаков размера 8*8' точек.

Параметры: (АХ) =

(ВЕ) - число строк текстового экрана (как в функции 1121Н).

Результатов нет.

Таблица пользователя для подфункции 1 ШНдолжна определять все 256 знаков с кодами 00 - ОЕЕН, а указатель таблицы для подфункции 1120Ндолжен совпадать свектором прерывания 1FH. Как и подфункции 11 ЮН -1112Н, данные подфункции программируют регистры адаптера и могут быть вызваны только непосредственно после установки режимадисплея.

10. Получить информацию о знакогенераторе.

Параметры: (АХ) =1 ВОН,

(ВН) - код возвращаемого указателя: О-указатель INT1FH,

1 - указательШТ44Н,

2 - указатель стандартной таблицы формата 8*14 (ПЗУ),

3 - указатель стандартной таблицы формата 8*8 (ПЗУ),

4 - указатель вершины стандартной таблицы формата 8*8,

5 - указатель альтернативной таблицы формата 9*14 (ПЗУ). Результат:    (СХ) - длина изображения знака (байт),

(DL) - число строк текстового экрана,

(ES:BP) - указатель на таблицу изображений знаков.

Следующие подфункции применимы в VGA:

подфункции (АХ) = ПООН, 1101Н, 1102Н(см. 11.18.1-11.18.3); подфункции (АХ) = 1120Н,1121Н,1122Н,1123Н(см. 11.18.6-11.18.9);

11. Установка указателя блока для текстовых режимов.

Параметры:

(BL) - выбор блоков:

биты 4,1,0 - номер блока для использования в случае,

когда бит 3 байта атрибутов знака равен О, биты 5,3,2 - номер блока для использования в случае,

когда бит 3 байта атрибутов знака равен 1.

Результатов нет.

Вызовы функций 1100Н- 1102Нзавершают установку (текстового) режима, по­зволяя, крометого, определить таблицу пользователя изображений знаков. В сочета­нии с функцией 11 ОЗНони позволяют использовать набор из 512 знаков.

Если, например, пользователь хочетработать с набором знаков блока 6, он может вызвать функцию 1 ЮЗНс (BL) = ОЗАН. Будет установлен набор 6, а бит 3 байтаатри-бутов будет управлять интенсивностью знака (см. Вообще если при вызове

функции 1103Нбит2 (BL) равен битуО, бит 3 равен биту 1 и бит5 равен биту 4, то бит 3 байта атрибутов будет управлять интенсивностью.

Вызов функции 1103Н, например, с (BL) = 28Н, позволяет определить набор из 512 знаков. Если бит 3 байта атрибутов знака равен 0, то изображение знака будет выбираться из блока 0, если бит 3 равен 1, то - из блока 6. Если используется набор из

24'

512 знаков, то рекомендуется вызвать функцию 1000Н с ^X) - 0712Н для установки

подходящей цветовой палитры.

12. Установка стандартной таблицы фонтов 1б.

Параметры: (АХ)=1104Н,

(BL) - число строк текстового экрана (как в функции 1121Н).

(BL) - номер блока (таблицы знакогенератора). Результатов нет. Загружается таблица фонтов 8*16.

13. Подфункции (АХ) = 11 ЮН - 1112Ни 11 ИНаналогичны соответственно под­функциям (АX) = 1100Н-1102Н и 1104Н со следующими отличиями:

- они могут использоваться только непосредственно после установки режима

дисплея (функцией 0);

- при вызове должна быть активна страница 0;

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

Эти подфункции также применимы только в текстовых режимах.

14. Установка стандартной таблицы фонтов 8* 1б.

Параметры: (АХ)=1124Н,

(BL) - число строк текстового экрана (как в функции 1121Н). Результатов нет. Загружается таблица фонтов 8*1б.

15. Получить информацию о знакогенераторе.

Параметры:

(ВН) код возвращаемого указателя: О-указатель INT1FH,

1 - указательШТ 44H,

2 - указатель стандартной таблицы формата 8* 14 (ПЗУ),

3 - указатель стандартной таблицы формата 8*8 (ПЗУ),

4 - указатель вершины стандартной таблицы формата 8*8,

5 - указатель альтернативной таблицы формата9*14 (ПЗУ),

6 - указатель таблицы 8* 16 ПЗУ,

7 - указатель альтернативной таблицы 9* 16. Результат:    (CX) - длина изображения знака (байт),

(DL) - число строк текстового экрана,

(ES:BP) - указатель на таблицу изображений знаков.

Следующие подфункции в VGA:

(АХ) = 1100Н, 1102Н, 1103Н (см. 11.18.1,11.18.3,11.8.4);

=      (см. 11.18.12);

 (АХ)= 1120Н, 1121Н, 1123Н(см. 11.18.6,11.18.7,11.18.9); (АХ) =1124, 1130Н(см. 11.18.14 и 11.18.15).

Замечания. VGA. Функции 1101Н, ШОН -1114Н, 1122Н,если вызываются, экви­валентны соответственно Если в функции указа­но (ВН) = 14, то 14-байтовые знаки расширяются двумя пустыми последними строка­ми до 16-байтовых.Для функции 1ІЗОН недопустимы значения (ВН) =. 5 или 7.

19. Дополнительные функции поддержки адаптера EGA

Две следующие подфункции применимы только для адаптеров EGA и в VGA.

1. Получить информацию об установке адаптера.

Параметры: (АН) = 12Н, (BL)=10H.

Результат:   (ВН) = 0 - установлен режим цветового адаптера (порты 3DxH), 1 - монохромный режим (порты ЗВхН), (BL) - объем буфера:

G - б4 Кбайта,

1- 128 Кбайт,

2- 192 Кбайта,

3- 256 Кбайт,

(СН) - биты адаптера (имеютспециальное применение),

(CL) - установка переключателей на плате адаптера.

2. Установить альтернативный обработчик печати экрана.

Параметры: (АН) = 12Н,

(BL) = 20Н.

Результатов нет.

Данная функция предназначена для установки обработчика прерывания 5 (печать экрана), корректно работающего при изменении числа текстовых строк дисплея.

Остальные подфункции данного раздела применимы только в VGA.

3. Установить число скан-линий для текстового режима.

Параметры: (АН) = 12Н, (BL) = 30H,

(AL) = 0 - 200 скан-линий, 1 - 350, 2-400.

Результат: (AL) = 12Н как признак того, что функция поддерживается. Эф­фект функции проявится только после установки текстового режима. Функция не под­держивается в модели

741

ASSEMBLER. Учебный курс

4. Разрешение или запрет загрузки регистров палитры при смене режима

Параметры: (АН) = 12Н, (BL) = 31H,

(AL) = 0 - разрешение загрузки регистров палитры, 1 - запрет.

Результат:   (AL) = 12Н, как признак того, что функция поддерживается.

Если загрузка запрещена, то при последующей замене режима EGA останутся 16 регистров палитры, регистр бордюра и 256 регистров цвета.

5. Разрешение или запрет дисплея.

Параметры: (АН)=12Н, (BL) = 32H,

(AL) = 0 - разрешение изображения, 1-запрет.

Результат:   (AL) = 12Н,какпризнактого,чтофункция поддерживается. Разрешается или запрещается доступ активного дисплея к буферурегенерации и к портам ввода-вывода.

6. Разрешение или запрет суммирования интенсивности цвета при смене режима

Параметры: (АН) = 12Н,

(BL) = 33H,

(AL) = 0 - разрешение суммирования, 1-запрет.

Результат:   (AL) = 12Нкак признактого, что функция поддерживается. Если суммирование разрешено, то оно будет выполняться при вызове функций (АН) = 0 (установить режим дисплея) и (АН) = ЮН (установить регистры палитры).

7. Разрешение или запрет курсора.

Параметры:

(BL) = 34H,

(AL) = 0 - разрешение курсора, 1 - запрет.

Результат:   (AL) = 12Нкакпризнактого,чтофункция поддерживается. Есликурсорразрешен,торазмеркурсора,переданныйпривыполнениифункции (АН) = 1, будет масштабироваться при смене режима. Разрешение курсора устанавли­вается при включении питания. Функция не поддерживается в модели 30.

8. Функции переключениядисплея.

Параметры: (АН)=12Н,

(АЕ)-кодподфункции:

0 - запрет доступа к дисплею со стороны адаптера,

1 - разрешение доступа к дисплею со стороны системы,

2 - переключение в активное состояние,

3 - переключение в пассивное состояние. (ЕБ:БХ) - указатель на 128-байтовую область сохранения

(не используется при (АЬ) = 1). Результат:   (АЬ) = 12Н как признак того, что функция поддерживается.

Четыре перечисленные подфункции позволяют избежать конфликтов аппаратной несовместимости и перекрытия области данных ВІОБ при несоответствии между си­стемным управлением дисплеем и адаптером дисплея. Если доступ со стороны систе­мы и со стороны адаптера к портам ввода-вывода, к буферу дисплея и, возможно, к области данных ВЮБ не приводит к каким-либо конфликтам, то и нет необходимости в применении этих функций. Перед их применением должна быть вызвана функция (АН) = 12Н, (ВЪ) = 32Н, чтобы запретить изображение на экране.

При конфликтахдоступа к оборудованию или к памяти со стороны адаптера и со стороны системной платы приоритет имеет адаптер. Функции системы остаются зап­рещенными до тех пор, пока дисплей разрешен для адаптера.

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

1. Инициируется запрещение дисплея для адаптера (АЬ) = 0;

2. Инициируется доступ к дисплею со стороны системной платы.

Эти функции можно корректно вызвать лишь один раз. После их вызова становят­ся доступными функции, переключающие дисплей в активное ((АЬ) = 2) и в пассив­ное ((АЬ) = 3) состояние. При переключении в активное состояние запрещаются вы­полнение текущей функции и вывод изображения. Состояние дисплея сохраняется в указанной области. При переключении в пассивное состояние информация из буфера сохранения используется для восстановления состояния дисплея.

9.  Разрешение или запрет изображения.

Параметры: (АН)=12Н, (ВЬ) = 36Н,

(АЬ) = 1 - запретить вывод изображения, О - разрешить изображение. Результат:   (АЬ) = 12Н как признак того, что функция поддерживается. Функция не поддерживается в модели 30 Бузіеш/З.

11.20. Вывод строки

Параметры: (АН) = 13Н,

(АЬ)-кодподфункции:

0 - вывод с атрибутом (ВЬ) без перемещения курсора,

1 - вывод с атрибутом (ВЬ) с перемещением курсора,

2 - вывод с указанными атрибутами без перемещения курсора,

3 - вывод с указанными атрибутами и перемещением курсора; (ВН) - номер страницы дисплея,

(ВЬ) - атрибутдля вывода знаков (при (АЕ) = 0 или 1), (СХ) - длина строки знаков (байт), (БН) - номер строки для первого знака,

(DL) - номер столбца для первого знака, (ES:BP) - указатель строки знаков. Результатов нет.

Для подфункций 2 и 3 атрибут каждого знака следует за знаком в строке. Подфун­кции 0 и 2 не изменяют позиции курсора, подфункции 1 и 3 устанавливают курсор за последний выведенный знак. Подобно функции 14,данная функция особым образом обрабатывает знаки "возврат каретки" (ODH), "перевод строки" (ОАН), "звонок" (07) и "возврат на шаг" (08); остальные знаки изображаются на экране.

Функция 13Нподдерживается не во всех компьютерах, и ее поддержка зависит не от типа дисплея, а от версии BIOS.

21. Загрузка знакогенератора VGA

1. Загрузка фонтов пользователя.

Параметры: (АХ) = 1400Н,

(ES:DI) - указатель на первый знак в таблице пользователя

изображений знаков, (СХ) - число изображений знаков в таблице (1 -256), (DX) - смещение знака в области для знакогенератора (ОЗУ), (BL) = 0 - загружается основная таблица,

1 -загружа^яальтернативнаятаблица,иначе-пусгая функция; (ВН) - длина изображения знака в байтах.

Результатов нет.

2. Загрузка системных фонтов из ПЗУ

Параметры: (АХ)=1401Н,

(BL) = 0 - загружается основная таблица,

1-загружаетсяальтфнативнаятаблицд,ишче-пустая функция;

Результатов нет.

3. Управление битом интенсивности VGA..

' Параметры: (АХ) = 1402Н,

(BL) = 0 - игнорировать бит интенсивности,

1 - использовать как бит обратной контрастности,

2 - использовать как бит подчеркивания,

3 - использовать как бит выбора альтернативной таблицы изображений, иначе - пустая функция.

22. Получение физических параметров активного дисплея

Параметры:

Результаты:  (АХ)  тип альтернативного адаптера:

О - нет альтернативного адаптера, 5140-VGA,

5153-типа CGA,

типа монохромного адаптера;

(ES:DI) - указывает на таблицу:

слово 1-номер моделидисплея;

2 - число PEL по вертикали (на метр);

3 - число PEL по горизонтали (на метр);

4 - число PEL по вертикали,

5 - число PEL по горизонтали,

6 - расстояние между PEL по горизонтали (мм)

7 - расстояние между PEL по вертикали (мм).

В PC Convertible определены типы дисплеев, перечисленные в табл. У.

Олово

Монохромный дисплей

CGA

VGAKaKCGA

VGA

как монохромный

1

5151Н

5153Н

5140Н

5140Н

2

0

0498Н

08Е1Н

0

3

0

GА15Н

098УН

0

4

0

О0С8Н

00С8Н

0

5

0

0280Н

0280Н

0

б

0

0352Н

01В8Н

0

У

0

0184Н

019АН

0

Типы дисплеев PC Convertible.

23. Получить или установить     типа дисплея

Две следующие функции поддерживаются только в VGA. Получить   типа дисплея

Параметры: (АХ)=1АО0Н.

Результат:    (AL) = 1 АН как признак того, что функция поддерживается, (BL) - код активного дисплея, (ВН) - код альтернативного дисплея.

Cледующие коды дисплеев определены для VGA: - нет дисплея,

1 - монохромный адаптер с5151, ' '"

2-CGAc5153/4,

5153/4,

5-EGA с 5151,

6 - система профессиональной графики с 5175

У - аналог адаптера VGA с аналогичным монохромным дисплеем;

8 - аналог адаптера       с аналогичным цветовым дисплеем;

- аналог адаптера       с аналогичным монохромным дисплеем; 12 - аналог адаптера VGA с аналогичным цветовым дисплеем;

255 - неизвестный адаптер; остальные коды резервируются.

2. Установить   типа дисплея

Параметры: (Аф = 1А01Н.

(BL) - код активного дисплея,

(ВН) - код альтернативного дисплея. Результат:   (AL) = 1 АН как признак того, что функция поддерживается.

24. Получить информацию о состоянии

аледующая функция поддерживается только в VGA.

Параметры: (АН)=1ВН, ^X) = 0,

(ES:DI) - указатель буферадля результатов (40Н байтов); Результат:    (AL) = 1 ВН как признак того, что функция поддерживается.

Буфер (ES:DI) заполняется следующим образом:

GGН (слово) - смещение области статической информации; 02Н (слово) - сегмент области статической информации.

^^Tcnore поля устанавливаются динамически и отражают текущий режим дисплея: 04Н (байт) - режим дисплея (см. функцию (АН) = 0);

05Н (слово) - число столбцов текстового режима;

0УН (слово) - длина буфера регенерации (байтов);

09Н (слово) - начальный адрес буфера регенерации;

ОВН (слова) - позиции курсорадля восьми страниц (строка, столбец); 1 ВН (слово) - тип (размер) курсора; 1 БН(байт) - номер активной страницы;

1ЕН(слово) - базовый адрес портов адаптера (ЗВх - MDA, 3Dx - CGA);

20Н (байт) - текущая установка регистра 3x8;

21Н (байт) - текущая установка регистра 3x9;

22Н (байт) - число текстовых строк на экране;

23Н (слово) - число скан-линий на знак;

25Н (байт) - код активного дисплея;

26Н (байт) - код альтернативного дисплея;

27Н (слово) - палитра, поддерживаемая для текущего режима дисплея; 29Н (слово) - страницы, поддерживаемые для текущего режима дисплея; 2АН (байт) - число скан-линий для активного режима: 2ВН (байт) - блок первичного знака (см. функцию (АХ) = 1103Н); 2СН (байт) - блок вторичного знака (см. функцию (АХ) = 1103Н); 2БН (байт) - разное:

биты 7,6 - резерв;

бит 5 = 0 - интенсивность фона, 1 - мерцание; бит 4 = 1 - активность эмуляции курсора (в модели 30 - всегда 0); битЗ = 1 -запрещенрежимустановкиумолчаниядля палитры; бит2 = 1 -подключен монохромный дисплей; бит 1 = 1 - активно суммирование цветовых интенсивностей; бит 0 = 1 - активны все режимы дисплея (в модели 30 - всегда 0); 2ЕН (байты) - резерв;

ЗШ (байт) - объем доступной памяти в буфере дисплея:

О - 64К, 1 - 128К, 2 - 192К, 3 - 256К, остальное - резерв;

32Н (байт) - сохраненная информация: биты     - резерв;

бит 5 = 1 -активно расширение БСС, бит4= 1-активно переопределение палитры, битЗ = 1 -активно переопределение графических фонтов; бит 2 = 1 - активно переопределение текстовых фонтов; бит 1 = 1 -активнадинамическая область сохранения; бит0= 1 - активен 512-байтовый набор знаков. ЗЗН (13байт)-резерв.

Область статической информации длиной 16 байтов заполнена следующим обра­зом (нулевое значение некоторого бита означает, что соответствующее средство не

поддерживается):

ООН-режимыдисплея:

биты 7 - 0 - режимы 7 - 0; 01Н - режимы дисплея:

биты 7 - 0 - режимы 15 - 8; 02Н - режимы дисплея:

биты 3 - 0 - режимы 19-16,

биты 7 - 4 - резерв; ОЗН - 06Н - резерв;

07Н - число скан-линий в текстовых режимах: бит 0 - 200, бит 1 - 350, бит 2 - 400,

биты 3 - 7 - резерв;

08Н - блоки знака доступны в текстовых режимах

09Н - максимальное число активных блоков знаков в текстовыхрежимах

(см. функцию (АН) = ПН); ОАН - разное:

бит 7 - страницы палитры (см. (АН) = ЮН; для модели 30 - всегда 0), бит 6 - палитра (см. (АН) = ЮН), бит 5 - палитра EGA (см. (АН) = ЮН), бит4 - эмуляция курсора (см. (АН) = 1),

бит 3 - режим загрузки умолчания для палитры (см. (АН) = 12Н), ■   бит 2 - загрузка фонтов (см. (АН) = 11Н),

бит 1 - суммирование цветовых интенсивностей (см. (АН) = ЮН и 12Н), бит 0 - все режимы всех дисплеев (в модели 30 всегда 0); ОВН - разное:

биты 7 - 4 - резерв,

бит 3 - DCC (см. (АН) = 1 АН),

бит2 - управление интенсивностью и мерцанием фона (см. (АН) = ЮН),

бит 1 - сохранение и восстановление (см. (АН) = 1СН, всегда 0),

бит 0 - световое перо (см. (АН) = 4); 0CH-0DH-резерв; ОЕН - функции сохранения:

биты 7, 6 - резерв;

бит 5 = 1 -расширение DCC (в модели 30 всегда 0), бит 4 = 1 - переопределение палитры, бит 3 = 1 - переопределение графических фонтов, бит 2= 1 - переопределение текстовых фонтов, бит 1 = 1 -динамическая область сохранения, битО = 1 - 512-байтовыйнаборзнаков; OFH - резерв.

25. Сохранение и восстановление состояния дисплея. Следующие функции поддерживаются только в VGA.

1. Получить размер буфера для сохранения/восстановления.

Параметры: (АХ)=1С00Н,

(СХ) - код назначения буфера (см. ниже). Результат:   (AL) = 1СН как признак того, что функция поддерживается, (ВХ) - размер буфера (в единицах по 64 байта).

2. Сохранить состояние.

Параметры: (АХ) = 1С01Н,

(СХ) - код назначения (см. ниже),

(ES:BX) - указатель буфера для сохранения. Результат:   (AL) = 1 СН как признак того, что функция поддерживается.

Приложение S, Список функций BIOS

3.   Запрос сохраненного состояния.

Параметры: (АХ)=1С02Н,

(СХ) - код назначения (см. ниже), (ES:BX) - указатель буфера. Результат:   (AL)= 1СНкакпризнактого, что функция поддерживается. Сохраненное состояние восстановлено. Код назначения (единичное значение бита указывает на сохранение/восстановление соответствующих средств):

биты 15 - 3 резервируются и должны быть нулевыми,

бит 2 - динамическая область состояния (DAC) и регистры цвета,

бит 1 - область данных BIOS,

битО - аппаратное состояние.

Замечание: при сохранении состояния оно изменяется; для продолжения работы требуется выполнить его восстановление.

Определение набора подключенного оборудования (прерывание 11Н).

Прерывание 11Н возвращает в регистре АХ информацию об оборудовании компь­ютера. Ту же информацию можно получить, прочитав слово с адресом 0000:0410Н. Биты слова конфигурации оборудования кодируются следующим образом:

биты 15 -14- число подключенных устройств печати (0 - 3); бит 13 (в некоторых моделях) - установлен внутренний модем; бит 12(в некоторых моделях) - установлен адаптер игр; биты 11 - 9 - число адаптеров или портов данных асинхронной связи;

бит 8 - не используется;

биты 7 - 6 (только если бит 0 равен 1) - число дискетных устройств (00 - 1,01 - 2, 10-3,11-4);

биты 5 - 4 - режим экрана, устанавливаемый при инициализации BIOS:

00 - резервируется,

01 - режим 1(40*25, см. 11.1),

10 - режим 3 (80*25),

11 - режим 7 (80*25);

биты 3 - 2 - резервируются (в некоторых моделях указывают объем памяти на си­стемной плате);

бит 2 - установлено устройство типа "мышь"; бит 1 - установлен арифметический сопроцессор;

- имеется хотя бы одно устройство, с которого возможна загрузка

системы.

Единичное значение бита указывает на установленное оборудование. Замечания: для определениячислаустановленныхжесткихдисков можно исполь­зовать вызов функции 8 INT 1ЗН.

Наличие сопроцессора распознается только по установке соответствующего пере­ключателя на системной плате. Лучший способ проверить наличие сопроцессора -попытаться выполнить его инструкцию и проверить результат. Использование преры­вания 11Ндля определенияподключенного оборудования -устаревший подход.

Определение объема памяти (прерывание 12Н).

Прерывание 12н возвращает в регистре АХ объем памяти в килобайтах. Ту же информацию можно получить, прочитав слово с адресом 0000:041 ЗН. Независимо от модели компьютера возвращается только объем системной памяти (до адреса А000:0000); значение не может превосходить 640К. При определении объема систем­ной памяти BIOS проверяет ее непрерывность и пригодность, но начальный объем для проверки во многих компьютерах определяется установкой переключателей кон­фигурации на системной плате.

Для  определения   объема дополнительной  памяти  служат функции 88Н и ОС1Н прерывания 15Н.

Работа с асинхронным адаптером (прерывание 14Н).

Следующие функции INT 14H поддерживают протокол RS-232-C:

(АН) = 0 - инициализация порта асинхронной связи;

1 - передача байта;

2 - прием байта;

3 - получить состояние;

4 - расширенная инициализация;

5 - расширенное управление портом связи.

Сохраняются значения всех регистров, кроме АХ. Базовые адреса портов адапте­ров связи и значения тайм-аутов устанавливаются при инициализации BIOS.

1. Инициализация порта асинхронной связи.

Параметры: (АН) 0;

(DX) - номер канала (0 - 3) в соответствии с базовым адресом портов в таблице BIOS по адресу 40:0;

(AL) - параметры инициализации:

биты 1,0    = 00 - 5-ти битный код, = 01-6-ти битный код,

= 10 - 7-ми битный код,

= 11-8-мибитныйкод; бит 2=       0-1 стоп-бит,

1 - 2стоп-бита для 6-8-ми битного кода, 1,5стоп-битадля 5-ти битного кода; =    нет контроля паритету, = 1 - есть контроль по паритету;

4        =  - контроль по нечетности, = 1 - контроль почетности; биты 7-5 - скорость обмена (бод):

=

= 100- 150

= 010 - 300

= 110-б00 = 001 - 1200 = 101 - 2400

= 011-4800

=

Результаты: (АН) - состояние линии управления, (AL) - состояние модема (см.

2. Передача байта Параметры:

(DX) - номер канала (0 - 3) в соответствии с базовым адресом портов в таблице BIOS по адресу 40:0;

(AL) - байтданныхдля передачи. Результаты: (АН)-состояние линии управления (см. 15.4), (AL) - сохраняется.

Если бит У состояния линии устанавливается в 1, то остальные биты состояния непредсказуемы.       в этом случае не передан.

3. Прием байта

Параметры:     = 2;

(DX) - номер канала (0 - 3) в соответствии с базовым адресом портов в таблице BIOS по адресу 40:0;

(AL) - байтданныхдля передачи. Результаты: (АН) - состояние линии управления (см. 15.4),

(AL) - принятый байт данных. Модуль BIOS ожидает приема байта.

4. Получить состояние канала.

Параметры: (АН) = 3;

(DX) - номер канала (0 - 3) в соответствии с базовым адресом портов в таблице BIOS по адресу 40:0; Результаты: управления: бит 7-тайм-аут

б - конец передачи (КПД)

5 - готов к передаче (ГПД)

4 - обрыв канала (авария)

3- ошибка по стоп-биту

2 - ошибка по паритету 1-переполнение - готов к приему

(AL) - состояние модема:

бит 1 - детектор принимаемого линейного

сигаалаканаладанных(цепь 109), 6 - индикатор вызова (цепь 125),

5 - аппаратура готова (цепь 107), 4 - готов к передаче (цепь 106).

5. Расширенная инициализация

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

Параметры:      = 4;

(DX) - номер канала (0 - 3) в соответствии с базовым

адресом портов в таблице BIOS по адресу 40:0; (AL) = 0 - без обработки Break,

1- е обработкой Break, (ВЫ) - контроль паритета:

0 - нет контроля,

. 1 - контроль по нечетности,

2 - контроль по четности,

3 - stick (?) контроль по нечетности,

4- stick (?) контроль по четности, ■ (BL) = 0-1 стоп-бит,

1 - 2стоп-бита для 6-8-ми битного кода, 1,5 стоп-бита для 5-ти битного кода;

(ОН) = 0 - 5-ти битный код,

1 - б-ти битный код,

2 - У-ми битный код,

3 - 8-ми битный код; (CL) - скорость обмена (бод):

0-110

■1 - 150

2- 300

3- 600

4 - 1200

5 - 2400

6 - 4800

7 - 9600

8 - 19200.

Результаты: (АН) - состояние линии управления, (AL) - состояние модема (см. 4).б. Расширенное управление портом связи

Две следующие функции применяются для управления модемом:

(АХ) = 0500Н - чтение регистра управления модемом, (АХ) = 0501Н - запись в регистр управления модемом. 1. Параметры: (АХ) = 0500Н,'

(DX) - номер канала (0 - 3) в соответствии с базовым

адресом портов в таблице

BIOS по адресу 40:0;

Результат:    (BL) - состояние регистра управления модемом: 0 - терминал данных готов (DTR, цепь 108),

бит 1 - запрос на передачу (цепь 105), 2 - управление выходом

бит 3 - управление выходом

бит4 - цикл (возможность диагностирования),

биты 5 - У - нули.

2. Параметры: (АХ) = 0501Н,

(DX) - номер канала (0 - 3) в соответствии с базовым

адресом портов в таблице BIOS по адресу 40:0; (BL) - байт для записи в регистр управления модемом (биты как в 1). Результаты: (ан) - состояние линии управления, (AL) - состояние модема (см. 15.4),

Работа с гибкими и жесткими дисками (прерывание 13Н).

BIOS предоставляет ряд функций для работы с дискетами и с жесткими дисками. Неверное их использование может разрушить всю информацию на носителе. Какпра-вило, для обслуживания дисков достаточно средств DOS, использование INT 13н мо­жет потребоваться лишь для нестандартных носителей или для обработки дискет, за­щищенных откопирования.

Дисковые функции BIOS перечислены втабл. 8. Только функции 0 - 5 применимы ко всем дискам независимо от установленного контроллера и типа носителя. Как пра­вило, в регистре (DL) указывается номер устройства, при этом номера 0 - 7FH отсыла­ют к дискетным устройствам, номера 80Н - OFFH - к жестким дискам. Корректность номера устройства проверяется при вызове каждой функции.

В некоторых моделях компьютеров перед выполнением любой дискетной функ­ции, требующей включения двигателя, вызывается функция (АХ) = 90FDH прерыва­ния 15н, информирующая систему, чтобы она могла выполнять другие задачи во вре­мя разгона двигателя. Двигатели жестких дисков всегда включены.

В некоторых моделях компьютеров при выполнении INT 1зн BIOS вызывает функцию 90Н прерывания 15н перед тем, как перейти к ожиданию аппаратного пре-рывания от дискового устройства; вызов сообщает операционной системе, что она должна ждать освобождения устройства. После обработки аппаратного прерывания от диска вызывается функция 91Н прерывания 15Н, чтобы сообщить о завершении дисковой операции. Вызовы функций 90Н и 91Н передают системе тип диска (дис­кета, жесткий диск).

номер

функция

0

сброс дисков

1

получить состояние

2

чтение секторов

3

запись секторов

4

проверка секторов

5

разметка дорожки

б

разметка дефектной дорожки

У

разметка диска

8

получить параметры устройства

9

установить параметры устройства

10

резервируется для диагностики

11

резервируется для диагностики

12

установка

13

альтернативный сброс диска

14

резервируется для диагностики

15

резервируется для диагностики

проверка готовности устройства

выводдиска надорожкуО

18

резервируется для диагностики

19

резервируется для диагностики

20

резервируется для диагностики

21

получить тип диска

22

состояние линии замены дискеты

23

установить тип диска для разметки

24

установить тип носителя для разметки

Функции BIOS для поддержки дисков

1. Сброс дисков

Параметры: (АН) = 0,

(AL) - номер устройства. Результат:    (CF) = 0 - нормальное завершение,

= 1 - ошибка, и в АН ее код (см. табл. 7).

Если (DL) < 80Н, то сбрасываются только дискетные устройства, иначе - все дис­ки. В последнем случае в (АН) при ошибке возвращается состояние жесткого диска; чтобы получить состояние дискеты, нужно прочитать байт с абсолютным адресом 0000:044Ш.

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

Замечание: жесткие диски будут сбрасываться вызовом данной функции лишь в том случае, если младшие 7 битов (DL) указывают номер жесткого диска, фактически установленного в компьютере.

2. Получить состояние Параметры: (АН)=1,

(DL) - номер устройства. Результат:   (АН) - состояние завершения последней дисковой операции,

(CF) = 0 - состояние 0 (см. табл. 9) = 1 - иначе.

На результат оказывает влияние только старший определяющий тип но корректность номера устройства проверяется.

Коды завершения дисковых функций BIOS перечислены в табл. 9.

код

состояние

тип диска

 

00

ошибки не распознаны

любой

 

01

неверный код функции

любой

 

02

не найден маркер адреса

любой

 

03

попытка нарушения защиты записи

любой

 

04

сектор ненайден

любой

 

05

ошибка сброса

жесткий

 

06

активность линии замены дискеты

дискета

07

ошибка установки параметров диска

жесткий

08

НДП не справляется с обменом

любой

09

попытка выйти за физический сегмент при обмене через КНДП

любой

ОА

распознан флаг дефектного сектора

жесткий

распознан неверный номер цилиндра

жесткий

ОС

тип дискеты не распознан

дискета

OD

неверное число секторов при разметке

жесткий

ОЕ

распознан маркер управляющих данных

жесткий

OF

ошибка уровня управления КНДП

жесткий

10

ошибка контрольной суммы данных

любой

11

исправленная ошибка контрольной суммы данных

жесткий

20

общая неисправность контроллера

любой

40

ошибка поиска

любой

80

устройство не готово

любой

ВВ

неопределенная ошибка

жесткий

ОС

ошибка записи

жесткий

ЕО

ошибка состояния контроллера

жесткий

FF

ошибка получения состояния

жесткий

Коды завершения дисковых функций

Замечание: состояние последней дискетной операции хранится в байте памяти с адресом 0000:0441 Н, состояние последней операции с жестким диском - в байте 0000:0474Н.

3.   Чтение секторов

Параметры (АН) = 2,

(АЬ) - число секторов для чтения, (БЬ) - номер устройства, (Е)Н) - номер головки, (СН) - номер дорожки, (СЬ)-номер сектора, (ЕБ.ВХ)- адрес буфера.

Результат:   (СР) = 0 - нормальное выполнение, = 1 - ошибка, (АН) - код завершения,

(АЬ) - число фактически прочитанных секторов.

Операция считывает данные указанного числа секторов в память. Значения пара­метров, за исключением номера устройства, не проверяются. Для дискетных устройств все запрашиваемые секторы должны располагаться на одной физической дорожке дис­кеты, для жесткого диска такого ограничения нет.

При обращении к жесткому диску (СН) содержит 8 младших бит номера дорожки, два старших бита размещаются в битах 7 и 6 (СЬ).

Замечание: указание (АЬ) = 0 приведет к чтению некоторого числа секторов, опре­деляемого контроллером.

4. Запись секторов

Параметры: (АН) = 3,

(АЬ) - число секторов для записи,

(бЬ) - номер устройства,

(БН) - номер головки,

(СН) - номер дорожки,

(СЬ) - номер сектора,

(Е8:ВХ)-адрес буфера. Результат:   (СР) = 0 - нормальное выполнение, = 1 - ошибка,

(АН)-код завершения,

(АЬ) - число фактически записанных секторов.

Операция записывает на носитель данные указанного числа секторов. Значения параметров, за исключением номера устройства, не проверяются. Для дискетных уст­ройств все запрашиваемые секторы должны располагаться на одной физической до­рожке дискеты, для жесткого диска такого ограничения нет.

При обращении к жесткому диску (СН) содержит 8 младших бит номера дорожки, два старших бита размещаются в битах 7 и 6 (СЬ).

Замечание: указание (АЬ) = 0 приведет к записи некоторого числа секторов, опре­деляемого контроллером.

5. Проверка секторов

Параметры:      = 4,

(АЬ) - число секторов для проверки,

(БЬ) - номер устройства,

(БН)-номер головки,

(СН) - номер дорожки,

(CL) - номер сектора, (ES:BX)- адрес буфера Результат:   (CF) =   - нормальное выполнение,

= 1 - ошибка, (АН) - код завершения,

(AL) - число фактически обработанных секторов.

Операцгапроверяетданныеуказашго

ньіенепоступаютвпамятькомпьютера.Значенияпарам^

сгва, не проверяются. Длядискетнькустройств все запрашиваемые секторы должны распола-

нет.

При обращении к жесткому диску (СН) содержит 8 младших бит номера дорожки, два старших бита размещаются в битах 7 и б (CL).

Замечания:

1. Указание (AL) = 0 приведет к проверке некоторого числа секторов, определяе­мого контроллером.

2. ES:BX не требуется для многих контроллеров (AT, PC Convertible, System/2).

б. Разметка дорожки Параметры:      = 5,

(AL) - число секторов на дорожке дискеты или

коэффициент чередования для жесткого диска,

(СН) - номер цилиндра (для жесткого диска - 8 младших бит), (CL) - для жесткого диска в битах 6 - 7 старшие биты

номера цилиндра, (DL) - номер устройства, (DH) - номер головки, (ES:BX) - указатель буфера, содержащего информацию

для разметки (зависит от контроллера, см. ниже). Результат:    (CF) =   - нормальное выполнение, (CF) = 1 - ошибка, и в АН ее код.

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

Для дискеты ES:BX указывает на блок данных, содержащий четырехбайтовую за­пись для каждого сектора, создаваемого на дорожке: байтО - номер цилиндра, байт 1 - номер головки, байт 2 - номер сектора, байт 3 - код размера сектора:

0- 128 байт,

1- 256 байт,

2- 512 байт,

3- 1024 байта.

Для устройств, поддерживающих более одного формата дискеты, перед разметкой необходимо вызвать функцию Шили 18Нпрерывания 1ЗН,иначе при разметке бу­дут использоваться максимальные параметры носителя, поддерживаемые устройством. Некоторые компьютеры не поддерживают этих функций; в этом случае перед размет­кой необходимо прямо изменить таблицу параметров BIOS дискеты. Эта таблица ад­ресуется вектором прерывания ШН. После разметки необходимо восстановить значе­ния параметров таблицы.

Некоторые контроллеры (в частности, большинство контроллеров жестких дис­ков) не позволяют произвольно нумеровать и располагать на дорожке секторы диска. Для таких контроллеров в (AL) указывается коэффициент чередования, определяю­щий физический порядок секторов на дорожке диска. Поле данных, адресуемое ES:BX, в таких случаях либо не используется, либо для жестких дисков содержит другую ин­формацию (см. ниже).

Хотяконтроллерынумеруютсекторыдискеты,начинаясО,вВЮ8используетсянуме-рация с 1, такчто стандартное поле для разметки девятисекторной дискеты DOS имеет вид:

01120122...0192

Для жестких дисков ES:BX указывает на 512-байтовое поле данных, первые бай­ты которого содержат информацию о разметке, а остальные игнорируются. Для каж­дого сектора диска (в том порядке, в каком они будут физически расположены на до­рожке) указывается:

байт 0 =    - разметить как обычный сектор,

80Н - разметить с флагом дефектного сектора;

байт 1 - номер сектора.

Некоторые контроллеры не пользуются этой информацией, используя только ко­эффициент чередования в (AL) (см. также функцию 7).

Замечание: в некоторых моделях компьютеров функции разметки жестокого диска не поддерживаются BIOS; в этом случае вызов данной функции вернет код заверше­ния 01 (неверная функция).

7.   Разметка дефектной дорожки

Параметры:      = б,

(AL) - коэффициент чередования для жесткого диска,

(СН) - номер цилиндра (8 младших бит),

(CL) - в битах      старшие биты номера цилиндра,

(DL) - номер устройства,

- номер головки, Результат:   (CF) = 0 - нормальное выполнение, (CF) = 1 - ошибка, и в АН ее код.

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

Замечание: функция не поддерживается некоторыми контроллерами и BIOS неко­торых компьютеров (см. функцию 5). Функция неприменима кдискетам.

8. Разметка диска, начиная с указанной дорожки.

Параметры: (АН) = 7,

(AL) - коэффициент чередования для жесткого диска, (СН) - начальный номер цилиндра (8 младших бит), (CL) - в битах 6 - 7 старшие биты номера цилиндра, (DL) - номер устройства, (DH) - начальный номер головки,

Результат:   (CF) = 0 - нормальное выполнение, (CF) = 1 - ошибка, и в АН ее код.

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

Замечание: функция не поддерживается многими контроллерами и BIOS некото­рых компьютеров (см. функцию 5), в частности, в IBM AT и в System/2 вырабатывает-сякодошибки01. Функциянеприменимакдискетам.

9. Получить параметры устройства

Параметры: (АН) =

(DL) - номер устройства. Результат: (CF) = 0 - нормальное выполнение,

(E&DI) - указатель на 11 -байтовый блок параметров дискеты

(см. табл. 8), не используется для жестких дисков, (СН) - максимальный номер цилиндра (младшие 8 бит), (CL) - максимальное число секторов на дорожке в битах 5-0, старшие биты максимального номера цилиндра в битах (DH) - максимальный номер головки,

(DL) - число жесткихдисков, поддерживаемьгх контроллером, или

общее число дискетных устройств. (ВН) = 0 (только для дискет), (BL) - типдискетного устройства в битах 3 - 0:

001 - 360 Кбайт, 40 дорожек на стороне мини-дискеты, 010- 1.2Мбайта, 80дорожекна стороне мини-дискеты, 011 - 720 Кбайт, 80 дорожек на стороне микродиска, 100- 1.44 Мбайта, 80 дорожек на стороне микродиска.

Для дискетных устройств функция поддерживается только некоторыми компью­терами. При этом тип устройства в (BL) возвращается только в том случае, если он известен компьютеру (например, при использовании CMOS или специальных пере­ключателей конфигурации); в прочих случаях возвращается (BL) = 0.

Вызов функции 8 возвращает максимальные параметры дискетных устройств не­зависимо от установленного носителя. Для жестких дисков возвращаются параметры установленных дисков (они должны быть одинаковыми для всех дисков, подключен­ных к контроллеру). Структура таблицы параметров дискеты приведена в п. 24, струк­тура параметров жесткого диска - в п. 27.

10. Установка параметров жесткого диска

Параметры: (АН) = 9,

(DL) - номер устройства. Результат:    (CF) = 0 - нормальное выполнение,

(CF) = 1 - ошибка, и в АН ее код.

Функция поддерживается всеми компьютерами, но ее выполнение зависит от мо­дели, и прежде всего от установленного контроллера жесткого диска. Для ства моделей параметры выбираются из таблицы параметров жестких дисков в ПЗУ соответственно установке переключателей на плате адаптера. Таблица параметров адресуется вектором 41Н и после загрузки системы может быть переопределена. Па­раметры жесткого диска перечислены в табл. 11. моделях (IBM AT, System/2), допус­кающих присоединение к одному контроллеру двух дисков с разными параметрами, параметры устройства 0 определяются вектором 41Н, параметры устройства 1 - век­тором 46Н. Наконец, для некоторых контроллеров эта функция не вызывает никаких действий: контроллер получает параметры непосредственно от

11. Установка жесткого диска

Параметры:

(DL) - номер устройства,

(DH) - номер головки, (СН) - младшие биты номера цилиндра, (CL) - старшие биты номера цилиндра в битах Результат:   (CF) = 0 - нормальное выполнение, (CF) = 1 - ошибка, и в АН ее код.

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

12. Альтернативный сброс диска

Параметры: (AH) ODH,

(DL)-номер устройства. Результат:   (CF) =  - нормальное выполнение,

(CF) = 1 - ошибка, и в АН ее код.

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

13. Проверка готовности устройства

Параметры: (АН)=10Н,

(БЬ) - номер устройства. Результат:   (СТ) = 0 - нормальное выполнение,

(СТ) = 1 - ошибка, и в АН ее код.

Функция применима только к жестким дискам.

Для некоторых контроллеров выполнение этой функции вызывает установкудис-ка на 0.

14. Установка диска на дорожку О

Параметры:

(БЬ) - номер устройства. Результат:   (СТ) = 0 - нормальное выполнение, (СТ) = 1 - ошибка, и в АН ее код.

Функция применима только к жестким дискам.

15. Пол учить тип диска

Параметры:

(БЬ) - номер устройства. Результат:   (СТ) = 0 - нормальное выполнение, диска: - диск не установлен,

1 - дискета, линия замены не поддерживается,

2 - дискета, линия замены поддерживается,

3 - жесткий диск;

(СХ:БХ) - общее число секторов на диске, (СТ) = 1 - ошибка, и в АН ее код.

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

16. Получить состояние линии замены дискеты Параметры: (АН)=16Н,

(БЬ) - номер устройства. Результат:   (СТ) - флаг завершения,

 (АН) - код возврата:

ООН - линия заменыдискеты неактивна, 01Н - неверный номер устройства, 06Н - линия замены дискеты активна, 80Н - устройство не готово.

Функция примениматолько кдискетам и не поддерживается многими компьюте­рами. Флаг (СБ) устанавливается обычным образом, но (СБ) = 1 не свидетельствует об ошибке при (АН) = 6.

17. Установить тип устройства для разметки Параметры: (АН)=17Н,

(БЬ) - номер устройства,

(АБ) - тип дискеты и устройства:

1 - дискета 320/360 Кбайт на обычном устройстве,

2 - дискета 360 Кбайт на устройстве большой емкости,

3 - дискета 1.2 Мбайта на устройстве большой емкости,

4 - дискета 720 Кбайтна соответствующем устройстве. Результат:   (СТ) = 0 - нормальное выполнение,

(СТ) = 1 - ошибка, и в АН ее код.

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

18. Установить тип носителя для разметки

Параметры:

(БЬ) - номер устройства,

(СН) - число дорожек (возможно, младшие 8 бит), (СЬ) - число секторов на дорожке и, возможно, два старших бита числа дорожек. Результат:   (СТ) =   - нормальное выполнение,

(Е8:Б1) - указатель на таблицу параметров дискетного устройства, (СТ) = 1 - ошибка, и в АН ее код.

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

только один блок параметров устройства (см. табл.).

Для устройств с линией замены дискеты эта функция прежде всего пытается сбро­сить активность линии (если она активна), что соответствует установке новой диске-ты. Если это не удается, возвращается ошибка. Таким образом, при отсутствии диске­ты в устройстве возвращается ошибка.

19. Парковать головки

Данная функция поддерживается только в System/2.

Параметры: (АН)=19Н,

(DL) - номер устройства; Результат:   (CF) = 0 - нормальное выполнение,

(CF) = 1 - ошибка, и в АН ее код.

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

20. Разметка устройства

Функция применима только в системе с контроллером IBM ESDI жесткого диска.

Параметры:

(AL) = 0 - с данным запросом не связано никакой таблицы адресов дефектных блоков; иначе - счетчик таблицы дефектных блоков. (ES:BX) - адрес таблицы дефектных блоков; (СЬ)-модификаторы:

биты 7 - 5 должны быть нулями;

бит4 - периодические прерывания. Контроллер прерывает систему после завершения каждой   трех фаз разметки каждого цилиндра, чтобы позволить системе управлять процессом разметки. Фазы разметки: 0 - резерв, 1 - анализ поверхностей, 2 - форматирование. Код фазы доступен BIOS через прерывание 15Нс (АН) = OFH. При возврате очищенный флаг CF приводит к продолжению разметки, установленный - прекращаетразметку.

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

бит 2 - обновление карты вторичных дефектов. Если этот бит установлен в 1,то составляется новая карта вторичныхдефектов.

бит 1-игнорирование карты вторичных дефектов;

битО - игнорирование карты первичныхдефектов. (DL) - номер устройства.

Расширенный сервис AT (прерывание 15).

В первых версиях BIOS прерывание использовалось для поддержки кассет­ных накопителей на магнитной ленте. Эти устройства не получили широкого распро­странения в ПП ЭВМ и во многих моделях соответствующие средства (функции 0 - 3) не поддерживаются. В более поздних версиях BIOS через INT 15Н вызываются разно­образные средства поддержки операционных систем. Список функций INT 15Н при­веден в следующей таблице:

код

Функция

00

включение двигателя кассетного устройства

01

выключение двигателя кассетного устройства

02

чтение блоков с кассеты

03

запись блоков на кассету

OF

периодические прерывания разметки диска

21

Установить область для фиксации ошибок теста при включении питания

40

чтение и модификация системных параметров

41

ожидание внешнего события

42

запрос сброса системы

43

чтение состояния системы

44

включение или выключение внутреннего модема

4F

перехват клавиатурных кодов

80

открыть устройство

81

закрыть устройство

82

прекратить программу устройства

83

ожидание события

84

поддержка координатных ручек

85

поддержка клавиши 8у8Кес[

86

задержка

87

перемещение блока памяти

8

определение объема дополнительной памяти

89

переключение процессора в привилегированный режим

90

сообщение о занятости устройства

91

сообщение о готовности устройства


 

 

 

СО

получить параметры модели компьютера

С1

получить сегмент расширения области данных BIOS

С2

интерфейс с устройствами типа «мышь»

сз

разрешение или запрещение «сторожевого пса»

С4

выбор программируемых режимов

1.   Включение двигателя кассетного устройства

Параметры: (АН) = 0. Результат:  (СТ) = 0 и (АН) = 0.

В большинстве моделей компьютеров возвращается (СЯ) = 1 как признак того, что кассетная лента не поддерживается. В некоторых моделях при неисправности или от­сутствии накопителя возвращается (АН) = 86Н.

2. Выключение двигателя кассетного устройства

Параметры: (АН)=1. Результат:    (СР) = 0 и (АН) = 0.

В большинстве моделей компьютероввозвращается (СЯ) = 1 как признак того, что кассетная лента не поддерживается. В некоторых моделях при неисправности или от­сутствии накопителя возвращается (АН) = 86Н.

3. Чтение блоков с кассеты

Параметры: (АН) = 2,

(Б8:ВХ) - указатель буфера, (СХ) - счетчик байтов. Результат:    (СТ) =   - нормальное выполнение,

(Е8:ВХ) - указатель на первый свободный байт буфера, (БХ) - число фактически прочитанных байтов или (СТ) = 1 - флаг ошибки,

(АН) - код ошибки: 01 - ошибка контрольной суммы данных, 02 - потеря данных при чтении, 04 - данные не найдены. Код ошибки в АН возвращается только в РС-іг. В большинстве моделей компьютеров возвращается (СЯ) = 1 как признак того, что кассетная лента не поддерживается. В некоторых моделях при неисправности или от­сутствии накопителя возвращается (АН) = 86Н.

4. Запись блоков на кассету

Параметры: (АН) = 3,

(ES:BX) - указатель буфера,

(СХ)-счетчик байтов. Результат:   (CF) = 0 - нормальное выполнение,

(ES:BX) - указатель байт буфера, следующий за последним записанным байтом,

(DX) - число фактически записанных байтов

или (CF) = 1 - флаг ошибки,

(АН) - код ошибки: 01 - ошибка контрольной суммы данных, 02 - потеря данных при записи, 04 - данные не найдены.

Код ошибки в АН возвращается только в PC-j'r. В большинстве моделей компьютеров возвращается (CF) = 1 как признак того, что кассетная лента не поддерживается. В некоторых моделях, при неисправности или отсутствии накопителя возвращается (АН) = 86Н.

5. Периодические прерывания разметки диска.

Следующая функция используется только при работе с адаптером IBM ESDI жесткого диска. Прерывание 15Н с (АН) = OFH может вызываться при выполне­нии разметки каждого цилиндра диска (см. 14.20) трижды: (AL) = 0 - перед раз­меткой цилиндра, (AL) = 1 - после анализа поверхностей, (AL) = 2 - после фор­матирования.

BIOS устанавливает (CF) = 1, что приводит к прекращению разметки. Чтобы раз­решить разметку жесткого диска контроллеру ESDI, нужно по крайней мере заменить обработчик данной функции на модуль, возвращающий (CF) = 0.

Параметры: (AH) = OFH,

(AL)-код фазы (0-2), Результат:   (CF) = 0 - разметка будетпродолжена,

1 - разметка будет прекращена.

6. Установка области для ошибок теста при включении питания

Две следующие функции применимы только в System/2, исключая модель 30, они

дают возможность получать информацию о неработоспособных устройствах, уста­новленную при выполнении теста включения питания (POST).

В большинстве моделей компьютеров возвращается (CF) = 1 как признак того, что

функции не поддерживаются.

1. Получить область ошибок POST. Параметры: (АХ) = 2100Н.

Результат:    (ES:DI) - указатель на область ошибок, (ВХ) - размер области (слов), (AH) = 0h(CF) = 0.

2. Записать код ошибки в область ошибок POST.

Параметры: (АХ) =

(ВН) - код устройства, (BL)-код ошибки. Результат:   (CF) = 0 и (АН) = 0 - нормальное выполнение,

(CF) = 1 и (АН) = 1 - переполнение таблицы ошибок.

7.  Чтение и модификация системных параметров

Четыре подфункции данной функции поддерживаются только в PC Convertible. В других компьютерах возвращается (CF) = 1 и (АН) = 80Н или 86Н как признак того, что функция не поддерживается.

Параметры: (АН) = 40Н,

(AL) - код подфункции:

- чтение системных параметров,

1 - модификация системных параметров,

2 - чтение параметров внутреннего модема,

3 - модификация параметров внутреннего модема, (ВХ) - параметрыдля подфункций 1 и 3,

(СХ) -параметрыдля подфункции 1. Результат:   (CF) =   - нормальное выполнение, (AL) = 0 - нормальное выполнение,

- прочитанные параметры, (СХ) - прочитанные параметры для подфункции 0 или (CF) = 1 и (AL) = 80Н - флаг ошибки.

Системные параметры управляют перезапуском системы после выключения питания

или сброса. Системные параметры имеют следующий формат (звездочкой отмечены зна­чения, устанавливаемые после случайного выключения питания): (ВХ) бит 15= 0 -режим "холодного" запуска, = 1 (*) - режим "горячего" запуска, бит 14 = 0 - запрет вывода сооб­щения о запуске, = 1 (*)-разрешение вывода сообщения, биты 13-12-начальный режим дисплея: 00 - резервируется, 01 - монохромный 40*25 с использованием CGA(VGAiuih совместимого адаптера), 10(*)- монохромный 80*25 с использованием CGA(VGArjih совместимого адаптера), 11 - монохромный 80*25 с использованием монохромного адап­тера, биты 11-10- использование атрибутов VGA: 00(*) - игнорировать атрибут интен­сивности, 01 - использовать как подчеркивание, 10 - использовать для обратной контраст­ности, 11 - использовать для альтернативного набора знаков, бит9 = 0 (*) - внутренний модемнедоступенприавтономномпитании, 1-внутренний модем доступен при автоном­ном питании,бит8 = О (*) - внешние линии связи недоступны при автономном питании, 1 - внешние линии связи доступны при автономном питании, биты 7 - 0 - резервируются. (СХ) биты 15 - 8 - время (в минутах), в течение которого экран должен быть пустым при отсутствии активности клавиатуры, биты7 - 0 - время (в минутах) до выключения компь­ютера при отсутствии активности клавиатуры.

Параметры внутреннего модема имеют следующий формат:

(ВХ)  биты 15 -14 - резервируются,

бит 13 = 0 (*) - ручной ответ,

1 - автоматический ответ, биты 12-10 - контроль паритета и размер кадра:

000 - семибитовые данные с единичным битом,

001 - семибитовые данные с нулевым битом,

010 - семибитовые данные, четность,

011 (*) - семибитовые данные, нечетность, 100- восьмибитовые данные,

иначе - резервируется, биты 9 - 8 - скорость передачи: 00-110бод, 01 -300 бод,

10 С*) - 1200 бод,

11 - 2400 бод, биты 7 - 0 - резерв.

8.   Ожидание внешнего события

Все подфункции данной функции поддерживаются только в PC Convertible.

В других компьютерах возвращается (СБ) = 1 и (АН) = 80Н или 86Н какпризнак того, что функция не поддерживается.

Внешнее событие может быть прерыванием или активностью канала НДП. До наступления ожидаемого события (состояния) выключается тактовый генератор.

Параметры: (АН) = 41Н,

(AL) - код типа события:

00 - возврат при наступлении события,

01 - возврат при совпадении значений,

02 - возврат при несовпадении значений,

03 - возвратпри ненулевом результате проверки битовой маски,

04 - возврат при нулевом результате проверки битовой маски, ЮН - 14Н- аналогично 00 - 04, но событие связывается

не с байтом памяти, а с портом ввода-вывода,

25-4072

(ВН) - значение для сравнения или маска для проверки, (BL) - тайм-аут в единицах системного таймера (55 мсек), (ES:DI) - указатель на проверяемый байт памяти (бит4 AL равен 0), (DX) - адрес порта ввода-вывода       4 AL равен

Результат: (CF) = 1 - тайм-аут.

Для кодов 01,02, ПН и 12Нбайт, вызывающий событие, сравнивается с образцом инструкцией СМР, для кодов 03,04,1 ЗНи 14Н- проверяется по маске инструкцией TEST.

9.   Запрос сброса системы

Данная функция поддерживаются только в PC Convertible. В других компьютерах возвращается (СЕ) = 1 и (АН) = 80Нили 86Н как признактого, что функция не поддер­живается.

Параметры: (АН) = 42Н,

(AL) - код возобновления:

00 - при перезапуске используются системные параметры (см. функцию 40Н),

выполнения.

Результат:   (CF) = 1 - функция не поддерживается или недоступна,

(АН) - модифицируется.

Управление немедленно возвращается лишь в том случае, если функция не под­держивается или недоступна; (CF)= 1 свидетельствует об этом. Иначе выключается питание с предварительной установкой режима, который будет использоваться при следующем включении компьютера. Если (AL) = а параметры системны (см. функ­цию 40Н) указывают на "горячий" запуск, то после включения питания будет продол­жено выполнение программы, вызвавшей эту функцию.

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

Чтение состояния системы

Данная функция поддерживаются только в PC Convertible.

В других компьютерах возвращается (CF) = 1 и (АН) = 80Н или 86Н как признак того, что функция не поддерживается.

Параметры: (АН) = 43Н.

Результат:   (CF) = 0 - нормальное выполнение, (АН) - модифицируется, (AL) - байт состояния системы или (CF) = 1 - функция не поддерживается,

Функция возвращает байт состояния системы: бит   7=1- автономный источник питания, 6 = 1 -внешнийисточникпитания,

5 = 1 - автономное питание потеряно(этом случае часы реального

времени неработоспособны), 4=1- включение питания вызвано сигналом от часов реального времени, 3 = 1 - внутренний модем включен,

внешние линии связи включены, 1 - резервируется,

адаптер дисплея (VGA) не подключен. (См. функцию 8 прерывания 1 АН относительно сигнала от часов реального вре­мени, включающего питание).

11. Включение или выключение питания внутреннего модема

Данная функция поддерживаются только в PC Convertible. В других компьютерах возвращается (CF) = 1 и (АН) = 80Н или 86Нкак признак того, что функция не поддер­живается.

Параметры: (АН) =

(AL) = 0 - выключить внутренний модем, 1 - включить внутренний модем. Результат:   (CF) = 1 - функция не поддерживается или запрос не выполнен, (AL) = 80H - запрос не выполнен, (CF) = 0 и (AL) = 0 - успешное выполнение.

При включении внутреннего модема автоматически устанавливается соответству­ющее состояние системы (см. функцию 40Н).

Перехват клавиатурных кодов

Параметры: (AH) = 4FH,

(AL) - скан-код клавиши.

Результат: (CF) = 1 - скан-код заменен,

(AL) - новый скан-код

или (CF) = 0 - скан-код не изменился (AL сохраняется).

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

Замечания: это средство не поддерживается ранними версиями BIOS. В зависимости от версии BIOS (цаты создания) возвращается (CF) = 1 и (АН) = 80Нили (CF) = 1 и (АН) = 86Н. Функция ОСОН INT 15Н позволяет определить, поддерживается ли данное средство.

BIOS, поддерживающие эту функцию, оставляют скан-коды неизменными.

25*

13. Открыть устройство

Параметры: (АН) = 80Н,

(ВХ) - идентификатор устройства,

(СХ) - идентификатор процесса. Результат:    (CF) = 0 - нормальное выполнение,

1 - функция не поддерживается.

Функция предусмотрена для поддержки многозадачных операционных систем, позволяя открывать физические устройства для процессов. Обычно обработчик этого прерывания устанавливается операционной системой, которая ведет список активных процессов. Функция поддерживается (инициируется) не всеми версиями BIOS. Она не поддерживается в PC, PC-jr и в ранних версиях BIOS XT.

14. Закрыть устройство

Параметры: (АН) = 81Н,

(ВХ) - идентификатор устройства, (СХ) - идентификатор процесса.

Результат:    (CF) = 0 - нормальное выполнение,

1 - функция не поддерживается.

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

15. Прекратить программу устройства

Параметры: (АН) = 81Н,

(ВХ) - идентификатор устройства.

Результат:    (CF) = 0 - нормальное выполнение,

1 - функция не поддерживается.

Функция предусмотрена для поддержки многозадачных операционных систем,

позволяя отключить физическое устройство от всех процессов. Обычно обработчик

этого прерывания устанавливается операционной системой, которая ведет список ак­тивных процессов. Функция поддерживается (инициируется) не всеми версиями BIOS. Она не поддерживается в PC, PC-jr и в ранних версиях BIOS XT.

16. Ожидание события

Параметры: (АН) = 83Н,

(AL) - код подфункции:

0 - установить промежуток времени,

1 - отменить установленный промежуток, (ES:BX) - указатель на байт, используемый для установки

события, состоящего в истечении указанного промежутка времени, (CX:DX) - величина промежутка в мксек. Результат:    (CF) = 0 - нормальное выполнение,

1 - функция не поддерживается.

Функция поддерживается только в компьютерах, снабженных часами реального времени. В некоторых моделях (AT с BIOS от 1/10/84) поддерживается только подфун­кция 0.

После вызова функции управление немедленно возвращается программе пользо­вателя, и, для того чтобы узнать об истечении установленного промежутка времени, она должна периодически просматривать байт ES:BX. Истечение промежутка вре­мени отмечается установкой в 1 старшего бита указанного байта; программа пользо­вателя должна сбросить этот бит перед вызовом подфункции 0. Часы реального вре­мени обеспечивают кванты времени по 976 мксек. Старшая часть промежутка вре­мени задается в (СХ). Например, (СХ) = 98Н и (DX) = 9680Н - определяют промежу­ток в 10 сек.

17. Поддержка координатных ручек

Параметры: (АН) 84Н,

(DX)-код подфункции:

0 - чтение текущей установки переключателей,

1 - чтение resistive inputs

Результат: (CF) = 1 - функция не поддерживается,

О-нормальноевыполнение, для подфункции 0 биты      (AL) - установленные переключатели; для подфункции 1 (АХ) - значение А(х),

(ВХ) - значение А(у),

(СХ) - значение В(х),

(DX) - значение

Функция предназначена для поддержки координатных ручек (Joystick) и реализо­вана в BIOS не всех компьютеров. Она не поддерживается в PC, PC-jr и в ранних вер­сиях BIOS XT.

18. Поддержка клавиши SysReq

Параметры:   (АН) = 85Н,

(AL)- код подфункции:

0 - запрос системы при нажатии клавиши,

1 - запрос системы при отпускании клавиши. Результат:    (CF) = 0 - нормальное выполнение,

1 - функция не поддерживается.

Функция, определенная в BIOS, не вызывает никаких действий, кроме очистки фла­га CF. Она позволяет операционной системе или пользователю определить обработчик клавиши SysReq. Этот обработчик будет вызываться из обработчика клавиатурного пре­рывания (INT9) либо при нажатии клавиши SysReq, либо при ее отпускании. _

Функция не поддерживается в PC,        и в ранних версиях BIOS XT.

19. Задержка

Параметры: (АН) = 86Н,

(CX:DX) - время в мксек. Результат:    (CF)   0 - нормальное выполнение,

1 - функция не поддерживается.

Функция поддерживается только в компьютерах, снабженных часами реального времени. Часы реального времени обеспечивают кванты времени по 976 мксек. Стар­шая часть промежутка времени задается в (СХ). Например, (СХ) = 98Н и (DX) = 9680Н определяют промежуток в сек.

Управление возвращается после истечения указанного интервала времени. Функ­ция не поддерживается в PC, PC-jr и в ранних версиях BIOS XT.

20. Перемещение блока памяти

Параметры: (АН) = 87Н,

(СХ) - размер перемещаемого блока памяти в словах

(максимум 8000Н, что соответствует 64 Кб памяти), (ES:SI) - указатель списка дескрипторов (см. ниже). Результат:    (CF) = 0 - нормальное выполнение 1 - ошибка, (АН) - код завершения:

- успешное завершение,

1 - ошибка схем контроля,

2 - выполнение прекращено,

3 - неверный адрес памяти.

Функция только BIOS компьютеров на основе микропроцессо-

ров Intel 80286 и совместимых с ним (поддерживающих память 16М и привилегиро­ванный режим работы). Она позволяет переместить в область DOS блок памяти с аб­солютным адресом, большим

ES:SI указывает на список из шести дескрипторов, каждый из которых имеет дли­ну 8 байт. Формат дескриптора:

байты 0 - 1 - размер сегмента (слово), байты 2 - 3 - младшее слово 24-битового адреса, байт 4 - старший байт 24-битового адреса, байт 5 - код права доступа, байты 6 - 7 - резервируются. Таблица дескрипторов, на которую указывает (ES:SI), содержит шесть следую­щих дескрипторов (в указанном порядке):

- пустой дескриптор, должен быть установлен пользователем на адрес 000000;

- дескриптор данной таблицы дескрипторов; устанавливается пользователем

на адрес 000000; модифицируется BIOS;

- дескриптор перемещаемого блока памяти;

- дескриптор области для перемещения блока;

- дескриптор кодового сегмента для программы в привилегированном режи­ме; устанавливается пользователем на адрес 000000; модифицируется BIOS;

- дескриптор стека программы в привилегированном режиме; устанавливает­ся пользователем на адрес 000000; модифицируется BIOS.

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

- поле границы сегмента должно содержать значение, не меньшее, чем 2**((CX)-1);

- поле адреса устанавливается в абсолютный адрес блока;

- поле права доступа должно быть установлено в 9ЗН, чтобы обеспечить дос­туп для чтения и для записи.

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

21. Определение объема дополнительной памяти

Параметры: (АН) = 88Н.

Результат:   (CF) = 0 - нормальное выполнение,

^) - объем в килобайтах непрерывного участка ОЗУ,

начинающегося с абсолютного адреса 100000Н

или (CF) = 1 - функция не поддерживается.

Функция поддерживается только BIOS компьютеров на основе микропроцессо­ров Intel 80286 и совместимых с ним (поддерживающих память 16М и привилегиро­ванный режим работы). Она возвращает объем памяти, распознаваемой BIOS при вклю­чении питания. Эта память может использоваться только в привилегированном режи­ме работы процессора.

22. Переключение процессора в защищенный режим

Параметры: (АН) = 89Н, (ВН) - индекс в таблице описания прерываний, устанав­ливающий номера векторов прерывания от главного ПКП (соответствует IRQ 0); (BL)

- индекс в таблице описания прерываний, устанавливающий номера векторов преры­вания от подчиненного ПКП, (ES:SI) - указатель на таблицу дескрипторов (см. ниже). Результат: (АН) = 0 (и (CF) = 0) - успешное выполнение, (CF) = 0 и (АН) отлично отО

- функция не выполнена; (CF) = 1 - функция не поддерживается.

Функция поддерживается только BIOS компьютеров на основе микропроцессо­ров Intel 80286 и совместимых с ним (поддерживающих память и привилегиро­ванный режим работы). Нормальное выполнение функции переводит процессор в при­вилегированный режим и передает управление в сегмент, указанный пользователем. При этом разрушаются регистры АН, ВР и все сегментные регистры.

(ES:SI) указывает на таблицу из восьми восьмибайтовых дескрипторов, формат которых приведен ниже.

Содержит следующие дескрипторы (в указанном порядке):

- пустой дескриптор должен быть установлен пользователем на адрес 000000;

- дескриптор данной таблицы дескрипторов; устанавливается пользователем

на адрес 000000; модифицируется BIOS;

- дескриптор таблицы векторов прерываний; инициализируется пользователем;

- дескриптор сегмента данных; инициализируется пользователем;

- дескриптор дополнительного сегмента данных; инициализируется пользо­вателем;

- дескриптор сегмента стека; инициализируется пользователем;

- дескриптор кодового сегмента; инициализируется пользователем;

- дескриптор временного кодового сегмента BIOS; устанавливается пользо­вателем на адрес 000000; модифицируется BIOS.

Программе пользователя, которая получит управление, будут недоступны сред­ства BIOS, поэтому она должна сама выполнять операции ввода-вывода. Векторы пре­рывания должны быть перемещены в резервную область памяти. Контроллеры пре­рываний должны быть переустановлены, чтобы они определяли векторы, не разме­щенные в резервной области. Обработчики прерываний должны быть инициализиро­ваны пользователем. Таблица описания прерываний не может быть перекрыта табли­цей описания прерываний привилегированного режима BIOS.

23. Сообщение о занятости устройства Параметры: (АН) = 90Н,

(AL) - тип устройства (см. ниже). Результат:    (CF) = 0 - недостаточное время ожидания, 1 - достаточное время ожидания.

8. Список функций BIOS

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

Тип устройства кодируется следующим образом:

- коды 00 - 7FH резервируютсядля последовательно используемых устройств (система может выдать запрос к такому устройству только в том случае, если предыдущий запрос к нему завершен);

- коды 80Н - OBFH резервируются для реентерабельных устройств (для такого устройства может одновременно существовать несколько незавершенных зап­росов на ввод-вывод; (ES:BX) используется для дифференциации запросов);

- кодыОСОН- ОЕЕНрезервируетсядляустройствиситуаций, вкоторыхнетребуется завершения запроса после окончания времени ожидания (тайм-аут). В частности:

00 -тайм-аутжесткогодиска,

01 - тайм-аут дискетного устройства,

02 - клавиатура,

03 - тайм-аут символьного устройства,

80Н - сеть; (ES:BX) указывает на блок управления; OFDH - включение двигателя дискетного устройства, OFEH - устройство печати (тайм-аут).

Функция поддерживается не всеми компьютерами. Если она не поддерживается, то возвращается (CF) = 1 и (АН) = 80Н или 86Н в зависимости от модели.

24. Сообщение о готовности устройства

Параметры: (АН) = 91Н,

(AL) - тип устройства Результат:   (CF) = 0 - нормальное выполнение, 1 - ошибка.

Функция 91Н вызывается драйвером устройства, чтобы сообщить операционной системе, что устройство готово к обслуживанию (т.е. выполнило запрос). Например, обработчик клавиатурных прерываний (INT 9) может вызвать эту функцию, чтобы сообщить о том, что принят и обработан байт клавиатурныхданных. Вызов функции устанавливает флаг завершения прерывания. Тип устройства - см. 16.21.

Функция поддерживается не всеми компьютерами. Если онане поддерживается, то возвращается (CF) = 1 и (АН) = 80Н или 86Н в зависимости от модели.

25. Получить параметры модели компьютера Параметры: (АН) = ОСОН.

Результат:   (CF) = 0 и (АН) = 0 - нормальное выполнение, (ES:BX) - указатель на таблицу параметров или (CF) = 1 - ошибка.

Возвращается указатель на таблицу:

байт 0 - длина таблицы в байтах (8);

байт 1 - код модели компьютера,

байт 2 - код исполнения (уточнение модели);

байт 3 - код версии BIOS;

байт 4 - код специальных средств;

байты 5 - 8 - резерв (нули). Байт кода специальных средств имеет следующий формат:

бит 7 = 1 - BIOS жесткого диска использует канал 3 НДП;

бит 6 = 1 - установлен подчиненный ПКП;

бит 5 =     установлены часы реального времени;

бит 4= 1 - обработчик клавиатурный прерываний

вызывает функцию (АН) = 4FH INT 15Н;

бит 3 = 1 -поддерживается функция ожидания внешнего события;

биты 2 - 0 - резерв.

Функция поддерживается не всеми компьютерами. Если она не поддерживается, то возвращается (CF) = 1 и (АН) = 80Н или 86Н в зависимости от модели. Функция не поддерживается в PC, PC-jr и в ранних версиях BIOS XT.

Замечание: канал 3 КНДП может использоваться не только адаптером жесткого диска, но и другими адаптерами, в частности, он используется контроллером IBM ло­кальной сети.

26. Получить сегмент расширения области данных BIOS Следующая функция поддерживается только в System/2.

Параметры: (АН) =

Результат:     (CF) = 0 - нормальное выполнение,

(ES) - сегментный адрес расширения области данных BIOS.

Если функция не поддерживается, то возвращается (CF) = 1 и (АН) = 80Н или 86Н в зависимости от модели.

16.27. Интерфейс с устройствами типа "мышь"

Восемь следующих функций предназначены для управления устройствами типа "мышь" и поддерживаются только в System/2. Если функция не поддерживается, то возвращается (CF) = 1 и (АН) = 80Н или 86Н в зависимости от модели.

1.   Разрешение или запрет работы с устройством

Параметры: (АХ) = ОС200Н,

(ВН) = 0 - запрет работы с устройством, 1 - разрешениеработы.

Результат:   (СТ) = 0 - успешное выполнение, = 1 - выход с ошибкой; (АН) - состояние устройства: О-нет ошибок,

1 - неверная функция,

2 - неверные данные,

3 - ошибка интерфейса,

4 - К^епс!

5 - не установлен драйвер.

2.    Сброс устройства

Параметры: (АХ) = ОС201Н. Результат:   (СР) = 0 - успешное выполнение, = 1 - выход с ошибкой; (АН) - состояние устройства (как в 1) и (ВН) - идентификатор устройства, Если операция завершается успешно, то устройство устанавливается в следую­щее состояние:

- работа запрещена,

- установлена частота 100 сообщений в секунду,

- установлено разрешение 4 точки на миллиметр,

- установлена линейная шкала 1:1,

- размер пакета данных остается тем же, что и перед вызовом этой функции. Значение (ВБ) разрушается.

3.   Установить частоту сообщений

Параметры:

Результат:

(ВН)

(CF) = (АН) = ОС202Н,

частота:      0 -10 сообщений в секунду

1 - 20сообщений в секунду

2 - 40 сообщений в секунду

3 - 60 сообщений в секунду

4 - 80 сообщений в секунду 5-100 сообщений в секунду 6 - 200 сообщений в секунду

0 - успешное выполнение,

1 - выход с ошибкой;

■ состояние устройства (как в 1).

4. Установить разрешение

Параметры: (АХ) = ОС203Н,

(ВН)-разрешение:

точка на миллиметр 1 - 2 точки на миллиметр

2 -4 точки на миллиметр 3-8 точек на миллиметр Результат:   (CF) = 0 - успешное выполнение, = 1 - выход с ошибкой; (АН) - состояние устройства (как в 1).

5. Получить ID устройства

Параметры: (АХ) = ОС204Н. Результат:    (CF) = 0 - успешное выполнение, . = 1 - выход с ошибкой;

(АН) - состояние устройства (как в 1),

(ВН) - идентификатор устройства.

6. Инициализация интерфейса с устройством

Параметры: (АХ) ОС205Н,

(ВН) - размер пакета данных:

0 - резервируется,

иначе - число байтов в пакете (1 - 8). Результат:   (CF) = 0 - успешное выполнение, = 1 - выход с ошибкой; (АН) - состояние устройства (как в 1). Если операция завершается успешно, то устройство устанавливается в следую­щее состояние:

- работа запрещена,

- установлена частота 100 сообщений в секунду,

- установлено разрешение 4 точки на миллиметр,

- установлена линейная шкала 1:1.

7. Расширения команд инициализации

(АХ) = ОС206Н,

(ВН) = 0 - получить расширенное состояние,

1 - установить масштаб 1:1,

2 - установить масштаб 2:1. Результат:    (CF) = 0 - успешное выполнение,

= 1 - выход с ошибкой; (АН) - состояние устройства (как в 1). Расширенное состояние для подфункции (ВН) = 0 возвращается в регистрах (BL), (CL)h(DL):

(BL)  бит 7 - резерв (0);

6 = 0 - режим потока (stream),

1 - удаленный режим (remote);

5 = 0 - разрешение,

1 - запрет; 4 = 0-масштаб 1:1,

1 - масштаб 2:1; 3 - резерв (0);

2 = 1 - нажата левая кнопка, 1 - резерв (0);

нажата правая кнопка, (СЪ) =00 -1 точка на миллиметр,

01 - 2 точки на миллиметр, 02-4 точки на миллиметр, точек на миллиметр; (ВЦ - число сообщений в секунду ( 10, 20,40, 60, 80, 100 или 200).

8.   Инициализация драйвера

Параметры: (АХ) = ОС207Н

(ES:BX) - адрес точки входа в драйвер Результат:   (CF) = 0 - успешное выполнение, = 1 - выход с ошибкой; (АН) - состояние устройства (как в 1). Пользователь должен определить модуль, который получает управление всякий раз, когда становятся доступными какие-либо данные устройства. Данная функция устанавливает адрес драйвера для BIOS.

Драйвер вызывается инструкцией межсегментного вызова и получает параметры в стеке:

слово 1 - состояние:

бит 7 = 1 - переполнение по координате Y,

бит 6 = 1 - переполнение по координатеХ,

бит 5 = 1 - отрицательные данные по координате Y,

бит 4= 1 - отрицательные данные по координате X,

бит 3 - резерв (всегда 1),

бит 2 - резерв (всегда 0),

бит 1 = 1 - нажата правая кнопка,

бит 0 = 1 - нажата левая кнопка,

биты 15-8-нули; слово 2 - байт данных по координатеХ (биты 15 - 8 - нули); слово 3 - байт данных по координате Y (биты 15 - 8 - нули); слово 4 - нули.

Выход из драйвера должен быть оформлен как межсегментный возврат, информа­ция в стеке не должна изменяться.

28. Разрешение или запрещение "сторожевого пса"

Следующая функция поддерживается только в System/2, исключая модель 30. Если функция не поддерживается, то возвращается (CF) = 1 и (АН) = 80Н или 86Н в зависи­мости от модели.

Параметры: (АН) = ОСЗН,

(AL) = 0 - запрет тайм-аута "сторожевого пса",

1-разрешениетайм-аута, (ВХ) - счетчик (1 -255). Результат:   (CF) = 0 - нормальное выполнение, 1 - выход с ошибкой.

"Огрожевойпес" - это таймер, сигнализирующий о необработанных прерываниях.

29. Выбор программируемых режимов

Следующие три функции поддерживаются только в

Если функции не поддерживаются, то возвращается (CF) = 1 и (АН) = 80Н или 86Н в зависимости от модели.

1. Получить базовый адрес регистров адаптера POS.

Параметры: (АХ) = ОС400Н. Результат:   (CF) = О, (AL) = О,

(DX) - базовый адрес регистров POS.

2. Разрешить установку платы.

Параметры: (АХ) = ОС401Н,

(BL) - номер платы. Результат:   (CF) = 0 - нормальное выполнение, 1 - выход с ошибкой.

3. Разрешить работу адаптера.

Параметры: (АХ) = ОС402Н. Результат:   (CF) = 0 - нормальное выполнение, 1 - выход с ошибкой.

Обслуживание клавиатуры (прерывание 16Н).

Функции BIOS для работы с клавиатурой перечислены на Рис. 3. Только функции 0 - 2 поддерживаются любой версией BIOS. Остальные функции требуют специально­го оборудования или расширения интерфейса с аппаратурой. В частности, функции

1 ОН, ПН и 12Н предназначены для поддержки клавиатур с расширенными функцио­нальными возможностями, позволяющими получать последовательность скан-кодов при нажатии или отпускании одной клавиши. Для таких клавиатур скан-коды подраз­деляются на три категории:

1. Если некоторый знак порождается нажатием (или отпусканием) только одной клавиши, то этотскан-код такой клавиши обрабатывается обычным образом.

2. Если несколько клавиш генерируют один и тот же знак, то только одна из них генерирует стандартный скан-код, соответствующий этому знаку. Другие кла­виши генерируют уникальные последовательности скан-кодов, в каждую из которых входит стандартный скан-код знака. Поэтому система может различать нажатые клавиши.

3. Новым клавишам присвоены уникальные скан-коды.

Во всех моделях компьютеров функции 0 и 1 возвращают только стандартные коды знаков и скан-коды клавиш, удаляя из буфера дополнительную информацию. Этим дос­тигается независимость программ от установленной При использование расширенной клавиатуры не следует считать, что в программу попадает вся информа­ция из буфера. Точную копию буфера можно получить с помощью функций ЮН и 1Щ.

Чтобы определить, что функции ЮН - 12Н поддерживаются BIOS, можно, вос­пользовавшись функцией 5, занести в буфер код OFFH со скан-кодом OFFH. Если фун­кция 5 вернет (AL) = 0, то код успешно записан в буфер, иначе при отсутствии пере­полнения буфера функции 5, ЮН, 11Ни 12Нне поддерживаются. Затем нужно вызы­вать функцию ЮН, и если ни одна из 16 попыток ее вызова не вернет (АХ) = OFFFFH, то функции ЮН       не поддерживаются.

код

функция

OO

чтение знака

O1

проверка наличия знака

O2

состояние регистров клавиатуры

O3

установка частоты повторений

O4

управление звуковым сигналом

O5

запись в буфер клавиатуры

1O

расширенная функция чтения

ll

расширенная проверка наличия знака

12

расширенное состояние регистров

1.  Чтение знака

Параметры: (АН) = 0. Результат:     (AL) - код знака,

(АН) - скан-код клавиши.

Код знака и скан-код клавиши удаляются из буфера BIOS возвращаются в (AX). Если буфер BIOS пуст, функция ждет ввода знака с клавиатуры. В некоторых моделях до перехода к ожиданию вызывается функция 90И прерывания 15Н, чтобы сообщить (многозадачной) операционной системе, что она может переключиться на другую за­дачу до получения знака. В этих же моделях после получения кода от клавиатуры си­стема информируется об этом вызовом функции 91HINT 15Н.

Замечание: знаки расширенного кода (в частности, управляющие символы) воз­вращаются в виде скан-кода в (A^ с (AL) = 0.

2. Проверка наличия знака

Параметры: (A^ = 1.

Результат:   (ZF) = 1 - буфер клавиатуры пуст,

(ZF) = O - в буфере есть знаки и

(AL) - код первого знака из буфера, клавиши.

В отличие от функции 0 информация, возвращаемая в (АХ), не удаляется из буфе­ра. Если в буфере BIOS нет знаков, немедленно возвращается (ZF) = \.

Состояние регистров клавиатуры

Параметры:      = 2.

Результат:    (AL) - первый байт состояния регистров клавиатуры, (A^ разрушается.

Функция возвращает в (AL) в точности ту же информацию, которая содержится в байте памяти с абсолютным адресом 0417Н.

4.   Установка частоты повторений.

Данная функция требует специального адаптера клавиатуры и поддерживается только в некоторым моделях компьютеров. Подфункции (AL) = 0,...,4 поддерживают­ся только в PC-jr, подфункция (AL) = 5 - в AT и в System/2.

Параметры: (AK) = 3,

(AL)- код подфункции:

- установить умолчание для состояния регистров клавиатуры,

1 - увеличить начальную задержку,

2 - уменьшить частоту повторов вдвое,

3 - увеличить начальную задержку и уменьшить вдвое частоту повторов,

- отключить повторы,

5 - установить начальную задержку и частоту повторов;

 (BL) - частота повторов (для подфункции 5), . (ВН) - начальная задержка (для подфункции 5).

Подфункция 1 устанавливает регистры клавиатуры в то состояние, в какое они устанавливаются сбросом. Остальные подфункции управляют временем между по­вторными выдачами скан-кода нажатой клавиши и задержкойдо первого повторения.

Подфункция 5 допускает значения (BL) от 0 до 31, что соответствует интервалу между повторами от 30 мсек до 2 мсек (большее значение (BL) соответствует меньше­му промежутку между повторами). (ВН) указывает промежуток времени до первого повторения. Допускаются значения от 0 до 3, и соответствующие промежутки от 0.25 сек до 1 сек.

5. Управление звуковым сигналом

Данная функция требует специального адаптера клавиатуры и поддерживается только в некоторых моделях компьютеров (PC-jr, PC Convertible).

Параметры: (АН) = 4,

(al) = 0 - отключить звуковой сигнал, 1 - включить звуковой сигнал.

Звуковой сигнал выдается при переполнении внутреннего буфера клавиатуры.

6. Запись в буфер клавиатуры

Данная функция позволяет программе заносить знаки в буфер BIOS так, как если бы эти знаки были получены из клавиатуры. Функция не поддерживается в PC, PC-jr, PC Convertible и ранними версиями BIOS XT и AT.

Параметры:      = 5,

(СН)- скан-код, знака.

Результат:    (AL) = 0 - успешное выполнение, 1 - переполнение буфера.

7. Расширенная функция чтения

Параметры: (АН) = ЮН. Результат:    (AL) - код знака,

(AL) - скан-код клавиши.

Эта функция, не реализованная во многих компьютерах, выполняется аналогично фун-кцииО.новозвращаетточную копию информации в буфере BIOS (см. функцию 1), Функ­ция не поддерживается в PC, PC-jr, PC Convertible и ранними версиями BIOSXT и AT.

їв -

8. Расширенная проверка наличия знака

Параметры: (АН) = ПН.

Результат:   (ZF) = 1 - буфер клавиатуры пуст,

(ZF) = 0 - в буфере есть знаки и

(AL) - код первого знака из буфера,

(АН) - scan-код клавиши.

Эта функция, нереализованная во многих компьютерах, выполняется аналогично фун­кции 1,новозвращаетточную копию информации в буфере BIOS (см. функцию 1). Функ­ция не поддерживается в PC, PC-jr, PC Convertible и ранними версиями BIOSXT и AT.

9. Расширенное состояние регистров Параметры: (АН) = 12Н.

Результат:    (AL) - первый байт состояния регистров клавиатуры,

(АН) - дополнительный байт состояния регистров клавиатуры.

Функция возвращает В (AL) в точности туже информацию, которая содержится в байте памяти с абсолютным адресом 0417Н, а в (АН) - туже информацию, которая содержится в байте памяти с абсолютным адресом 0418Н. Функция не поддерживает­ся в PC, PC-jr, PC Convertible и ранними версиями BIOS XT и AT.

Вывод на печатающее устройство (прерывание 17Н).

BIOS поддерживает три следующие функции устройств печати: (АН) = 0 - вывод знака,

(АН) = 1 - инициализация порта устройства печати,

(АН) = 2 - чтение состояния.

1. Вывод знака

Параметры: (АН) = 0,

знак для вывода, (DL) - номер устройства печати.

Результат: (АН) - состояние окончания функции (см. 18.3).

Значение (DL) используется как индекс при выборе базового адреса портов устрой-стюпечатиизтаблищ1сабсолкл-нымадресом0408Н.Значение(ОЬ)должнобытьменьше числа подключенньгх устройств печати и во всех случаях не может быть большетрех.

2. Инициализация порта устройства печати.

Параметры: (АН) =1,

(DL) - номер устройства печати. Результат:    (АН) - состояние окончания функции (см. 18.3).

Значение (DL) используется как индекс при выборе базового адреса портов устрой­ства печати изтаблицы с абсолютным адресом0408Н. Значение рЦцолжно быть меньше числа подключенных устройств печати и во всех случаях не может быть больше трех.

3.   Получить состояние

Параметры: (АН) = 2,

(DL) - номер устройства печати.

Результат:   (АН) - состояние устройства:

бит 7 = 1 - устройство неготово, бит 6 = 1 - подтверждение, бит 5=1 -нет бумаги, бит4 = 1 - выборустройства, битЗ=1-ошибкавывода, бит0=1 -тайм-аут, биты 2 и 1 резервируются.

Значение (DL) используется как индекс при выборе базового адреса портов устрой-стшпечатиизтаблицъ1сабсолкпньшадресом0408Н.Значение(ОЬ)должнобьг№ числа подключенных устройств печати и во всех случаях не может быть больше трех.

Обслуживание часов реального времени (прерывание

В таблице перечислены функции BIOS, связанные с таймероми с часами реально­го времени. Только функции 0 и 1 доступны во всех моделях компьютеров, остальные

требуют установки часов реального времени.

код

функция

00

чтение счетчика циклов таймера

01

установка счетчика циклов таймера

02

получить реальное время

03

установить реальное время

04

получить реальную дату

05

установить реальную дату

06

установить сигнал тревоги

07

сбросить установку сигнала тревоги

08

установить время включения питания

09

тревоги

ОА

чтение счетчика дней

установка счетчика дней

80

установить звуковой генератор

Функции даты и времени.

1. Чтение счетчика циклов таймера Параметры: (АН) = 0.

Результат: (СХ) - младшее слово счетчика, (DX) - старшее слово счетчика, (АЬ) - флаг перехода через сутки.

Обработчик прерывания от системного таймера (ГОТ" 8) подсчитывает количество случившихся прерываний в двойном слове памяти с адресом 0470Н. Данная функция возвращает накопленное значение и сбрасывает его в 0. В регистре АЬ возвращается О, если содержимое счетчика не превысило значения, соответствующего 24часам (при достижении этого значения счетчик сбрасывается), иначе возвращается (АЬ) = 1.

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

2. Установка счетчика циклов таймера

Параметры: (АН) = 1,

(СХ) - младшее слово счетчика,

фХ) - старшее слово счетчика. ,

Результатов нет.

Выполнение функции сбрасывает флаг перехода через сутки. Отметим, что макси­мальное значение счетчика цикловтаймераравно 1800ВОН.

Установка счетчика циклов таймера изменяет системное время, но не дату.

реальное время

Параметры:      = 2.

Результат:   (СР) = 1 - часы не установлены или выключены, (СР) = 0 - нормальное выполнение, (СН)-часы,

(СЬ) - минуты,

фН) - секунды,

(БЬ) = 0 - установлен режим 24-часовых суток, 1 - установлен режим 12-часовых суток.

Функция поддерживается не всеми компьютерами (АТ, 8у§1етУ2), идажедля них не всегда поддерживается режим суток.

Результат возвращается в упакованном десятичном формате.

Например, (СХ) = 0904Н, (БН) = 12Н обозначает 9 часов 4 минуты 12 секунд.

Часы реального времени имеют автономное питание и работают даже при выклю­чении компьютера. Они используются при включении питания для установки систем­ной даты и системного времени, но в дальнейшем дата и время определяются на осно­вании счетчика таймера. Поэтому результат этой функции необязательно соответству­ет результату функции 0.

4. Установить реальное время

Параметры: (АН) = 3,

(СН)-часы, (СЬ)- минуты, (БН) -секунды,

(БЬ) = 0 - установить режим 24-часовых суток, 1 - установить режим 12-часовых суток. Результат:    (СР) = 0 - нормальное выполнение,

(СР) = 1 - часы не установлены или выключены.

Функция поддерживается не всеми компьютерами (АТ, 8у8Т.ет/2), и даже для них не всегда поддерживается режим суток.

Параметры задаются в упакованном десятичном формате. Например, (СХ) = 0904Н, (БН)= 12Н обозначает 9 часов 4 минуты 12секунд.

5. Получить реальную дату Параметры: (АН) = 4.

Результат: или выключены,

(СР) = 0 - нормальное выполнение, (СН) - век (XIX или XX), (СЬ) - год, (БН)-месяц, (БЬ) - день.

Функция поддерживается не всеми компьютерами (АТ, Ъуъ\£т12\ Результат возвращается в упакованном десятичном формате. Например, (СХ) = 1988Н, (БХ) = 1127Н обозначает 27.11.1988. Результат данной функции не обязатель­но соответствует результату функции 1 (см. 20.3).

6. Установить реальную дату  -" -

Параметры: (АН) = 5,

(СН) - век (XIX или XX), (СЬ)-год,

(БН) - месяц, (БЬ) - день.

Результат:   (CF) = 0 - нормальное выполнение,

(CF) = 1 - часы не установлены или выключены. Функция поддерживается не всеми компьютерами (AT, System/2). Параметры задаются в упакованном десятичном формате. Например, (СХ) - 1988Н, (DX)= П27Н обозначает 27.11.1988.

7. Установить сигнал тревоги

Параметры: (АН) = 6,

(СН)-часы,

(CL)-минуты, (DH) - секунды. Результат: =  - нормальное выполнение,

(CF) = 1 - часы не установлены или выключены.

Функция поддерживается не всеми компьютерами (AT, System/2).

Параметры задаются в упакованном десятичном формате. Например, (СХ) - 0904Н, (DH)= 12Н обозначает 9 часов 4 минуты 12секунд.

Установленный сигнал тревоги вызывает программное прерывание 4АН, обработ­чик которого может быть установлен пользователем. BIOS не сбрасывает сигнал тре­воги при выполнении прерывания.

8. Сбросить сигнал тревоги. Параметры: (АН) = 7.

Результат:   (CF) = 0 - нормальное выполнение,

(CF) = 1 - часы не установлены или выключены.

Функция поддерживается не всеми компьютерами (AT, System/2).

Если сигнал тревоги не был установлен, то не выполняются никакие действия.

9. Установить время включения питания

Параметры: (АН) = 8,

(СН) - часы,

- минуты, (DH) - секунды.

Результат: =  - нормальное выполнение,

(CF) = 1 - часы не установлены, или выключены, или уже установлен сигнал тревоги.

Функция требует установки не только часов реального времени, и другого спе­циального оборудования и поддерживается только в компьютерах, совместимых с System/2.

Приложение 8.        функций BIOS

10. Получить время и состояние сигнала тревоги Параметры: (АН) = 9.

Результат:   (CF) = 1 - часы не установлены или выключены, (CF) = 0 - нормальное выполнение, (СН)-часы, (CL) - минуты, (DH) - секунды,

(DL) - состояние сигнала тревоги:

0 - не установлен,

1 - установлен, но не включает питание,

2 - установлен и включает питание.

Функция требует установки не только часов реального времени, но и другого спе­циального оборудования и поддерживается только в компьютерах, совместимых с System/2.

Время возвращается в упакованномдесятичном формате (см. 20.3).

11. Чтение счетчика дней Параметры: (АН) = ОАН.

Результат:   (CF) = 1 - функция не поддерживается, (CF) = 0 - нормальное выполнение, (СХ) - счетчикдней от 1.01.1980.

Функция не требует установки часов реального времени, но поддерживается не всеми компьютерами и версиями BIOS. Счетчик дней устанавливается в 0 при вклю­чении питания.

12. Установка счетчика дней

Параметры: (АН) = ОВН,

(СХ) - счетчикдней от 1.01.1980.

Результат:   (CF) = 0 - нормальное выполнение,

1 - функция не поддерживается.

Функция не требует установки часов реального времени, но поддерживается не всеми компьютерами и версиями BIOS. Счетчик дней устанавливается в 0 при вклю­чении питания.

13. Установить звуковой генератор.

Функция применяетсятольковРС-і'г.

Параметры: (АН) = 80Н,

(АЬ)-источникзвука:

0-канал 2 таймера 8253,

1 - входной сигнал от кассетного устройства,

2 - линия "Ашііо Іп" в канале ввода-вывода,

3 - микросхема тонального генератора. Результат:    (С¥) = 0.

В других компьютерах возвращается (СР) = 1 как признак того, что функция не поддерживается.