Note from 2018: Универ давно закончил, а от этой дичи до сих оторопь берет 😱
ВСТУП ДО ВИКОРИСТАННЯ СИСТЕМИ "АСТРОФОРТ" 1. Форт-система "Астрофорт", створена колишнім Інститутом теоретичної астрофізики АН СРСР, входила до складу програмного забезпечення автоматизованого робочого місця експериментатора "Іскра 1031". 2. На відміну від перфострічкових Форт-систем система "Астрофорт" має віртуальну пам'ять на дисках та відповідні засоби для роботи з віртуальною пам'яттю. 3. Щоб ЗАПУСТИТИ СИСТЕМУ треба [cut]засобами MS DOS, NORTON COMMANDER, або іншої програми-оболонки знайти на диску ( D:) каталог FORTH (можливо інший) і виконати запуск файлу FORTH.COM. Роздивитись заголовок системи майже неможливо через велику швидкодію ПЕОМ IBM PC і побачити, що запуск завершено, можна після появи на екрані дисплею запрошення до діалогу у вигляді слова "ok" червоного кольору. Червоний колір є колір повідомлень системи, блакитний колір є колір повідомлень оператора (користувача). БУДЬ-ЯКІ ПОВІДОМЛЕННЯ ОПЕРАТОРА МОЖНА ВІДРЕДАГУВАТИ БЕЗПОСЕРЕДНЬО НА ЕКРАНІ І БАГАТОРАЗОВО ВИКОРИСТАТИ. 4. Для виходу з Форт-системи виконайте команду BYE або натисніть <Esc>. Після натиснення <Esc> Форт-система вимагатиме підтвердити намір (Yes/No). Щоб вийти, натисніть <Y>. Після виходу знову запустіть Форт-систему. Призначення клавіш та їх комбінацій пояснене у двохсторінковому довіднику, який виведе на екран натиснення <F1>. Ознайомтесь з текстом довідника. 5. Віртуальна пам'ять Форт-системи організована у вигляді низки пронумерованих, починаючи з нуля, блоків-екранів розміром 1 Кбайт, що перебувають у складі активного у даний момент екранного файлу.(Екранного, бо то є сукупність екранів-блоків). Після запуску Форт-системи у якості активного встановлено файл з ім'ям FORTH.SCR. Якщо такого файлу немає у поточному каталозі, Форт-система сповістить про це. Під час роботи з системою у якості активного можна призначити будь-який файл, що є на диску. У системі передбачена деяка кількість дій з блоками-екранами та файлами з використанням засобів операційної системи MS-DOS. Ознайомтесь із змістом поточного екранного файлу. Для цього можна скористатись відповідними словниковими статтями. Команда : 1 20 INDEX <Enter> виведе для перегляду заголовки (перші рядки) екранів з 1-го до 20-го включно. Команда : 1 LIST <Enter> виведе для перегляду екран 1. Для перегляду іншого екрану треба лише змінити номер екрану на інший у тому ж рядку на екрані дисплею та натиснути <Enter>. Команда : 1 EDIT <Enter> виведе для редагування екран 1. Для перегляду або редагування іншого екрану треба лише натискати PgDn або PgUp. Вихід з програми редагування - <Esc>. 6. Бригада, що виконує лабораторні роботи має створити на диску D (або С) каталог з назвою, що містить номер групи та номер бригади, у такий спосіб - GRАП59_1. Перші дві літери - cкорочена назва теми роботи. У каталог треба перенести Форт-систему та всі супутні файли. Програмні наробки під час виконання роботи треба накопичувати у файлі в цьому каталозі. Файл можна створити у такій послідовності: виконати 1 EDIT, натисиути <F9>, вибрати у допоміжному меню рядок CREATE, натиснути <Enter>, ввести ім'я файлу краще без розширення, бо за замовчуванням система додасть розширення SCR і робитиме так завжди під час роботи з файлом. Щоб впевнитись у наявності файла, треба вибрати у допоміжному меню рядок DIR і натиснути <Enter> або виконати рядок DIR, працюючи у діалозі з Форт-системою. 6.1. Виведіть назву поточного каталогу виконанням рядка: 4 .DIR (якщо на диску A: то 1 .DIR) Нагадаймо, що назва кореневого каталогу - ".." . Якщо файл вважаєте непотрібним, то видаліть його за допомогою рядка: DEL NAME DIR ( тут NAME - ім'я файлу) Ім'я поточного ДИСКОВОДУ можна вивести за допомогою слова .DRV . Вивести зміст поточного КАТАЛОГУ можна за допомогою слова DIR . Ім'я поточного АКТИВНОГО ФАЙЛУ можна вивести за допомогою тексту DECIMAL 92 .FCB або HEX 5C C TYPE DECIMAL. 7. Робота з віртуальною пам'яттю системи "Астрофорт". 7.1. Зробіть ваш робочий файл активним за допомогою рядка: USING NAME (NAME - ім'я файлу) Уникнути набору на клавыатуры слова USING можна натискуванням комбінації клавіш <Alt-U>. 7.2. Скористайтеся редактором Форт-системи для створення тексту у екранях віртуалььної пам'яті. У екрані 0, який не використовують для зберігання текстів програм, бо його не можна завантажити (інтерпретувати текст), розмістіть довільний текст (наприклад, дату, склад бригади, номер групи та назву лабораторної роботи і таке ін.). Для цього увійдіть у режим редагування за допомогою рядка: 0 EDIT (тут 0 є номер екрану, що маємо редагувати) Після виконання цього рядка ви працюєте з екранним редактором Форт-системи. Для виходу з редактору натисніть <Esc>. Замість набору слова ЕDIT та натискування <Enter> можна натискувати лише комбінацію клавіш <Alt-E>. Про інші скорочені команди можна довідатись, натискаючи <F1> двічи. Перший рядок треба резервувати для заголовка екрану. Натискування клавіші <F2> підготує перший рядок для розташування заголовку тобто запише у рядок дужки (ознаку коментаря для інтерпретатора системи) та дату у формі мм/дд/рр, де мм - поточний місяць, дд - день, рр - рік. Вводити текст заголовка треба, залишивши після відкритої дужки принаймні один пропуск. Переглянути заголовки екранів файлу можна за допомогою команди n m INDEX , де n - номер першого, m - номер останнього екранів. Записування тексту екрану на диск у активний файл відбувається під час виходу з редактору або під час переходу до іншого екрану (натисканням <Esc>, <Page Up>, <Page Down>). Але !! гарантоване збереження тексту екранів після редагування краще досягти операцією USING NAME , де NAME - ім'я файлу. 8. Виконайте наступну спробу приготування програми у екрані номер 2. Наберіть у екрані наступний текст: .( УРА !) 500 300 BEEP ( це викличе звуковий сигнал) : TXT 5 0 DO ." ЕКРАН # 2 ПРАЦЮЇ" CR LOOP ; ( це 5 раз ) TXT CR FORGET TXT .( ЧИ БАЧИТЕ РЕЗУЛЬТАТ ?) ( надрукує текст) та після виходу з редактору інтерпретуйте текст екрану щляхом його завантаження. Виконайте команду 2 LOAD . Замість набору слова LOAD та натискування <Enter> можна натискувати комбінацію <Alt-L>. 9. Розташуйте у третьому екрані текст: .( ТРЕТІЙ ЕКРАН ІНТЕРПРЕТОВАНО) SIREN А у четвертий екран текст: .( ЧЕТВЕРТИЙ ЕКРАН ІНТЕРПРЕТОВАНО) ALARM Після виходу з редактору завантажте 3-й та 4-й екрани. Перевірте МОЖЛИВІСТЬ ЗАВАНТАЖЕННЯ ГРУПИ ЕКРАНІВ за допомогою текста у одному екрані. Для цього розташуйте у першому екрані текст: 2 LOAD 4 LOAD 3 LOAD 2 LOAD та завантажте перший екран. З'ясуйте - чи все було завантажено? Перевірте МОЖЛИВІСТЬ ЗАВАНТАЖЕННЯ НИЗКИ ЕКРАНІВ шляхом завантаження першого з низки. Для цього у кінець тексту другогота третього екранів додайте слово "-->" та завантажте екран 2. 10. Під час використання редактору у верхньому рядку екрану дисплею розташоване меню, де для вибору альтернатив послуговують функціональні клавіші <F1>...<F10>. Дія клавіш <F1> (Help) та <F2> (Date) була розглянута вище. Клавіші <F3> (Push-in), <F4> (Push-del), <F5> (Pop-in) та <F6> (Sprd-pop) використовують зметою перенести чи скопіювати будь-яку кількість рядків екрану в будь-яке місце іншого екрану поточного активного або будь-якого іншого екранного файлу. Натискування клавіші <F3> копіює вказані курсором рядки у спеціальний стек-буфер з показом першого рядка буферу на екрані дисплею. Послідовні натискування клавіші переміщують курсор вниз. Натискування клавіші <F5> переносить один рядок з верхівки стеку-буферу в місце екрану, вказане курсором. Клавіша <F4> діє аналогічно <F3>, але не копіює, а переносить рядки у буфер. На звільнене місце пересуваються рядки нижньої частини екрану. Клавіша <F6> діє аналогічно <F5>, але не накладає рядки на існуючі, а розсовує їх донизу. 11. Скористайтесь клавішами <F3>, <F5> і перенесіть текст з рядків 3 та 4 екрану 2 у рядки 2 та 3 екрану 6. 12. Клавіша <F7> (Find) виконує контекстний пошук екрану у файлі. Перейдіть до редагування першого екрану, натисніть <F7>, введіть текст для пошуку, наприклад, 3 LOAD і після натискання <Enter> буде знайдено перший екран, де є текст 3 LOAD. Після кожного натискання буде знайдено інший екран з більшим номером, зрозуміло, якщо такий існує. Клавіша <F8> (Replace) забезпечує не тільки контекстний пошук, але й заміну знайденого фрагменту тексту на заданий. Клавіша <F10> (Restore) дозволить відновити вміст екрану, який був до редагування, якщо записування на диск ще не відбулося. Клавіша <F9> (Menu) виводить на екран додаткове меню команд, у якому за допомогою клавіш із стрілками можна вибрати команду з переліку, поданого нижче : - Edit - перейти до редагування іншого екрану, - Using - встановити новий активний екранний файл, - Spread - зсув екранів на один екран у бік збільшення номерів, починаючи з поточного, з очищенням поточного, - Comprs - видалення поточного екрану із зсувом екранів з боку більших номерів, - Move - перенесення групи екранів поточного файлу на інше місце у тому ж файлі, - Copy - копіювання деяких або всіх екранів поточного екранного файлу у поточний або у інший екранний файл, - First - перехід до редагування першого екрану поточного файлу, - Last - перехід до редагування останнього екрану поточного файлу, - Print - друкування вмісту поточного екрану на принтері, - Dir - вивід змісту поточного каталогу, - Ch Drv - зміна поточного дисководу, - Index - вивід заголовків екранів поточного файлу, - Create - створення нового екранного файлу у поточному каталозі, - Delete - видалення екранного файлу з поточного каталогу, - Forth - перехід у тимчасовий екземпляр Форт-системи без виходу з редактору. Для виходу з цієї Форт-системи треба натиснути <Esc> або виконати BYE, - Ms DOS - тимчасовий вихід у DOS із зберіганням стану Форт системи. Для повернення у Форт-систему треба виконати команду EXIT.Національний технічний університет "ХПІ" Кафедра обчислювальної техніки та програмування МЕТОДИЧНІ ВКАЗІВКИ ДО ЛАБОРАТОРНО° РОБОТИ з дисципліни "Периферійні пристрої ЕОМ"
Тема роботи :
ГРАФІЧНІ РЕЖИМИ ВІДЕОАДАПТЕРУ EGA
Підготував проф. Червонний С.Й.
МЕТА РОБОТИ: Вивчення графічних режимів роботи дисплею. Експерименти з обладнанням пропонується проводити з використанням середовища Форт-системи “Астрофорт”, з якою студенти мають бути знайомі після роботи з розділом “Вступ до використання системи “Астрофорт”” або після роботи з навчально-довідковою програмою “Форт-система “Астрофорт””.
1.1. Графічний дисплей та особливості його складових частин
Сучасний графічний дисплей ПЕОМ за конструкцією розділено на адаптер та монітор. Адаптер підключено до системного інтерфейсу ПЕОМ, він має у складі ОЗП - відеопам’ять, багато регістрів. Адаптер виробляє сигнали для монітору. Монітор підключено до адаптеру, він має у складі кінескоп, засоби для розгортання променю, засоби для керування яскравістю та кольором зображення

Адаптер EGA ( Enchanced Graphics Adapter - удосконалений графічний адаптер ) може бути підключений до ПЕОМ IBM PC, IBM PC XT, IBM PC AT або до інших ПЕОМ, сумісних з переліченимми. Перед підключенням адаптеру EGA замість CGA треба було реконфігурувати систему шляхом зміни стану деяких перемикачів на основній платі ПЕОМ. Настроювання адаптеру на відповідний монітор також проводили за допомогою перемикачів, але на платі адаптеру. На платі адаптеру EGA ( Рис.2 ) розташовані:

Якість дисплею залежить від багатьох факторів, таких, як тип інтерфейсу монітора з адаптером, частота розгортання рядків та кадрів монітору, параметри точкового растру на екрані, кількість кольорів. За типом інтерфейсу розрізняють монітори таких видів: композитний, цифровий RGB-монітор, цифровий ECD-монітор та ECD HiRes-монітор, аналоговий кольоровий монітор та інші. Композитний монітор - це означає, що з адаптеру у монітор по двійці проводів передають один композитний сигнал, що у композиції (у суміші) містить синхроімпульси кадрової та рядкової розгортки променю ЕПТ та відеосигнал, подібний до того, що використовують у телебаченні. У спрощених ПЕОМ, у яких у якості моніторів використовують стандартні телевізори (стандарти PAL чи SECAM), композитний сигнал, сформований у адаптері, подають до відеовходу телевізора або модульований композитний сигнал подають до радіовходу (антенний вхід). У останньому випадку погіршується розподільна здатність дисплею через існуючий спосіб передачи кольорових складових у сигналі. Композитний монітор - монітор аналогового типу і кількість різних відтінків кольору обмежує тільки адаптер.
Цифровий RGB монітор відрізняється тим, що по окремих проводах він одержує з адаптеру дворівневі сигнали для керування яскравістю, червоною, синьою та зеленою складовими кольору, а також сигнали синхронізації розгортання променю. Такий спосіб передачі кольорових складових дає можливість одержати на екрані 8 кольорових відтінків.
Цифровий ECD(Enhanced Color Display)-монітор має кількість проводів для передачі кольорових складових вдвічи більшу, ніж RGB-монітор. Це дозволяє передати чотири градації яскравості для кожного кольору або 4 * 4 * 4 = 64 кольорових відтінка. Обмеження, які пов’язані з обсягом відеопам’яті, привели до використання підмножини цих відтінків. Така підмножина має назву “палітра”. Ї можливість формувати та вибирати палітру.
Цифровий ECD HiRes (High Resolution - висока розподільна здатність)-монітор при таких же можливостях у кольорі, що є у ECD-моніторі, може працювати у режимі з підвищеною розподільною здатністю 800 х 600 точок, що зовсім близько до телевізійного стандарту. Аналогові RGB-монітори, як і цифрові, мають три сигнальні проводи для керування кольором. Яскравість кожної кольорової складової визначена аналоговим сигналом, тому кількість відтінків необмежена. Але, оскільки аналоговий сигнал вироблено шляхом цифро-аналогового перетворення з обмеженою кількістю двійкових розрядів, кількість відтінків відома. Так для відеоадаптера VGA палітра у 256 кольорів може бути вибрана з 262144 відтінків. Електронний промінь проходить поверхню екрану у напрямкузліва направо та зверху вниз. Під час зворотного руху промінь вимикають в межах прямокутної робочої області (250 х 200 мм*мм). Область зовні робочої звуть рамкою. Кольором рамки також можна керувати. Частота розгортання вздовж рядка та частота виводу точок на екран визначають горизонтальний параметр точкового растру. Шаг тріад RGB люмінофорів менше, ніж шаг розташування тих точок на екрані, які складають зображення та мають назву - пікселів (pixel = picture element = елемент картини). Горизонтальний шаг та вертикальний шаг є різні. Якщо це не враховувати, то коло стане еліпсом. Для більшості режимів горизонтальний шаг до вертикального відноситься, як 5 до 6. Вертикальний параметр точкового растру є кількість рядків у кадрі. При підвищенні кількості рядків можливе зниження частоти кадрів, що призводить до появи мигтіння зображення. Мигтіння менше помітне з використанням черезрядкової розгортки, тобто, у першому напівкадрі виводять усі парні рядки, у другому - усі непарні. Це має відбиток на організації відеопам’яті.
Сучасні графічні адаптери дисплеїв це баготофункціональні пристрої. Вони можуть бути поєднані з моніторами різних типів ( див. табл. 1 ). До деяких адаптерів можна підключити два монітори.

Відеоадаптери можуть працювати у декількох режимах, що забезпечує можливість виконання у нових ПЕОМ програм, розроблених до появи нових відеоадаптерів. Перелік режимів роботи відеоадаптеру EGA, частково VGA та SVGA поданий у табл. 2.

Режими 0-7 є спільні для всіх типів відеоадаптерів ПЕОМ, сумісних з IBM PC. Відеоадаптери EGA, VGA та SVGA додатково мають режими з кращими можливостями.
1.2. Обмін інформацією ПЕОМ з відеоадаптером
Звертання до адаптеру дисплею можливе, як і до багатьох інших пристроїв, шляхом безпосереднього обміну з регістрами через порти вводу-виводу та з відеопам’яттю, шляхом використання засобів BIOS (Base Input Output System - Базова система вводу-виводу), шляхом використання засобів алгоритмічних мов високого рівня. Підвищення рівня супроводжується деякими обмеженнями доступу. Не всі дії, виконані з обміном через порти, доступні через засоби алгоритмічних мов високого рівня або навіть через засоби BIOS. Використання засобів BIOS здійснюється за наступною схемою. У регістри процесору завантажують потрібні константи та виконують програмне переривання з номером 10h. Під час обробки переривання виконується потрібна функція.
Для експериментального вивчення деяких можливостей відеоадаптеру EGA потрібна ПЕОМ з завантаженою Форт-системою “Астрофорт”, яка є розвиненим середовищем для виконання експериментів.
Кінцевою метою експериментів є з’ясування алгоритмів виконання деяких функцій відеоадаптеру.
Завдання 1. Створення звітного файлу та програмних засобів для встановлення режимів адаптеру
Для створення звітного файлу, де потрібно буде накопичувати всі наробки, увійдіть у діалог з Форт-системою, визвіть редактор (тобто, виконайте 0 EDIT або 0 Alt-E ), перейдіть у допоміжне меню редактору (тобто, натисніть F9), виберіть позицію “Create” y меню, натисніть Enter і введіть ім’я майбутнього звітного файлу, беручи до уваги, що розширення до імені файлу система додасть сама. Зробіть ваш файл активним (тобто, виберіть у меню позицію “Using” та введіть ім’я звітного файлу). Тепер скористайтеся редактором і запишіть у екран 0 ваше прізвище, дату та інші потрібні ідентифікатори. Натисніть Esc. На цьому створення звітного файлу завершено. Виконайте словникову статтю DIR , щоб пабачити, чи є на диску створений файл.
Приготуйте програмні засоби для встановлення режимів відеоадаптеру. Відповідні словникові статті мають допомогти встановити будь-який режим роботи відеоадаптеру, хоча для найпростішого експерименту потрібна можливість встановлення хоча б двох режимів. Чому ? Якщо встановити графічний режим, то можливість діалогу з Форт-системою буде втрачена. Тому, будь-який експеримент з графічними режимами доцільно будувати із встановлення графічного режиму, із спостерігання результатів експерименту, із повернення до буквено-цифрового режиму.
Без останнього може стати необхідним перезапуск ПЕОМ та Форт-системи. Перенесіть текст програми (стор. ) у екран 1 звітного файлу. Ввід тексту за допомогою програми редактора Форт-системи є трудомістка операція. Скоротити витрати часу можна, якщо виключити коментарі. Але, якщо окрім Форт-системи ви маєте можливість скористатися програмою-оболонкою і читаєте текст цього посібника у окремому вікні екрану дисплею, то перенесення тексту полягатиме у автоматичному копіюванні. Для перенесення тексту з вікна тексту посібніка у звітний файл перейдіть у синє вікно (натисніть клавішу “<-“ або “->”), призначте звітний файл активним файлом Форт-системи (за допомогою USING), виконайте статтю CPW ( або натисніть
( У екран 1. RGM та 80S -для встановлення режимів адаптеру,)
( для RGM на стеку - номер режиму N -> )
HEX CODE RGM ( Початок Форт-асемблерного визначення RGM.)
AX POP ( Дія: номер режиму перенесено з стеку у регістр AX )
AX, # 1F AND ( Дія: старші розряди номеру скинуті до нуля, )
( аби запобігти появі некоректого номеру. )
( Це рядок для змін або доповнень до програми )
10 INT ( Дія: звернення до програмного переривання 10h. )
NEXT, ( Дія: повернення керування інтерпретатору Форт-системи)
80S 2 RGM ; ( Стаття 80S для встановлення режиму 2, тобто)
( буквено-цифрового режиму. Стан стеку не змінює. )
.( RGM та 80S - ЗАВАНТАЖЕНІ) CR DECIMAL
Програма копіювання закінчує роботу тим, що входить до програми редагування щойно скопійованого екрану. Видаліть з екрану 1 зайві рядки, бо їх наявність може зупинити компіляцію тексту.
Завантажте екран 1 (тобто, виконайте 1 LOAD) та проведіть тестування словникових статтей. Під час тестування доведеться за відсутністю наробок спостерігати темний екран. У графічному режимі 4 виконаємо словникову статтю WAIT, що очікує натискання будь-якої клавіші, і тому час пребування у графічному режимі залежить від експериментатора.Виконайте у діалозі рядок:
4 RGM WAIT 80S
Повернення у Форт-систему (поява “ok”) свідчитеме про вдале завершення експерименту. Тестові тексти завжди розміщуйте у одному рядку і не натискуйте
Під час виконання RGM та 80S відбувається ОЧИЩЕННЯ відеопам’яті. На випадок, коли це небажано, існує можливість встановлювати режим БЕЗ ОЧИЩЕННЯ відеопам’яті. Проведіть модифікацію словникових статтей RGM та 80S з метою створення статтей RGM1 та 80SS , що не змінюватимуть стану відеопам’яті (без очищення).
Перенесіть текст екрану 1 звітового файлу у екран 2 звітового файл (скористайтесь у режимі редактору клавішами
замініть імена словникових статтей на RGM1 та 80SS, не порушуючи синтаксису коментарів (наявність обох дужок та пропуск після першої); у рядку перед командою переривання 10 INT розтащуйте фрагмент тексту
AL, # 80 OR
Цей фрагмент встановить у регістрі AL, де задають номер режиму, одиницю у сьомому розряді, що й призведе до модифікації команди. Після коригування завантажте екран 2 звітного файлу та проведіть тестування за допомогою такого ж рядка, як і під час тестування попередніх статтей. Вдале завершення можна констатувати у разі повернення до попереднього стану екрану після строкатої картини у графічному режимі. ЗВІДКИ СТРОКАТА КАРТИНА ?
Пояснення таке: очищена відеопам’ять для буквено-цифрового режиму не є очищеною для графічного режиму. Це тому, що чистий екран у буквено-цифровому режимі потребує у відеопам’яті сукупність байтів ASCII-кодів пропусків та байтів атрибутів, що визначають кольори фону та знаку.
Завдання 2. Побудова зображення звертанням до відеопам’яті
Найпростіше будувати зображення у режимах, у яких використовують у якості відеопам’яті тільки виділену частину ОЗП ПЕОМ. Це можливо у режимах, сумісних з тими, які підтримує відеоадаптер CGA. Наприклад, у режимі 4 відеопам’ять обсягом 16 Кб розташована у ОЗП у сегменті з адресою B8OOh. Режим 4 ( табл. 1-2 ) має екран 320х200 точок, 4 кольори, 2 палітри. Перший напівкадр, що складається з рядків з парними номерами відображується з відеопам’яті із зсувом від 0000 до 1FFFh, другий напівкадр (непарні номери рядкїв) із зсувом від 2000h до 3FFFh. Кожен байт несе інформацію для чотирьох послідовно розташованих у рядку точок.
На кожну точку припадає 2 біти, що дозволяє записати один з 4-х варіянтів дворозрядних кодових комбінацій, тобто, призначити точці один з чотирьох кольорів. Оскільки у Форт-системі є засоби для записування у ОЗП в будь-який сегмент байтів та слів (2 байти), скористаймося для експерименту цими засобами. Перенесіть у екран 3 звітного файлу наступний текст, завантажте екран та натискуйте
( У екран 3.) 4 RGM 2 BASE ! ( Режим 4 та двійкова система. )
101010101010101 HEX B800 0 !L ( На екран 8 блакитних точок)
WAIT HEX 5A55 B800 DECIMAL 80 !L ( нижче ще 8 точок)
WAIT HEX AA55 B800 DECIMAL 160 !L ( нижче ще 8 точок)
WAIT HEX AA5A B800 DECIMAL 240 !L ( нижче ще 8 точок)
( Далі 4 рядки другого напівкадру)
WAIT HEX 5655 B800 DECIMAL 8192 0 + !L ( 1 малинова серед 8)
WAIT HEX 6A55 B800 DECIMAL 8192 80 + !L ( нижче ще 8 точок)
WAIT HEX AA56 B800 DECIMAL 8192 160 + !L ( нижче ще 8 точок)
WAIT HEX AA6A B800 DECIMAL 8192 240 + !L ( нижче ще 8 точок)
WAIT HEX FF B800 DECIMAL 400 C!L ( 4 білих точки )
WAIT HEX C3 B800 DECIMAL 8192 400 + C!L ( нижче ще 2 точки)
WAIT HEX C3 B800 DECIMAL 480 C!L ( нижче ще 2 точки)
WAIT HEX C3 B800 DECIMAL 8192 480 + C!L ( нижче ще 2 точки)
WAIT HEX FF B800 DECIMAL 560 C!L ( нижче ще 4 точки)
WAIT 80S .( Кінець експерименту)
З’ясуйте спосіб кодування та відредагуйте екран 3 так, щоб від двокольорового прямокутника залишився лише контур ( або інша частина за завданням викладача). ЯКЩО ПІД ЧАС СПРОБ ВИНИКНУТЬ СИНТАКСИЧНІ ПОРУШЕННЯ І СИСТЕМА НАМАГАТИМЕТЬСЯ ВИДАТИ ВАМ ТЕКСТОВЕ ПОВІДОМЛЕННЯ, ТА НЕ ЗМОЖЕ, ПЕРЕБУВАЮЧИ У ГРАФІЧНОМУ РЕЖИМІ, ВИХІД У ДІАЛОГ ТАКИЙ: БАГАТОРАЗОВО НАТИСНІТЬ
Зауважимо, що звертання до відеопам’яті у 16-кольорових режимах відеоадаптеру EGA досить складне, але забезпечує більшу швидкість обміну, ніж інші способи обміну.
Завдання 3. Створення засобів для виводу точок на екран з використанням BIOS
Підготуйте словникові статті для записування точок (пікcелів) на екрані (PXWR) та для виводу кольорової лінії обрамлювання робочого поля екрану (OBR).
Перенесіть наступний текст у екран 4 звітного файлу та завантажте екран.
( У екран 4. PXWR, OBR та OBR16 )
( PXWR, cловникова стаття для записування пікселу або точки)
( Стек: C X Y -> C-номер кольору, X,Y - координати пікселу.)
( Діапазон X та Y для режиму 4: X= 0 - 319, Y= 0 - 199 )
HEX CODE PXWR DX POP CX POP AX POP ( Перенесення параметрів)
( C,X,Y із стеку на регістри DX, CX, AX )
AH, # C MOV ( Встановлення операції записування пікселу )
BH, # 0 MOV ( Встановлення номеру сторінки відеопам’яті “0”)
10 INT NEXT, END-CODE ( Звернення до підпрограми BIOS, кінець)
OB 3 PICK RGM DUP 0 DO 2 PICK 2 PICK 1 - I PXWR 2 PICK 0 I
PXWR LOOP OVER 0 DO 2 PICK I 0 PXWR 2 PICK I 2 PICK 1 - PXWR
OBR 320 200 OB ; : OBR16 640 350 OB ;
.( PXWR,OBR,OBR16 - ЗАВАНТАЖЕНІ) CR
Тестування словникової статті PXWR проведіть за допомогою рядка
DECIMAL 4 RGM 3 160 100 PXWR WAIT 80S
Має з’явитися яскрава біла точка посередині екрану. Щоб запобігти появі помилок під час набору довгих тесто вих рядків, можна скопіювати текст з рядком у екран звітового файлу, який не буде використовуватися (наприклад, з номером 30), видалити зайвий текст і тоді для проведення експерименту треба лише завантажити екран 30. Перевірте можливість проведення експерименту саме у такий спосіб.
Тестування словникової статті OBR допоможе з’ясувати стандартну таблицю кодування кольорів у режимах 4 та 13. Рядок 4 3 OBR виведе рамку з кольором номер 3 у режимі 4. Змінюючи номери кольору та режиму, з’ясуйте кольори і запишіть назви кольорів для обох режимів у екрані 5 звітного файлу у формі таблиці. Ваші результати можуть не співпадати з даними табл. 1-4. Наступний рядок продемонструє, яку частину екрану у режимі 16 з параметрами растру 640х350 обрамовує слово OBR, яке розраховане для режимів з номерами 4 та 13.
16 14 OBR
Проведіть експерименти також з режимами 6 та 14, які згідно табл. 1-2 мають параметри точкового растру 640х200.
Завдання 4. Встановлення кольору фону та палітри
Підготуйте у екрані 6 звітного файлу текст словникової статті для встановлення кольору фону і палітри. Така функція для режиму 4 потребує у регістрі AH число Bh (код функції), у регістрі BH - номер палітри, у регістрі BL - номер кольору фону. Словникова стаття FONPAL встановлює колір фону та/або варіант палітри.
( У екран 6. FONPAL - встановлення фону та палітри)
HEX CODE FONPAL AH, # B MOV BX POP
10 INT NEXT, END-CODE DECIMAL
.( FONPAL - ЗАВАНТАЖЕНО) CR
Тестування словникової статті FONPAL проведіть за допомогою тексту поданого нижче. У тексті запрограмовано вивід на екран строкатої картини, потім без зміни картини натисненням
HEX
4 RGM1 WAIT 100 FONPAL WAIT 101 FONPAL WAIT 005 FONPAL WAIT 80S
DECIMAL
Завдання 5. Відображення функції двох змінних
Якщо колір точок вважати значенням третьої координати, то можливе відображення функції двох змінних С=f(X,Y). Кольорова картина дає змогу вивчати особливості функцій. Неважко одержати зображення поверхні в лініях рівня, що використовують у картографії. Перенесіть у екрани 7 та 8 звітного файлу поданий нижче текст демонстраційної програми та завантажте екран 7. Математичні вирази для обчислення С (номеру кольору) виводяться на екран перед показом картини. У одному з виразів є помилка і картина не відповідає виразу. Визначить, який з виразів C1,…C4 є помилковий та занесіть ліву частину виразу у ті коментарні дужки, що розташовані у кінці тексту екрану 8. Для пуску програми завантажуйте тільки екран 7.
( У екран 7. Графічний режим 13, 320X200, 16 кольорів. )
( Словникова стаття для фарбування екрану пікселами з чергу- )
POLE 320 0 DO 200 0 DO I 15 MOD 1 + J I PXWR LOOP LOOP ;
POLE1 320 0 DO 200 0 DO I J - ABS 2 / J I PXWR LOOP LOOP ;
POLE2 320 0 DO 200 0 DO I J + 5 / 16 MOD J I PXWR LOOP LOOP ;
POLE3 320 0 DO 200 0 DO I J + 15 / J I PXWR LOOP LOOP ;
POLE4 320 0 DO 200 0 DO I J * 515 / J I PXWR LOOP LOOP ;
POLE5 320 0 DO 200 0 DO I I J * * 15000 /
POLE6 320 0 DO 200 0 DO I I * J J * + 550 / 16 MOD J I PXWR
POLE7 320 0 DO 200 0 DO I 100 - DUP * J 160 - DUP * + 500 /
POLE8 320 0 DO 200 0 DO I 100 - DUP * J 160 - DUP * + 100 /
16 MOD J I PXWR LOOP LOOP ; –> ( продовження у екр.8)
( У екран 8. Продовження програми. ) : UU CR
.” ПОСЛЯ НАТИСКАННЯ КЛАВІШІ БУДЕ ВИВЕДЕНА КОЛЬОРОВА КАРТИНА” CR
.” НОМЕР КОЛЬОРУ ВІДПОВІДАЇ ВИРАЗУ: “ ;
80S UU .( C1= ABS[X-Y]/2 ) 300 500 BEEP KEY DROP
13 RGM POLE1 400 500 BEEP KEY DROP
80S UU .( C2= [[X*Y]/15]MOD4 ) 700 500 BEEP KEY DROP
13 RGM POLE3 800 500 BEEP KEY DROP
80S UU .( C3=[[X2+Y2]/550]MOD16 ) 1100 500 BEEP KEY DROP
13 RGM POLE6 1200 500 BEEP KEY DROP
80S UU .( C4=[[X*2+Y**2]/500]MOD16 ) 1100 500 BEEP KEY DROP
13 RGM POLE5 1000 500 BEEP KEY DROP 80S
CR .( КІНЕЦЬ ДЕМОНСТРАЦІ°) FORGET POLE ( )
Завдання 6. Створення засобів для побудови кіл
Двовимірний простір площини екрану є анізотропний, бо горизонтальний та вертикальний шаги є різні. Але для режимів 4,13,16 відеоадаптеру відношення шагів горизонтального до вертикального є однакове і дорівнює 5/6. Для того, щоб запобігти викривленням, потрібне відповідне коригування координат точок. З’ясуємо характер викривлень та можливість їх усунення на прикладі такої фігури, як коло. Поданий нижче текст здійснює побудову кола за методом оцінної функції. Під час побудови кола кожен можливий крок на прямокутній сітці точок оцінюють на наближення до рівняння (X-XC)2 + (Y-YC)2 = R**2 (Тут ** - знак піднесення до степеня). Здійснюють крок, який дає найменьше відхилення. Перенесіть текст у екран 9 звітного файлу та завантажте його.
( У екран 9. Словникова стаття OKR1 для побудови кола. )
OKPR1 2DUP 7 PICK + SWAP 8 PICK + SWAP 9 PICK 0 SWAP
2OVER PXWR DROP 2DROP ; : ITER1 BEGIN 3 PICK 2 PICK +
DUP * >R 0 OVER + ( 6 * 5 / ) DUP * R> +
5 PICK - ABS >R 0 2 PICK +
DUP * >R 2 PICK OVER + ( 6 * 5 / ) DUP * R> +
5 PICK - ABS R> < IF 2 PICK + OKPR1 ELSE SWAP 3 PICK + SWAP
OKR1 4 0 DO I 0 = IF DUP DUP * SWAP NEGATE 1 SWAP 1 SWAP
0 THEN I 1 = IF >R >R NEGATE R> R> THEN
I 2 = IF >R >R >R NEGATE R> R> R> THEN
I 3 = IF >R >R NEGATE R> R> THEN
ITER1 LOOP 2DROP 2DROP DROP 2DROP DROP ;
.( OKR1 - ЗАВАНТАЖЕНО) CR
Тестування словникової статті проведіть за допомогою рядка
DECIMAL 13 RGM 5 100 100 80 OKR1 WAIT 80S
Виконання рядка має відобразити на екрані коло з радіусом 80 точок, з центром у точці (100,100). Але коло виглядатиме, як еліпс. Скоригуємо текст статті OKR1 з метою усунення викривлень. Перенесіть текст статті OKR1 з екрану 9 у екран 10 та змініть назви статтей OKR1 на OKR, ITER1 на ITER, OKPR1 на OKPR, не залишаючи жодного входження без зміни. Фрагменти “( 6 * 5 / )”, яких у тексті два, залиште без дужок. Завантажте екран 10 та проведіть тестування OKR за допомогою рядка
DECIMAL 13 RGM 9 100 100 80 OKR1 WAIT 14 100 100 80 OKR WAIT 80S
На екран буде виведено коло до коригування та коло після коригування, яке буде іншого кольору.
Проведіть експерименти та з’ясуйте, як реагує відеоадаптер на вихід кола за межі точкового растру у режимах 13 та 16. Чи однакова реакція на вихід за горизонтальні та за вертікальні (а також за обидві) межі ? Результати спостережень запишіть у екран 11 звітного файлу.
Завдання 7. Створення засобів для зображення кругів
Підготуйте словникову статтю для зображення кругів шляхом побудови концентричних кіл із зростаючим радіусом. Перенесіть наступний текст у екран 12 звітного файлу та завантажте екран.
( У екран 12.Словникові статті LKJ,LKJ3 для побудови кругів )
( На стеку C XC YC RMAX RMIN -> ; С-колір, XC,YC-коорд.центру)
( RMAX,RMIN-радіуси максимальний та мінімальний )
LKJ DO 2 PICK 2 PICK 2 PICK I OKR I 10 / FONPAL I 8 / 80 *
LKJ3 DO 2 PICK 2 PICK 2 PICK I OKR1 LOOP DROP ;
.( LKJ та LKJ3 - ЗАВАНТАЖЕНІ) CR
Тестування словникових статтей проведіть за допомогою тексту
DECIMAL
13 RGM 5 160 100 40 1 LKJ3 WAIT 8 160 100 90 40 LKJ WAIT 80S
Після першого натискування
Перенесіть наступний текст у екран 13 звітового файлу та завантажте екран.
( У екран 13. LKJ1 - словникова стаття для побудови кругів. )
LKJ1 OVER DUP * OVER DUP * 5 PICK 4 PICK 2DUP -
R + R> 6 PICK 6 PICK 2DUP - >R + R>
DO 2DUP DO
I 8 PICK - ABS DUP *
J ( 6 * 5 / ) 8 PICK - ABS DUP * +
4 PICK OVER > >R
3 PICK OVER < >R DROP R> R> AND
IF 8 PICK I J PXWR THEN LOOP LOOP
2DROP 2DROP 2DROP 2DROP DROP ;
.( LKJ1 - ЗАВАНТАЖЕНО) CR
Тестування словникової статті проведіть за допомогою тексту
DECIMAL
13 RGM 5 160 100 40 1 LKJ1 WAIT 8 160 100 90 40 LKJ1 WAIT 80S
Порівняйте швидкість побудови круга за допомогою статті LKJ3 та за допомогою статті LKJ1, шляхом проведення відповідних експериментів. Результат запишіть у екран 14 звітного файлу. Виконайте демонстраційну програму побудови кругів. Для цього перенесіть наступний текст у екран 15 звітного файлу та завантажте екран.
( У екран 15. Демонстрація побудови кругів )
DECIMAL ( Використано LKJ)
13 RGM 7 160 100 150 1 LKJ 6 110 50 40 38 LKJ
6 210 50 40 38 LKJ 6 130 120 15 1 LKJ 6 160 115 20 1 LKJ
6 190 120 15 1 LKJ 12 160 145 7 1 LKJ 12 153 148 9 1 LKJ
12 167 148 9 1 LKJ 12 146 148 6 1 LKJ 12 174 148 6 1 LKJ
12 138 148 2 1 LKJ 12 182 148 2 1 LKJ
0 110 70 20 1 LKJ 0 210 70 20 1 LKJ WAIT 80S
( Використані LKJ1 та LKJ3)
DECIMAL 13 RGM
4 110 100 30 1 LKJ1 6 150 50 45 5 LKJ3 7 180 120 79 4 LKJ1
10 150 180 65 1 LKJ 12 80 100 45 5 LKJ 8 150 80 25 1 LKJ3
14 10 100 95 5 LKJ1 WAIT 80S
З метою можливого у подальшому відновлення словника Форт-системи, яке знадобиться після перезавантаження ПЕОМ, треба підготувати у екрані 16 наступний текст.
( Завантажувальний екран 16 для ЗАВАНТАЖЕННЯ 1 )
DECIMAL
1 LOAD 2 LOAD 4 LOAD 6 LOAD 9 LOAD 10 LOAD 12 LOAD 13 LOAD
7 cba!
.( ЗАВАНТАЖЕННЯ 1 ЗАВЕРШЕНЕ) 12 cba! CR
Після пуску Форт-системи треба виконати 16 LOAD . Це відновить у словнику всі словникові статті, що з’явились під час виконання експериментів 1.3.1.-1.3.7 . Це потрібно робити, бо згадані словникові статті використовуються у наступних експериментах.
Завдання 8. Створення засобів для виводу точок на екран з модифікацією кольору (а не заміною)
Підготуйте словникову статтю з іменем PXWR1, що відрізняється від статті PXWR тим, що під час її виконання відбувається не записування коду кольору у відеопам’ять, а модифікація того коду , що був у пам’яті, шляхом підсумовування розрядами (XOR) того коду , що був у відеопам’яті, та того, що задано . Засобами BIOS можлива саме така модифікація кольору, а звертанням до регістрів відеоадаптеру крім такої можливі інші логічні операції над двійковими кодами номерів кольору. Перенесіть текст екрану 4 звітного файлу у екран 17 та відредагуйте текст, а саме:
AL, # 80 OR
За допомогою цієї команди старший розряд регістру AL набуває значення “1”, що забезпечує інший режим звертання до відеопам’яті. Для зсуву рядків униз натисніть
( У екран 18. Тестування словникової статті PXWR1 )
LLL 15 0 DO 300 0 DO I 19 / I 10 + 40 J + PXWR LOOP LOOP ;
LNN 50 0 DO 120 0 DO 14 I 120 + 100 J + PXWR1 LOOP LOOP ;
LNN1 60 0 DO 90 0 DO 12 I 180 + 90 J + PXWR1 LOOP LOOP ;
LNN2 80 0 DO 60 0 DO 11 I 150 + 80 J + PXWR1 LOOP LOOP ;
LNN3 45 0 DO 160 0 DO 13 I 100 + 120 J + PXWR1 LOOP LOOP ;
13 RGM LLL
LNN WAIT LNN1 WAIT LNN2 WAIT LNN3 WAIT LNN2 WAIT
LNN1 WAIT LNN WAIT LNN3 LLL 80S FORGET LNN .( ЗАВЕРШЕНО)
( На жовтий прямокутник накладено червоний, далі на обидва )
( накладено блакитний, а на всі пурпурний, потім повторюванням)
( накладень повертаємо попереднє забарвлення. У верхній части-)
( ні екрану - прямокутник з усіма кольорами станд. палітри. )
Завдання 9. Спостереження за побудовою кругів з модифікацією кольору
Використання модифікації кольору дозволяє виявити факт неодноразового виводу пікселу, що іноді потрібно при налагодженні програм. Разом з тим це гарантує появу нових візерунків, як це можна бачити з наступної демонстраційної програми. Перенесіть наступний текст у екрани 19 та 20 звітного файлу та завантажте екран 19.
OKPR2 2DUP 7 PICK + SWAP 8 PICK + SWAP 9 PICK 0 SWAP
2OVER PXWR1 DROP 2DROP ; : ITER2 BEGIN 3 PICK 2 PICK +
DUP * >R 0 OVER + 6 * 5 / DUP * R> + 5 PICK - ABS >R
0 2 PICK + DUP * >R 2 PICK OVER + 6 * 5 / DUP * R> +
5 PICK - ABS R> < IF 2 PICK + OKPR2 ELSE SWAP 3 PICK + SWAP
OKR2 4 0 DO I 0 = IF DUP DUP * SWAP NEGATE 1 SWAP 1 SWAP
0 THEN I 1 = IF >R >R NEGATE R> R> THEN
I 2 = IF >R >R >R NEGATE R> R> R> THEN
I 3 = IF >R >R NEGATE R> R> THEN [ DECIMAL ]
LKJ2 DO 2 PICK 2 PICK 2 PICK I OKR2 I 10 / FONPAL LOOP
DROP ; –>
LKJ4 OVER DUP * OVER DUP * 5 PICK 4 PICK 2DUP -
R + R> 6 PICK 6 PICK 2DUP - >R + R> DO 2DUP DO
I 8 PICK - ABS DUP * J ( 6 * 5 / ) 8 PICK - ABS DUP * +
4 PICK OVER > >R 3 PICK OVER < >R DROP R> R> AND IF 8 PICK
I J PXWR1 THEN LOOP LOOP 2DROP 2DROP 2DROP 2DROP DROP ;
( Демонстрація побудови кругів з модифікацією кольору)
DECIMAL 13 RGM 2 100 100 50 OKR1
4 110 100 30 1 LKJ2 6 150 50 45 5 LKJ2 7 180 120 79 4 LKJ2
10 150 180 65 1 LKJ2 12 80 100 45 5 LKJ2 8 150 80 25 1 LKJ2
14 10 100 95 5 LKJ2 WAIT 80S
DECIMAL 13 RGM 5 100 110 80 0 LKJ4 5 150 110 80 0 LKJ4
4 110 100 30 1 LKJ4 6 150 50 45 5 LKJ4 7 180 120 79 4 LKJ4
10 150 180 65 1 LKJ4 12 80 100 45 5 LKJ4 8 150 80 25 1 LKJ4
14 10 100 95 5 LKJ4 WAIT 80S .( ЗАВЕРШЕНО) FORGET OKPR2
Завдання 10. Створення засобів для зміни окремих кольорів палітри
Номер кольору (0-15 для режимів 13, 14 та 16) є номер регістру палітри, у якому зберігається код кольору. Код кольору це шестирозрядне двійкове число, розряди якого визначають наявність червоної (R), зеленої (G) та синьої (B) складових кольору відповідної інтенсивності згідно табл. 3. Перенесіть у екран 21 звітного файлу наступний текст словникової статті USTC для записування нових кодів кольору у регістри палітри та завантажте екран 21.
( У екран 21. Cловн. стаття USTC для зміни кольору палітри)
( Стек: N -> N - у молодшому байті номер регістру палітри,)
( у старшому байті - код кольору)
HEX CODE USTC BX POP AX, # 1000 MOV 10 INT NEXT, END-CODE
DECIMAL .( USTC - ЗАВАНТАЖЕНО) CR

Проведіть випробування словникової статті USTC. Замініть зелений колір стандартної палітри (регістр 2) на яскраво-червоний, відсутній у стандартній палітрі (код кольору 24h), а синій (регістр 1) на фіолетовий, також відсутній у стандартній палітрі (код кольору 0Dh). Для цього перенесіть наступний текст у екран 22 звітного файлу завантажте екран 22 та спостерігайте за зміною кольорів палітри після натискань
( У екран 22. Тестування словникової статті USTC )
LLL1 91 0 DO 500 0 DO I 31 / I 60 + 120 J + PXWR LOOP LOOP ;
CLEARSCREEN 16 RGM 80S
16 RGM1 LLL1 WAIT HEX 2402 USTC WAIT 0D01 USTC WAIT 80S DECIMAL
FORGET LLL1
Якщо повторити тестування, то можна переконатися, що встановлення графічного режиму 16 відновлює стандартну палітру. Коди кольорів стандартної 16-кольорової палітри відеоадаптеру EGA наведені у таблиці 4. Користуючись таблицею 4, коригуйте текст екрану 22 так, щоб встановити блакитний колір фону (номер регістру палітри 0). Доведіть, або спростуйте тезу про те, що НАКЛАДАННЯ КОЛЬОРІВ СТАНДАРТНО° ПАЛІТРИ (при накладанні за допомогою PXWR1 код нового кольору є результат підсумовування розрядами попереднього та заданого кодів кольорів) НЕ ВИВОДИТЬ КОЛІР З МНОЖИНИ КОЛЬОРІВ СТАНДАРТНО° ПАЛІТРИ. Підстави для висновків розмістіть у екрані 22 звітного файлу у формі коментарів, які б не заважали завантаженню екрану.

Завдання 11. Перегляд всіх кольорів дисплею
Встановлюючи всі можливі коди кольорів, можна переглянути можливі кольори дисплею, але водночас на екрані можуть перебувати тільки 16 з 64-ох. Наступна програма кожного разу після натискання
( У екран 23. Перегляд кольорів дисплею)
LLL1 91 0 DO 500 0 DO I 31 / I 60 + 120 J + PXWR LOOP LOOP ;
L-L 4 0 DO 16 0 DO 15 31 I * 65 + J 8 * 215 +
15 0 DO 2 PICK 2 PICK I + 2 PICK PXWR LOOP DROP DROP DROP
J 16 * I + 256 * I + USTC WAIT LOOP LOOP ;
16 RGM LLL1 L-L 80S FORGET LLL1
( Натисканням
( код кольору та під кольоровим прямокутником, де можливо )
( змінено колір, ставимо курсор-позначку. Ї можливість спів-)
( ставлення кольору та коду кольору. )
Для заданого викладачем коду кольору, користуючись таблицями 3, 4 та законами змішування світла різних кольорів, спробуйте визначити колір, що відповідає коду. Доведіть правоту завантаженням екрану 23 та демонстрацією відповідного кольору викладачу.
Завдання 12. Створення засобів записування зображень у різні сторінки відеопам’яті та засобів призначення активної сторінки
Процес формування зображень на екрані не завжди бажано показувати користувачеві, тому використовують можливість формування зображення у одній сторінці відеопам’яті під час перегляду іншої. Мінімально потрібні 2 сторінки, але при наявності зайвої пам’яті їх не заважає мати більше, про що свідчать дані таблиці 2. У графічних режимах є можливість “перегортання” сторінок, а у текстових режимах, є також можливість переміщення початку сторінки у відеопам’яті.
Поданий нижче текст містить визначення для словникових статтей PXWR2, SPG та 8STR. Перша на відміну від PXWR та PXWR1 потребує на стеку ще й номер сторінки відеопам’яті. Друга потребує на стеку номер сторінки, яку бажаємо бачити на екрані. За замовчанням у якості активної встановлюється сторінка з номером 0. Перенесіть поданий нижче текст у екрани 24, 25, 26 звітного файлу та завантажте екрани 24 та 25. Після тривалого формування зображення натисканням
( У екран 24. PXWR2,SPG та 8STR для записування точок у різні)
( сторінки, для призначення активної сторінки та перегортання)
( PXWR2 Стек: N C X Y -> N-номер сторінки, C-номер кольору,)
( X,Y-координати точки. )
HEX CODE PXWR2 DX POP CX POP AX POP BX POP ( перенесення )
( N,C,X,Y із стеку на регістри BX DX CX AX )
AH, # C MOV ( встановлення операції “записування” точки )
BH, BL MOV ( встановлення номеру сторінки )
10 INT NEXT, END-CODE ( звернення до BIOS та завершення )
( SPG для призначення активної сторінки. Стек: N-номер стор. )
CODE SPG AX POP AH, # 5 MOV 10 INT NEXT, END-CODE DECIMAL
8STR 0 BEGIN DUP SPG 1 + 8 MOD KEY 27 = IF DROP EXIT THEN
AGAIN ; .( PXWR2, SPG, 8STR - ЗАВАНТАЖЕНІ) CR
POLE 320 0 DO 200 0 DO 2 I 15 MOD 1 + J I PXWR2 LOOP LOOP ;
POLE4 320 0 DO 200 0 DO 1 I J * 515 / J I PXWR2 LOOP LOOP ;
POLE5 320 0 DO 200 0 DO 3 I I J * * 15000 /
POLE6 320 0 DO 200 0 DO 7 I I * J J * + 550 / 16 MOD J I
POLE7 320 0 DO 200 0 DO 4 I 100 - DUP * J 160 - DUP * + 500
POLE8 320 0 DO 200 0 DO 5 I 100 - DUP * J 160 - DUP * + 100 /
POLE9 200 0 DO 320 0 DO 6 J 150 > IF 9 ELSE 10 THEN I J
POLE10 200 0 DO 320 0 DO 0 J 100 > IF 14 ELSE 11 THEN I J
PXWR2 LOOP LOOP ; –>
( У екран 26. Експеримент з перегортанням сторінок. Після фор-)
( мування зображення кожної сторінки подається звуковий сигнал)
( та кольоровий круг на екрані, після завершення формування - )
( більш протяжний сигнал. Далі натисканням
( мо сторінки. Вихід -
DECIMAL : LLL 40 15 0 LKJ1 ; 13 RGM POLE 1 30 LLL ALARM POLE4 2
60 LLL ALARM POLE5 3 90 LLL ALARM POLE6 4 120 LLL ALARM POLE7 5
150 LLL POLE8 6 180 LLL ALARM POLE9 7 210 LLL SIREN 8 240 LLL
SIREN 8STR 9 270 LLL WAIT 2 80S DECIMAL
На завершення роботи створіть завантажувальний екран 27 з поданим нижче текстом, що забезпечить завантаження всіх напрацювань. Це зробить доступним для демонстрації будь-який експеримент з проведених під час виконання роботи.
( Завантажувальний екран 27 для ЗАВАНТАЖЕННЯ 2 )
DECIMAL
16 LOAD 19 LOAD 21 LOAD 24 LOAD
7 cba!
.( ЗАВАНТАЖЕННЯ 2 ЗАВЕРШЕНЕ) 12 cba! CR
Перевірте можливість завантаження за допомогою екрану 27. Для цього багаторазово виконайте рядок FORGET RGM, поки система повідомить, що RGM відсутня і вже нічого “забувати”. Цим відбулося видалення з пам’яті всіх напрацювань. Потім завантажте екран 27 та доведіть можливість демонстрації будь-якого експерименту з тих, що були приготовані. Ваш звітній файл та готовність продемонструвати експеріменти може бути підтвердженням виконання роботи з практичного вивчення графічних режимів відеоадаптеру.

СПИСОК ЛІТЕРАТУРИ
SuperVGA. Справочное пособие.-М.: АО “Звёзды и С”, 1992.
связь, 1993.- 192 c.: ил.
теров типа IBM PC, XT и AT: Пер. с англ./Предисл. Н. В. Гайско-
го. -М.: Финансы и статистика, 1992.- 544 c.: ил.
ных микроЭВМ: Учебное пособие.-К.: Выща шк., 1990.-207 с.: ил.
“ИСКРА 1031” Система программирования “АСТРОФОРТ”. Руководство
пользователя., Описание языка “Форт”. Глоссарий системы “Астро-
ФОРТ”. Фирменные материалы.
C.Й.Червонний. - К.: НМК ВО, 1991.- 68 c.
них комп’ютерів: Навч. посібник. - К., 1993. - 120.
кий словник з інформатики та обчислювальної техніки - Львів:
Світ. 1991. - 488 c.
обчислювальної техніки /Лінгв. ред. О.Р. Микитюк. - Львів: СП
“БаК”, 1995. - 304 с.
────────────────────────────────────────────────────────────────
К І Н Е Ц Ь М Е Т О Д И Ч Н И Х В К А З І В О К