Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Лабораторна робота № 3
ТЕМА: Програмування режимів EGA та VGA відеоадаптера
МЕТА: Набути навичок роботи з відеоадаптером у режимах EGA та VGA, а також використання засобів BIOS для роботи з відеопам’яттю.
Короткі теоретичні відомості
Для роботи з відеоадаптером в BIOS відведено три функції переривання 10h. Функція 00h призначена для встановлення режима дисплея (для виклику: AH = 00h, AL = номер режима); функція 05h – вибір активної дисплейної сторінки (для виклику: AH = 05h, AL = номер відеосторінки); функція 0Fh – визначення стану відеосистеми (для виклику: AH = 0Fh; повертає: AH = кількість символьних столбців, AL = номер режима, BH = номер активної відеосторінки).
ЗАВДАННЯ
Розробити та відлагодити програму, яка:
- переводить дисплей в заданий користувачем відеорежим;
- забезпечує можливість перемикання відеосторінок;
- виводить на екран інформацію про стан відеосистеми.
ПИТАННЯ ДЛЯ САМОКОНТРОЛЮ
1. Яка базова адреса текстової відеопам’яті?
2. Скілький відеосторінок має текстова відеопам’ять?
3. Яку інформацію зберігає дескриптор сегменту?
4. Який об’єм (розмір) відеосторінки текстової відеопам’яті?
5. Що таке таблиця глобальних дескрипторів?
6. Чи можна модифікувати сегменти команд в захищеному режимі під час виконання програми?
7. Яке призначення тіньових регістрів? Чи доступні вони програмісту?
8. Що таке регістр таблиці глобальних дескрипторів?
9. Які таблиці треба підготувати для виходу в захищений режим?
10. У який спосіб можна повернутися з захищеного режиму до реального?
Засоби BIOS для роботи з відеоадаптером.
BIOS здійснює свою роботу з відеоадаптером через переривання INT 10h.
Функції INT 10h
00h –вибір режиму роботи;
01h – задання форми курсора;
02h – задання позиції курсора;
03h – визначення положення й форми курсора;
04h – використання світового пера;
05h – задання активної сторінки відеопам`яті;
06h – прокрутка вікна вгору;
07h – прокрутка вікна вниз;
08h – читання символу і його атрибутів у поточній позиції курсора;
09h – запис символу з атрибутами у поточну позицію курсора;
0Ah – запис символу з тим атрибутом, який був у позиції курсора;
0Bh – установлення кольорової палітри (режим 4,5,6);
0Ch – вивід пікселя на екран;
0Dh – читання пікселя;
0Eh – вивід символів у режимі телетайпа;
0Fh – визначення поточного режиму роботи відеоадаптера;
10h – керування регістрами палітри. Має підфункції;
11h – завантаження таблиці знакогенератора. Має 11 під функцій;
12h – визначення конфігурації й вибір програми друку екрана;
13h – вивід текстового рядка;
1Ah – читання/запис конфігурації відеосистеми;
1Bh – отримання даних про стан VGA;
1Ch –зберігання/встановлення стану відеоадаптера.
Режими дисплея.
Номер | Режим |
0 1 2 3 4 5 6 7 8 9 | 40х25(320х200) – алфавітно-цифровий, монохромний; 40х25(320х200) – алфавітно-цифровий, кольоровий; 80х25(640х200) – алфавітно-цифровий, монохромний; 80х25(640х200) – алфавітно-цифровий, кольоровий; 320х200 4-х кольорова графіка; 320х200 алфавітно-цифровий і графіка; 640х200 кольорова графіка; 720х350 алфавітно-цифровий; 160хкольорова графіка; 320хкольорова графіка; |
Функции BIOS – Int 10h – упарвление экраном
Для управления экраном имеются следующие функцыи:
Функция Назначение
-----
00H Задание видеорежим
01H Задание формы курсора
02H Задание позицию курсора
03H Чтение позиции иформы курсора
04H Чтение позиции световое перо
05H Выбрать активную страницу дисплея
06H Листать окно вверх (или очистить)
07H Листать окно вниз
08H Читать символ/атрибут
09H Писать символ/атрибут
0aH Писать символ
0bH Выбрать палитру/цвет бордюра
0cH Писать графическую точку
0dH Читать графическую точку
0eH Писать символ в режиме TTY
0fH Читать видео режим
10H Установка регистров палитр( PCjr, EGA,VGA,MCGA)
11H Управление знакогенератор (EGA, VGA,MCGA)
12H Выбор альтернативы (EGA, VGA,MCGA)
13H Выбор строки на экран (многие ПЭВМ )
14H Упаравление плазменным дисплеем ( Convertible )
15H Чтение параметров активонго дисплея ( Convertible )
1AH Чтение/вывод кода комбинации дисплеев ( PS/2 )
1BH Чтение функциональной информации ( PS/2 )
1CH Сохранение/восстановление состояенмия дисплея(VGA)
Примечание. Функции 00-0FH поддерживаються BIOS всех ПЭВМ ( единственное исключение состоит в том, что BIOS не поддерживает графический режим монохромного адаптера Hercules).Остальные функции реализеются только теми адаптерами и теми ПВЭМ, которые указаны в скобках после их описания ( под-робная информацыя о каждой ункции приведена ниже ).
Функция 00h –задание видеорежима
Вход: АН = 00h
AL = ноер видеорежима
Выхода: нет
Описание: Изменяет режим экрана на заднный в AL.Подробное описание видеорежиов, поддерживаемых BIOS, приведено в п. 7.2.
Примечания.
1. В некоторых версиях BIOS эта ф-н разрушает регистры АХ,
SP, BP, SI, и DI .
2. При смене видеорежима экран очищается. Мы не рекомендуем использовать эту ф-н для очистки экрана, т. к. она работает довольно долго ( см. ф-н 06h и 07h ). HCjr, EGA, VGA, MCGA и PS Convertible можно сменить видеорежим без очистки экрана, если установить старший бит AL.
3. В графических режимах курсор не отображается на экране
( кроме VGA, где возможна эмуляция графического курсора – см.
ф-н 12h).
4. Смена видеорежима изменяет форму курсора.
5. Режимы 0, 2 и 5 для RGB-монитор эквивалентны режимам 1, 3 и 4 соответветственно. Для композитных ( дешовых и устаревших )
мониторов они отличаются тем, что в режымах 0, 2 и 5 запрещена генерацыя цветов, т. е. эти режими являются чёрно-белыми.
6. Для чтения текущего видеорежима используйте ф-н Ofh.
7. При включении ПВЭЬ устанавливаются следующие видеорежи-мы:
CGA, PCjr, MCGA - 3 ;
MDA - 7 ;
EGA, VGA - 3 или 7 в зависимости от диспле;
PC Convertible - 2 ли 7 в зависимости от дисплея.
8. Для всех видеорежимов, кроме 13h:
- в MCGA инициализируется только первые 16 регистров цвета, а
остальные 240 остаются неопределенными;
- в VGA инициализируется только первые 64 регистров цвета, а
остальные 192 остаются неопределенными;
9. Для смены вертикального разрешения экрана VGA в текстовом режиме ( 200, 350 или 400 ) используйте ф-н 12h c BL=30h.
Cм. также: Int 10h, ф-н 06h
Int 10h, ф-н 07h
Int 10h, ф-н 0Fh
Int 10h, ф-н 12h
INT 10h,00h - установка специального режима (Paradise VGA)
Вход: AX = 007Eh
BX = горизонтальный размер желаемого режима
CX = вертикальный размер желаемого режима (BX/CX задаются в пикселях для графических режимов, в строках для текстовых)
DX = число цветов желаемого режима (0 для монохромных
режимов)
Выход:
BH = 7Eh - успешное завершение операции
INT 10h,00h - расширенные функции (Paradise VGA)
Вход:
AX = 007Fh
BH = 00h - установить режим VGA
BH = 01h - установить режим не-VGA
Цветные режимы (0, 1, 2, 3, 4, 5, 6) установят режим CGA (не-VGA).Монохромный режим 7 установит режим MDA/Hercules (не-VGA).
BH = 02h - проверить статус режима
BH = 03h - фиксировать текущий режим. Позволяет текущему режиму(VGA или не-VGA) "пережить" перезагрузку.
BH = 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh - запись в регистры
соответственно 0,1, 2, 3, 4, 5 (для порта 03CEh индексы - A, B, C, D, E, F)
BL = значение, заносимое в регистр
BH = 1Ah,1Bh,1Ch,1Dh,1Eh,1Fh - чтение из регистров
соответственно 0,1, 2, 3, 4, 5 (для порта 03CEh индексы - A, B, C, D, E, F)
Выход:
- для подфункции 02h:
BL = 0 - если функционирует в режиме VGA, 1 - если режим
не-VGA.
CH = общий размер телеОЗУ в 64Кбайтных банках
CL = размер телеОЗУ, используемого текущим режимом
BH = 01h - установить режим не-VGA
Цветные режимы (0, 1, 2, 3, 4, 5, 6) установят режим CGA (не-VGA).Монохромный режим 7 установит режим MDA/Hercules (не-VGA).
BH = 02h - проверить статус режима
BH = 03h - фиксировать текущий режим. Позволяет текущему режиму
(VGA или не-VGA) "пережить" перезагрузку.
BH = 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh - запись в регистры соответственно 0,1, 2, 3, 4, 5 (для порта 03CEh индексы - A, B, C, D, E, F)
BL = значение, заносимое в регистр
BH = 1Ah,1Bh,1Ch,1Dh,1Eh,1Fh - чтение из регистров соответственно 0,1, 2, 3, 4, 5 (для порта 03CEh индексы - A, B, C, D, E, F)
Выход: - для подфункции 02h:
23
BL = 0 - если функционирует в режиме VGA, 1 - если режим не-VGA.
CH = общий размер телеОЗУ в 64Кбайтных банках
CL = размер телеОЗУ, используемого текущим режимом
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


