Графикалық ақпаратты экран терминалына шығару


Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 23 бет
Таңдаулыға:
Жоспар
Графикалық ақпаратты экран терминалына шығару
BIOS видеодрайверінің графикалық мүмкіндіктері
Графикалық режимдегі програмалау есептері
EGA адаптері және оның бір бағыттағы басқару програмасы
Графикалық режимдегі EGA адаптерін тікелей програмалау есептері
1. Графикалық ақпаратты экран терминалына шығару
1. 1. BIOS видеодрайверінің графикалық мүмкіндіктері
EGA графикалық адаптер бұл екі графикалық беттің рұқсат етілген 640x350 түсті пикселді сақтаумен және бейнелеумен қамтамасыз етеді. Адаптер 64 түспен қамтамасыз етілген, бірақ экран бетіндегі бейнелер 16 түсті құрайды және олар оңай өзгереді. Машина іске қосылғанда стандартты палитра құрылады.
Барлық экрандағы фонды түс әртүрлі 16 түсті қабылдай береді және екі жақтағы беттің фоны бір уақытта өзгеріп отырады. Фонды түсті өзгертуге болады және ол экран бетіне шығарылған бейнені қозғамайды.
Еркін бейнелерден басқа, экран бетіне графикалық режимдегі мәтіндік ақпаратты әртүрлі DOS және BIOS функцияларын пайдаланып, экранға жолды символдарды шығаруға болады. Мысалы: INT 21h функциясы 40h немесе 09h функциялары арқылы, INT 10 функциясы 09h немесе 0Ah функцилары арқылы шығарады және т. б. функциялары арқылы шығарылады. Экрандағы жолды позициялау үшін BIOS драйверінің 02h функциясын пайдаланылады. Ол курсордың мәтіндік координаттарының орын орнатады және графикалық режимде шығарылмайды. Сондай-ақ экран бетіне шығарылған символдар графикалық және мәтіндік режим дәл сол орынға түседі. Мәтіндік жолға графикалық координаттың белгісімен шығаруға және бағыттарын өзгертуге болмайды. Символдардың кескін үйлесімі (конфигурация) кодты кестеден алынады. Басқа символдардың өлшемін немесе кескін бейнесін шығару үшін кодты кестені сәйкестендіріп дайындау керек немесе символды қолмен салу қажет. Кең көлемдегі белгіленген көптеген қолдаңбалы програмалардың
(TURBO PASCAL-дің графикалық жүйелері және PAINT BRUSH графикалық редакторы ) осындай тәсілдері бар.
Графикалық бейнелерді програмалау кезінде BIOS видеодрайверінің функциясын пайдалануға болады. Олар төмендегідей:
00h- видеорежимді орнату;
05h- видеопарақтарды орнату;
0ch- пикселді шығару;
0fh- видеорежимді алу;
10h, функция асты 00h- реңдік регистрді орнату;
10h, функция асты 01h- экрандағы шеткі түсті орнату;
10h, функция асты 02h- түрлі түсті регистрдің палитрасын орнату;
11h, функция асты 21h- графикалық режимде пайдаланушының кесте шрифтімен толтыру. Осы аталғандардан басқа көптеген шектеулі функциялар пайдаланылады. (мысалы графикалық позициядағы пикселді оқу)
00h функциясы видеожүие режиміне ауысып, қосуға рұқсат береді. Көлемі 256кб видеобуферлі EGA адаптерінін мәтіндік режимдегі коды- 03, ал графикалық режимдегі коды-10h.
Екі режимді де тұрақты пайдаланушы 0Fh функциясы ағымдағы арқылы видеорежимді (және де ағымдағы видеопарақты) анықтау керек және алынған нәтижеге байланысты ауыстырып қосу режимін немесе парақтарды бағалау қажет.
05h функциясы видеопарақты қосады. Парақтың нөмірі AL регистіріне кіргізіледі. 10h режимінде (EGA) 0-ші және 1-ші парақтарды пайдалануға болады. Сол басқа бейне белсенді парақты ауыстырып қосу кезінде жоғалып кетпейді, өйткені видеоадаптерде әрбір параққа арналған бөлек блокты жадылар бар. Сурет салу үшін жалғыз 0Ch- пикселді шығару функциясы қарастырылған. (еске түсірейік, DOS-та графиканы қолдайтын функция мүлдем жоқ ) . AL регистріне пиксел түсінің мәні, BH регистріне беттің нөмірі, CX және DX- X және Y регистрлеріне пиксел координаттарына лайықты жіберіледі. X-тің координатасы 0 ден 639 дейін, ал Y- тің координатасы 0 ден 349 дейін өзгереді. (0, 0) нүктесіндегі координатасы экранның сол жақтағы жоғарғы бұрышына сәйкес келеді.
Экрандағы пикселдердің түстері және фонның түстері регистрдің түстерінің ішіндегісімен беріледі және олар видеорежимінің палитрасымен анықталады. EGA адаптерінде 17 түсті регистрлер бар, олардың әрбіреуі 0 ден 63дейінгі 64 түсті кодты құра алады. 0 ден 15-ке дейінгі регистр пикселдің мүмкін болатын түстерін анықтаса, ал экрандағы рамка түсінің бүкіл жұмыс бөлігінің айналасын 16-шы регистрді анықтайды, бірақ бұл рама көрінбейді, өйткені, оған фонға сәйкес келетін түсті меншіктейді. Берілген програмадағы кодтың түсін (мысалы, 0Ch функциясы AL регистріне арналған) түс емес, экранға шығару кезіндегі берілген пикселдің пайдаланушы жүйесінің регистр түсінің нөмірі анықтайды.
Әрбір реңдік регистр 6 разрядтан тұрады және олар интенсивті қызыл, жасыл және көк түстерді араластырғанда керек түсті беріп, анықтайды. 2/3максимады интенсивті қызыл, жасыл және көк түстер 0-шы, 1-ші және 2-ші разрядқа, ал 1/3 интенсивті со түстер 3-ші, 4-ші және 5-ші разрядқа бекітілген.
Солайша, регистрде жазылған 1(К) -саны көк түсті, 2(Ж) -саны жасыл түсті, Ж(Ж+C) -көк-жасыл түсті, 9(к+К) -ашық-көк түсті, 7(Қ+К+Ж) -ақты, 63саны (қ+к+ж+Қ+К+Ж) -ашық ақ түстрді анықтайды.
Инициализацияау кезінде келесі сандар қатары енгізіледі:
Бұл тізім түрлі түсті стандартты палитраны құрайды. Програмадағы 6-шы түсті код экранға коңыр түсті бейнені шығарады. 6-шы регистрде 20 саны жазылғандықтан, ол қоңыр (қызыл мен жасыл араласқан) түсті анықтайды. Егерде 6-шы реңдік (цветовой) регистрге, мысалы, 40-ты жазып қойсақ, онда барлық 6-шы түсті кодқа ашық қызыл бейне шығарылады. 6-шы регистрдегі 12-ші сан жазуы экранға барлық қоңыр түсті нүктелерді малина(қызыл мен көк араласқан) түсіне ауыстырады.
Солайша, реңдік регистрлердің өзгеруі экрандағы түстердің бейнелерін тез арада ауыстыруға рұқсат береді. Мысалы: бейнені салқын көк-жасыл гаммаға немесе жылы қызыл сарыға ауыстыруға мүмкіндік береді. Стандартты палитраны қайта келтіру күйін автаматтандырылған проектеу жүйесінде және ғылыми-техникалық қосымшаларындағы географикалық картаны немесе көлемді бейнелерді кейде экранға шығару кезінде пайдаланылады. Реңдік палитраның өзгеру мүмкіндігі нортындық утилит пакетінде қарастырылған.
0-шы реңдік регистр фонның түсін анықтайды. Фонның түсі графикалық режимінде инициализацилау кезі видеобуфердің ұйымдарына 0 жазылып, экранға толтырылады. Солайша, бастапқы 0-шы код басқа түсті бейне кодымен ауыспай тұрғандағы экранның бөлігін фон деп атайды. Програмадағы көрсетілген 0-шы код түсі басқа элементтің бейнесін шығару кезінде фонның регистрлік жүйесін пайдалануға алып келеді, соның нәтижесінде сол элемент көрінбейтін болып шығады. Түрлі түсті фонға қара бейнені шығару үшін қандайда бір реңдік регистрге 0-ды жазу керек және бейне шығар алдында сол регистрдің нөмірін көрсету қажет. Сол арада түстерді ауыстырып қосу тез арада орындалады. BIOS құралымен пикселдерді шығару, процессордың жай жасау кезінде пикселмен бірнеше жүз микросекунд уақытты қажет етеді. Ал барлық экранды толтыру үшін 1-2 минутты қажет етуі мүмкін. Сондықтанда, графикалық пакеттер негізінде BIOS функциясымен емес, графикалық адаптермен жұмыс жасау тиімді.
1. 2. Графикалық режимдегі програмалау есептері
Есеп 1. 1. Экранға графикалық бейнені шығару. Графикалық режимді орнату және экранның ортасына түрлі түсті тіктөртбұрышты шығару. Програманы түзеткеннен кейін графикалық режимде шығарылған нүктенің жылдамдығын анықтау қажет.
- Програманың негізгі фрагменттері
- Draw (подфункция) тіктөртбұрышты қылып шығару
- Ішкі параметрлері- x, y, xsize, ysize, forcolor
- xcrnt, ycrnt бағыныңқы програмасын пайдаланып, осы айнымалыларды модифициалайды.
- Негізгі програманың басы
. . .
- Графикалық режимді орнату
- Тіктөртбұрышты пикселмен салу
. . .
- Call draw
- Прграманы тоқтау
. . .
- Мәліметтер алаңы
Есеп 1. 2. Реңдік палитраны оқу. Экранға 16 қатарлы төртбұрыштан мүмкін болатын түстердің (төртбұрышты 0-шы реңдік регистр анықтайды және ол көрінбейді ) шығару қажет. Төртбұрыштың ішіне түсі әртүрлі ұзын сызықты салу қажет және реңдік регистрдің нөмірі 1ден15 дейін көрсетілуі керек. Сонымен қатар, циклға 0, 1, 2, …63 дейінгі регистр сандарын кіргізіп, жоғарда айтылған сызықтың түсін өзгертіп отыру қажет. Бақылауға ыңғайлы болу үшін, біріншіден, циклды тоқтату програмасына күту пернесін басып қосу қажет, ал екіншіден, әрбір түстңі ауыстырар алдында модификация жасалынған реңдік регистрдің құрамын экранға шығару қажет. Програманы отладка жасап болғаннан кейін түстердің ауысып отыруын бақылап, модификацияланған реңдік регистрдің құрамын талдау қажет.
- Програманың негізгі фрагменттері
- Draw proc
- Тіктөртбұрыштың шығару бағыныңқы програмасы
. . .
- Draw endp
- Негізгі програманың басы
- Графикалық режимді орнату
- Тіктөртбұрышты пикселмен салу
- Ұзын сызықты салу. Бұл үшін пайдаланып отырған draw бағыныңқы програмасының параметрлер мәндерін өзгерту.
- Сызықты салу
- Call draw
- Програманы тоқтату
- Циклдың 4-ші регистріндегі 0 ден 63 дейінгі түсті ауыстыру
- Түстің нөмірің шығару үшін:
1. mes деген мәліметті шығару үшін мәтіндік курсорды қалаған жерге орнату.
2. түс нөмірінің адрес символына қайта құрастырылуы. Table кестесінде көрсетілген.
3. Экранға нөмірді шығару
- Түсті өзгерту
- Програманы тоқтату
. . .
- Мәліметтер алаңы
Символдық формада мүмкін болатын түстер нөмірлерінің кестесі
Көңіл бөліңіздер, төмендегі сандардың барлығы екі байттан орын алады.
Есеп 1. 3. Фонның түсін өзгерту. Экранға 16 қатарлы төртбұрыштан мүмкін болатын түстерді шығару. Циклға 0-ші регистрдегі 0, 1, 2, . . 63-ке дейінгі сандарды кіргізіп, фонның түсін өзгерту қажет. Мына бір нәрсеге мән беру қажет. Пикселмен салынған тіктөртбұрышты бейнелердің түсін, фонның түсімен салыстыру қажет. Мына бір нәрсеге мән беру қажет: ең сол жақтағы төртбұрыштың түсі О-ші регистрде берілгендіктен, ол фонның түсі қандай болсада ол көрінбейтін қалыпта қала береді.
- Программаның негізгі фрагменттері
- Тіктөртбұрыштың шығару бағыныңқы програмасы
- Негізгі програманың басы
- Графикалық режимді орнату
- Тіктөртбұрышты салу
- Програманы тоқтату
- Циклдағы фонның түсін 0-ден 63 дейін өзгерту.
- Түстің нөмірін шығару
. . .
- Програманы аяқтау
. . .
Есеп 1. 4. Реңдік гамманы өзгерту. Экранға 16 қатарлы тіктөртбұрышты мүмкін болатын түстерді шығару қажет. 10һ функциясы арқылы 02һ функцияастына тізбектей 4 әртүрлі палитраны беру қажет. Бір палитра, мысалы, көк гамманы құраса, келесісі қызылды, үшіншісі жасылды және төртіншісі сары гамманы құрай алады. әрбір палитрадағы фонның түсі және экранның шеткі жағындағы түсіті қара қылып өзгертуге болады (бұл жағдайда тек 60 түсті ғана шығаруға болады) .
- Тіктөртбұрышты шығару програмшасы
. . .
- Негізгі програманың басы
. . .
- Графикалық режимді орнату
. . .
- Стандартты палитра түстерімен тіктөртбұрышты салу
. . .
- Програманы тоқтату
- ES регистрін дайындау
- Реңдік палитраның көк түстерін орнату
- Програманы тоқтату
. . .
- Реңдік палитраның қызыл түстерін орнату
. . .
- Програманы тоқтату
. . .
- Реңдік палитраның сары түстерін орнату
. . .
- Програманы тоқтату
. . .
- Програманы аяқтау
. . .
- Мәліметтер алаңы
. . .
- Көк гамма
- Қызыл гамма
- Жасыл гамма
- Сары гамма
Есеп 1. 5. Графикалық режимде мәтінді шығару. Графикалық режимді және фонның түсін орнату қажет. Әртүрлі функциялар арқылы экранға мәтіндік жолдарды шығару.
- Програманың негізгі фрагменттері
- Графикалық режимді орнату
. . .
- Фонның түсін орнату (мысалы, көк)
- Мәтіндік курсорды орнату
- Дескриптор арқылы string жолды шығару
…
- Мәтіндік курсорды екі жолға төмен орнату
. . .
- BIOS құралы арқылы символды шығару
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz