Мова програмування Assembler
Методическое пособие - Компьютеры, программирование
Другие методички по предмету Компьютеры, программирование
?е з обліком цього ви і повинні установити перемикачі на системній платі, тому що монохромний дисплей може бути пошкоджений, якщо не буде ініціалізований відразу ж після включення живлення. Інструкція по роботі рекомендує, щоб ви установили перемикачі в положення, яка показує, що в системі присутній монохромний адаптер. Після цього ви можете використовувати відеопрограму BIOS з монохромним дисплеєм. Щоб перейти на кольоровий адаптер, можна виконати програму на рис.П9.7. Ця програма включає кольоровий адаптер у 80-символьному текстовому режимі. Символи, що були висвітлені на монохромному дисплеї, на ньому і залишаються, а ви тепер можете використовувати відеопрограму BIOS для роботи з кольоровим графічним дисплеєм. Але якщо вам буде потрібно змінити вміст монохромного дисплея, ви зможете зробити це, записавши нові символи чи атрибути в буфер дисплея за адресою 0B000H. Це не змінить положення курсору, але змінить картинку. У цьому випадку якщо ви хочете змінювати текст одночасно на кольоровому і монохромному дисплеях, ви повинні написати власну програму обслуговування монохромного дисплея. Чи ви можете зясувати, які значення треба змінити в полі даних BIOS, щоб курсор перейшов назад, і виконав потрібні дії, не ініціалізувавши адаптер щоразу.
Установка режиму
Коли програма виконує переривання INT 10H при AH = 0, вона викликає функцію установки режиму відеопрограми BIOS. Якщо в змінної EQUIP_FLAG відзначено, що в системі є монохромна плата, не важливо, яке значення виявилося в регістрі AL. У цьому випадку програма BIOS набудовує монохромний адаптер на режим 7, що означає текстовий режим 80*50, підтримуваний чорно-білою платою.
У випадку кольорової графічної плати значення в регістрі AL визначає, у який із двох графічних чи двох текстових режимів уведе програма BIOS дисплейний адаптер. Ви бачите, що існують чорно-білі режими поряд з кольоровими для тексту, а також графіка 320*200. Ці чорно-білі режими насправді не виключають кольору, вони тільки виключають сигнал кольоровості, що використовується в телевізорі для визначення кольору кожної крапки. Якщо ви використовуєте RGB-монітор, кольори залишаться на місцях. Якщо ж ви використовуєте кольоровий (чи чорно-білий) чи відеомонітор телевізор, установка чорно-білого режиму кольорової плати виключить кольори і дасть більш чітке зображення на екрані. Якщо ви займаєтеся задачею, у якій кольори не потрібні, то одержати трохи краще зображення можна, вибравши один з чорно-білих режимів замість кольорового.
Коли виконується програма установки режиму, вона настроює адаптер і поле даних відеопрограми BIOS на обслуговування потрібного режиму роботи. Програма установки режиму заповнює пробілами буфер дисплея і поміщає курсор у верхньому лівому куті екрана. Доти, поки ви не будете досить знайомі з пристроєм дисплея, ви повинні використовувати програму установки режиму BIOS. Хоча і немає нічого поганого в зміні кодів дисплея на ваші власні, дуже важко налагоджувати програму, що модифікує дисплей. Якщо ви зробите щось невірно, дисплей стане непрацездатним, і зникне можливість визначити, що ж невірно.
Функції відеопрограми, що відповідають номерам від 1 до 5 служать для роботи з регістрами мікросхеми 6845. Як ви памятаєте з опису системної апаратури, мікросхема 6845 містить регістри, що керують формою і положенням курсору, а також тимчасовими характеристиками відображення. Ці підпрограми відеопрограми BIOS дозволяють модифікувати відображення, не знаючи базової адреси мікросхеми 6845. Ці підпрограми входять у число сервісних програм BIOS.
Зрушення зображення
Програми зрушення переміщають текстову інформацію або нагору, або вниз, у залежності від викликаної функції. Програми зрушення також забезпечують деякі засоби організації вікон (фрагментів екрана) на екрані дисплея - тобто BIOS може зрушувати тільки частина вмісту екрана. Вхідні параметри програми зрушення визначають прямокутник, розташований на екрані. Він задає верхній лівий і правий нижній кути області зрушення. Відеопрограма BIOS зрушує дані тільки в цій області. Інша частина екрана не міняється.
Ми вже бачили користь зрушення вікон при вивченні операційної системи і мови Бейсік, яке використовували для зрушення BIOS. Якщо працює 80-символьний дисплей, DOS установлює верхній лівий кут вікна зрушення рівним (0, 0), а нижній правий кут (24, 79). Так зрушується весь екран. Але Бейсік використовує двадцять пять рядків для індикації стану дисплея, і тільки 24 рядка відводить під зображення програми. Коли Бейсік зрушує екран за допомогою базової системи введення-висновку, він установлює верхній лівий кут у крапці (0, 0), а правий нижній кут - у крапці (23, 79). Із-за того, що останній рядок залишається за межами зрушення, вона не переміщається під час зрушення. У наступній главі приведений приклад зрушення вікна, який викликаний з програми на Бейсіку.
Відеопрограма BIOS виконує зрушення за допомогою переносу символів і атрибутів у дисплейному буфері. Програма зрушення не змінює стартової адреси дисплейного буфера; такий метод зрушення був би швидший, але не дозволяє прикладній програмі визначати, куди повинні потрапити окремі символи. Спосіб зрушення, реалізований у BIOS, підходить для звичайної роботи екрана. Помітимо також, що програма зрушує зображення при необхідності більш ніж на один рядок. Звичайно програма зрушує зображення на один рядок. Функція зрушення відеопрограми BIOS дозволяє зрушити вміст екрана на кілька рядків. Якщо ж кількість рядків зрушення дорівнює нулю, програма BIOS очищає екра