Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Определение текущего режима работы видеоадаптера - функция 0Fh




Определение текущего режима работы видеоадаптера - функция 0Fh

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

 

На входе: AH 0Fh
На выходе: AH Количество символов в строке
AL Номер текущего режима
BH Номер активной страницы видеопамяти

 

Бит D7 регистра AL соответствует значению бита D7 регистра AL, использованному при предыдущем выборе режима работы видеоадаптера (см. функцию 0 ).

Список стандартных режимов работы видеоадаптеров представлен в следующей таблице:

 

Режим работы Тип информации Количество цветов Разрешение, пиксел x пиксел Размер символов, пиксел x пиксел
0, 1 Текстовый цветной 40x25 8x8
0*, 1* Текстовый цветной 40x25 8x14
0+, 1+ Текстовый цветной 40x25 9x16
2, 3 Текстовый цветной 80x25 8x8
2*, 3* Текстовый цветной 80x25 8x14
2+, 3+ Текстовый цветной 80x25 9x16
4, 5 Графический цветной 320x200  
Графический цветной 640x200  
Текстовый монохромный 80x25 9x14
7+ Текстовый монохромный 80x25 9x16
8, 9, 0Ah

Используются видеоадаптерами компьютера PC jr, и в настоящее время интереса не представляют

0Bh, 0Ch

Зарезервировано

0Dh Графический цветной 320x200  
0Eh Графический цветной 640x200  
0Fh Графический монохромный 640x350  
10h Графический цветной 640x350  
11h Графический цветной 640x480  
12h Графический цветной 640x480  
13h Графический цветной 320x200  

 

Приведем список режимов работы видеоадаптеров, соответствующих стандарту VESA:

 

Режим работы Тип информации Количество цветов Разрешение, пиксел x пиксел Размер символов, пиксел x пиксел
100h Графический цветной 640x400  
101h Графический цветной 640x480 8х16
102h Графический цветной 800x600 8х8
103h Графический цветной 800x600 8х8
104h Графический цветной 1024x768  
105h Графический цветной 1024x768 8х16
106h Графический цветной 1280x1024  
107h Графический цветной 1280x1024  
108h Текстовый цветной 80x60  
109h Текстовый цветной 132x25 9х16
10Ah Текстовый цветной 132x43 9х9
10Bh Текстовый цветной 132x50  
10Ch Текстовый цветной 132x60  
10Dh Графический цветной 320x200  
10Eh Графический цветной 320x200  
10Fh Графический цветной 320x200  
110h Графический цветной 640x480  
111h Графический цветной 640x480  
112h Графический цветной 640x480  
113h Графический цветной 800x600  
114h Графический цветной 800x600  
115h Графический цветной 800x600  
116h Графический цветной 1024x768  
117h Графический цветной 1024x768  
118h Графический цветной 1024x768  
119h Графический цветной 1024x768  
11Ah Графический цветной 1280x1024  

Int 11h - Конфигурация оборудования

Для варианта №11, Лабораторной работы №2 - Определить и вывести на экран список оборудования (BIOS 11h).

 

Вход: нет

Выход: AX =конфигурация оборудования

Описание: Возвращает в AX конфигурацию оборудования ПЭВМ.


Примечания:

1. Это слово хранится в области данных BIOS по адресу 00410h.

2. На IBM PC, XT и PCjr биты 2-3 содержат объем ОЗУ на системной плате в блоках по 16К (например, 00=16К, 11=64К).

3. Бит 2 не используется на PC, XT, AT и PC Convertible. На XT-286 и PS/2 он указывает на наличие устройства графического ввода (pointing device).

4. Бит 12 всегда установлен в 1 на PCjr.

5. Бит 13 указывает наличие встроенного модема на PC Convertible, последовательного принтера на PCjr и зарезервирован на остальных ПЭВМ.

6. Если DIP-переключатели в PC и XT выставлены неверно, то BIOS не определит наличие сопроцессора. Для проверки того, имеет ли ЭВМ сопроцессор, лучше всего выполнить его команду и проанализировать результат.

7. Для определения числа жестких дисков используйте Int 13h, функцию 08h.

 

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

Биты Значение
0 1 - система содержит НМД; 0 - система не содержит НМД. (Для варианта №1, Лабораторной работы №2 - Определить наличие и тип установленного в системе накопителя на жестких магнитных дисках (НЖМД). )
1 1 - установлен арифметический сопроцессор; 0 - арифметический сопроцессор не установлен.
2-3 Объем основной памяти, установленной на материнской плате: Биты: 3        2          0        1        - 16К;           1        0        - 32К;           1        1        - 64К и более. (Для варианта №2, Лабораторной работы №2 - Определить объем установленной оперативной памяти и ее тип. )
4-5 Тип дисплейного контроллера и его режим: Биты: 5        4          0        0        - не используется или EGA;           0        1        - CGA, EGA, VGA в режиме 40x25;           1        0        - CGA, EGA, VGA в режиме 80x25;           1        1        - монохромный контроллер. (Для варианта №12, Лабораторной работы №2 - Определить режим видеоадаптера (текстовый, графический, разрешение) (BIOS 10h).
6-7 Количество установленных НГМД: Биты: 7        6          0        0        - установлен 1 НГМД;           0        1        - установлено 2 НГМД;           1        0        - установлено 3 НГМД;           1        1        - установлено 4 НГМД. (Для варианта №8, Лабораторной работы №2 - Определить количество и тип установленных накопителей на гибких магнитных дисках (НГМД). )
8 1 - используется контроллер прямого доступа к памяти; 0 - контроллер прямого доступа к памяти не используется.
9-11 Количество установленных портов последовательной передачи данных RS232S: 000 - нет портов; 001 - используется один порт; 111 - используется 7 портов. (Для варианта №4, Лабораторной работы №2 - Определить количество установленных последовательных и параллельных портов. )
12 1 - используется игровой адаптер (джойстик); 0 - игровой адаптер не используется.
13 1 - установлен последовательный принтер (только для PC Jr).
14-15 Количество установленных принтеров: 00 - нет принтеров; 01 - используется 1 принтер; 10 - используется 2 принтера; 11 - используется 3 принтера. (Для варианта №4, Лабораторной работы №2 - Определить количество установленных последовательных и параллельных портов. )

 

Пример:

 

// =====================================================

// Получение информации о конфигурации компьютера при помощи BIOS

// =====================================================

#include < stdio. h>

#include < conio. h>

#include < memory. h>

#include < dos. h>

// Битовые поля слова конфигурации

typedef struct _HDWCFG

{

unsigned HddPresent: 1;        // 0

unsigned NpuPresent: 1;        // 1

unsigned AmountOfRAM: 2;     // 2-3

unsigned VideoMode: 2;             // 4-5

unsigned NumberOfFdd: 2;         // 6-7

unsigned DmaPresent: 1;             // 8

unsigned NumberOfCom: 3;       // 9-11

unsigned GamePresent: 1;           // 12

unsigned JrComPresent: 1;           // 13

unsigned NumberOfLpt: 2;         // 14-15

} HDWCFG;

int main(void)

{

union REGS rg;

HDWCFG HdwCfg;

unsigned uword;

// Вызываем прерывание INT 11h для получения слова конфигурации компьютера

rg. h. ah = 0x0;

int86(0x11, & rg, & rg);

// Получаем слово конфигурации и сохраняем его в структуре HdwCfg

uword = (unsigned int)rg. x. ax;

memcpy(& HdwCfg, & uword, 2);

// Выводим на экран конфигурацию компьютера printf(" \n\nConfiguration word: %04. 4X", HdwCfg);

if(HdwCfg. HddPresent)

printf(" \nHDD present" );

if(HdwCfg. NpuPresent)

printf(" \nNPU present" );

printf(" \nRAM banks: %d", HdwCfg. AmountOfRAM);

printf(" \nVideo Mode: %d", HdwCfg. VideoMode);

printf(" \nNubber of FDD: %d", HdwCfg. NumberOfFdd + 1);

if(HdwCfg. DmaPresent)

printf(" \nDMA present" );

printf(" \nNubber of COM ports: %d", HdwCfg. NumberOfCom);

if(HdwCfg. GamePresent)

printf(" \nGame adapter present" );

if(HdwCfg. JrComPresent)

printf(" \nPCjr Com present" );

printf(" \nNumber of LPT ports: %d", HdwCfg. NumberOfLpt);

// Вызываем прерывание INT 12h для определения объема основной оперативной памяти

// компьютера

rg. h. ah = 0x0;

int86(0x12, & rg, & rg);

// Выводим объем оперативной памяти

printf(" \nRAM istalled: %d Kbytes",

(unsigned int)rg. x. ax);

// Получаем объем расширенной оперативной памяти,

// доступной через прерывание INT 15h

rg. h. ah = 0x88;

int86(0x15, & rg, & rg);

// Выводим объем расширенной оперативной памяти

printf(" \nExtended RAM istalled: %ld Kbytes",

(unsigned int)rg. x. ax);

getch();

return 0;

}

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...