- •Лабораторний практикум
- •Та організація обчислювальних робіт”
- •1.Основи комп’ютерної техніки
- •1.1.1. Основні теоретичні відомості
- •1.1.2. Варіанти завдань
- •1.2.1 Основні теоретичні відомості
- •1.2.2 Варіанти завдань
- •1.3.1 Основні теоретичні відомості
- •1.3.2 Варіанти завдань
- •1.4.1 Основні теоретичні відомості
- •1.4.2 Варіанти завдань
- •2.Мова assembler
- •2.5.1 Основні теоретичні відомості
- •Movs-пересилка рядка
- •2.5.2. Варіанти завдань
- •2.6.1 Основні теоретичні відомості
- •Imul – цілочисельне множення
- •IDlV-цілочисельне ділення
- •2.6.2. Варіанти завдань
- •2.7.1 Основні теоретичні відомості
- •Ja/jnbe – перехід, якщо більше/перехід, якщо не менше або рівно
- •Jae/jnb/jnc – перехід, якщо більше чи рівно/перехід, якщо не менше/перехід, якщо нема переносу
- •Jb/jnae/jc – перехід, якщо менше/перехід, якщо не більше або рівно/перехід,тобто, перенесення
- •Jbe/jna-перехід, якщо менше або рівно/перехід, якщо не більше
- •Jcxz-перехід, якщо вміст регістра сх рівний нулю
- •Je/jz-перехід, якщо рівно/перехід по нулю
- •Jg/jnle-переход, якщо більше ніж/переход, якщо не менше ніж або рівно
- •Jge/jnl-nepexід, якщо більше або рівно/перехід, якщо не менше ніж
- •Jl/jnge-перехід, якщо меньше/перехід, якщо не більше або рівно
- •Jle/jng-перехід, якщо менше або рівно/перехід, якщо більше
- •Jne/jnz-переход по нерівності /переход, якщо не нуль
- •Jnp/jpo-переход за відсутності парності
- •Jp/jpe-перехід по парності
- •2.7.2. Варіанти завдань
- •2.8.1. Основні теоретичні відомості
- •Основні засоби bios для роботи з відеоадаптером
- •Зовнішні регістри контролера vga (03c2h – 03cFh):
- •Регістри контролера атрибутів (03c0h – 03c1h):
- •Регістри графічного контролера (03cЕh – 03cFh):
- •Регістри контролера crt (03d4h – 03d4h):
- •Регістри синхронізатора (03с4h – 03c5h):
- •Регістри vga dac (03c6h – 03c9h):
- •Вибір режиму роботи відеоадаптера
- •Зміна форми курсора
- •Зміна положення курсору
- •Визначення положення і форми курсору
- •Зміна активної сторінки відеопам'яті
- •Згортка текстового вікна вверх
- •Згортка текстового вікна вниз
- •Читання символу і його атрибутів
- •Запис символу з атрибутами в поточній позиції курсору
- •Запис символу в поточній позиції курсору
- •Запис символу в режимі телетайпу
- •Визначення поточного режиму роботи відеоадаптеру
- •2.8.2. Варіанти завдань
- •3.Розрахунки в mathcad
- •Інтерфейс користувача
- •Основне меню
- •Панелі інструментів
- •Довідникова інформація
- •3.9.1. Основні теоретичні відомості
- •3.9.2. Варіанти завдань
- •3.10.1. Основні теоретичні відомості
- •3.10.2. Варіанти завдань
- •3.11.1. Основні теоретичні відомості
- •3.11.2. Варіанти завдань
- •3.12.1. Основні теоретичні відомості
- •3.12.2. Варіанти завдань
- •4.Табличний процеcор excel
- •4.13.1. Основні теоретичні відомості
- •4.13.2. Варіанти завдань
- •4.14.1. Основні теоретичні відомості
- •4.14.2. Варіанти завдань
- •4.15.1. Основні теоретичні відомості
- •4.15.2. Варіанти завдань
- •4.16.1. Основні теоретичні відомості
- •4.16.2. Завдання
Основні засоби bios для роботи з відеоадаптером
VGA-сумісні відеоадаптери керуються за допомогою портів вводу/виводу, причому реальне число внутрішніх регістрів відеоадаптера, до яких можна звертатися через це вікно, перевищує 50. Оскільки BIOS надає гарну підтримку для більшості стандартних функцій, ми не будемо розглядати докладне програмування відеоадаптера на рівні портів, а тільки розглянемо основні дії, для яких прийнято звертатися до відеоадаптера напряму.
Зовнішні регістри контролера vga (03c2h – 03cFh):
регістр стану 0 (ISR0) – доступний для читання з порта 03С2;
регістр виводу (MOR) – доступний для читання з порта 3CCh і для запису як 3C2h;
регістр стану вводу 1 (ISR1) – доступний для читання з порта 03DAH.
Регістри контролера атрибутів (03c0h – 03c1h):
00h – 0Fh: регістри палітри EGA;
10h: регістр керування режимом;
11h: регістр кольору бордюру екрану (по замовчуванню 00h);
12h: регістр дозволу використання кольорових палітр;
13h: регістр горизонтального панорамування;
14h: регістр вибору кольору (по замовчуванню 00h).
Контролер атрибутів перетворює значення байту атрибута символу в кольори символу і т.д. Для запису в ці регістри необхідно в порт 03C0h записати номер регістру, а потім (другою командою out) – дані для цього регістра. Щоб переконатися, що 03C0h знаходиться в стані прийому номера, а не даних, треба виконати читання з ISR1 (порт 03DAh). Порт 03C1h можна використовувати для читання останнього записаного індексу або даних.
Регістри графічного контролера (03cЕh – 03cFh):
00h: регістр установки/скидання
01h: регістр дозволу установки/скидання
02h: регістр порівняння кольору
03h: регістр циклічного зсуву даних
04h: регістр вибору площини, що читається
05h: регістр вибору режиму роботи
06h: багатоцільовий регістр графічного контролера
07h: регістр ігнорування палітр кольору
08h: регістр бітової маски
Для звертання до регістрів графічного контролера варто записати індекс потрібного регістра в порт 03CEh, після чого можна буде читати і писати дані для обраного регістра в порт 03CFh. Якщо потрібно тільки запис у регістри, можна просто помістити індекс у AL, байт що посилається – в АН і виконати команду виводу слова в порт 03CEh. Цей контролер, у першу чергу, призначений для забезпечення передачі даних між процесором і відеопам'яттю в режимах, що використовують кольорові палітри, як, наприклад, режим 12h (640x480x16).
Регістри контролера crt (03d4h – 03d4h):
Контролер CRT керує розгорткою і формуванням кадрів на дисплеї. Як і для графічного контролера, для звертання до регістрів контролера CRT варто записати індекс потрібного регістра в порт 03D4h, після чого можна буде читати і писати дані для обраного регістра в порт 03D5h. Якщо потрібно тільки запис у регістри, можна просто помістити індекс у AL, що посилається байт – в АН і виконати команду виводу слова в порт 03D4h.
Регістри синхронізатора (03с4h – 03c5h):
Для звертання до регістрів синхронізатора варто записати індекс потрібного регістра в порт 03C4h, після чого можна буде читати і писати дані для обраного регістра в порт 03C5h. Аналогічно, якщо потрібно тільки запис у регістри, можна просто помістити індекс у AL, байт що посилається – в АН і виконати команду виклику слова в порт 03CEh.
Хоча BIOS і дозволяє використовувати деякі можливості цих регістрів, зокрема роботу зі шрифтами (INT 10h АН = 11h) і виключення обміну даними між відеопам'яттю і дисплеєм (INT 10h, АН = 12h, BL = 32h), пряме програмування регістрів синхронізатора разом з регістрами контролера CRT дозволяє значно змінювати характеристики відеорежимів VGA, аж до установки нестандартних відеорежимів. Найбільш популярними режимами є так називані режими «X» з 256 кольорами і з 320 чи 360 пікселів по горизонталі і 200, 240, 400 чи 480 пікселій по вертикалі. Оскільки такі режими не підтримуються BIOS, для їхньої реалізації потрібно написати всі необхідні процедури – встановлення відеорежиму, вивід пікселя, читання пікселя, переключення сторінок, зміна палітри, завантаження шрифтів. При цьому для всіх режимів з цієї серії, крім 320x240x256, слід також враховувати змінене співвідношення розмірів екрану по вертикалі і горизонталі, щоб коло, виведений на екран, не виглядав як еліпс, а квадрат – як прямокутник.