ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Вiдеопамять укр
         

     

    Іноземна мова

    РЕФЕРАТ

    на тему "ВІДЕОПАМ'ЯТЬ"

    студента 1-го курсу

    Департаменту Комп'ютерних Технологій

    Національного Університету "Києво-Могилянська Академія"

    Ковальова Сергія

    Вступ

    Відеорежімі насамперед характеризуються типом (Алфавітно-цифровим, тобто текстовим, при якому екран поділяється на знакомісця, кожне з яких має такі властивості, як символ та кольорові атрибути; також дуже поширеним є графічний режим, при якому екран поділяється на пікселі, кожному з яких відповідає визначений колір з палітри). Я ж зупинюсь на текстовому режимі та поясню основні методи та засоби керування відеопам'ятью в цьому режимі засобами мови програмування низького рівню "Assembler".

    Треба сказати, що будь-який відеорежім характеризують такі параметри:

    роздільна здатність, тобто максимальна кількість пікселів, що можуть бути зображені на екрані по горизонталі та вертикалі;

    шириною (width) та висотою (height) знака, що висвічується на екрані; ці параметри підтримуються програмою знакогенератора та визначають максимальну кількість символів у рядку та рядків на екрані;

    максимальною кількістю кольорів, що одночасно висвічуються на екрані;

    діапазоном адресів оперативної пам'яті, яку займає відеопам'ять;

    максимальною кількістю відеосторінок ( "екранів"), що можуть міститися у відеопам'яті.

    Встановлення відеорежіма забеспечується програмами відео BIOS. Я наведу список таких відеорежімів:        Індекс режиму         Тип         Кількість кольорів         Макс. кількість сторінок         Текстовий формат         Поч. адреса відеопам'яті             0,1         Текст         16         8         40x25         B800             2,3         Текст         16         8 (CGA-4)         80x25         B800             4,5         АРА         4         1         40x25         B800             6         АРА         2         1         80x25         B800             7         Текст         Моно         8 (MDA-1)         80x25         B000             8         АРА         16         1         20x25         B000             9         АРА         16         1         40x25         B000             Ah         АРА         4         1         80x25         B000             Bh, Ch         Резерв для знакогенератора EGA             Dh         АРА         16         8         40x25         A000             Eh         АРА         16         4         80x25         A000             Fh         АРА         Моно         2         80x25         A000             10h         АРА         16         2         80x25         A000             11h         АРА         2         1         80x30         A000             12h         АРА         16         1         80x30         A000             13h         АРА         256         1         40x25         A000     

    В EGA існує п'ять текстових та сім графічних режимів. Текстові: 0-3 та 7. Режими 0-3 ідентічні режимам 0-3 у CGA. Режим 7 ідентічен режиму 7 монохромного адаптера MDA. Відеорежімі АРА 4-6 ідентічні в EGA та CGA. У відеорежімах АРА курсор не виводиться.

    Структура відеопам'яті у текстовому режимі

    Відеопам'ять у текстових режимах починається з адреси B800h (кольоровий дісплей) та B000h (монохромний). Під кожне знакомісце екрану у відеопам'яті відводиться 2 байти. Молодший байт (з парним зміщенням від початку відеопам'яті - 0, 2, 4 ...) містить код ASCII вісвітлюємого знаку. Старший байт (з непарними зміщенням) містить атрибут знаку, що визначає його кольорові.

    B800h

    |
           0         1         ... ... ... ...         158         159                     4000 байтів                     3840         3841         ... ... ... ...         3998         3999     

    Ця відеопам'ять з частотою від 50 до 70 разів на секунду (см. VERTICAL SCAN RATE далі) відображується на екрані, причому байти з парним зміщенням у відеопам'яті відображуються на екрані у вигляді відповідного символу (за допомогою програми знакогенератора). Слідуючі за ним непарні байти-атрибути задають кольори знаків, що зображуються.

    У байті-атрибуту 4 значущих поля:

    7-й біт: мерехтіння (blink)

    6,5,4-і біти: колір фону (background)

    3-й біт: інтенсивність (intensity)

    2,1,0-і біти: колір переднього плану (foreground)

    Для кольорового монітору, 3-бітовій код визначає один з 8 можливих кольорів. У монохромного моніторі можливі 3 біти кольору повинні обирати одне з наступних значень:        Біти         Кольори (за замовченням)         Монохромний             000         Чорний         Чорний             001         Синій         Підкреслення             010         Зелений                     011         Циан                     100         Червоний                     101         Магента                     110         Коричневий                     111         Білий         Білий     

    Треба відмітити, що у EGA/VGA, ці 3-бітові комбінації визначають не колір, а номер регістру палітри в атрібутному контролері. Вказані кольори отримуються лише у випадках, коли ці регістри мають стандартні 6-бітові значення. В усіх інших випадках, регістр палітри може бути заповненим будь-якою з 64 можливих комбінацій бітів, пов'язаних з деяким коліром.

    Крім того, у VGA, 6-бітове значення регістру палітри пов'язане лише з номером одного з 256 регістрів DAC (що безпосередньо керує коліром на екрані). Вказані кольори отримуються лише у випадку, коли ці регістри мають стандартні 18-бітові значення. В усіх інших випадках, регістр DAC може бути заповненим у будь-який з 262144 можливих комбінацій бітів, пов'язаних з деяким коліром. Основні характерісстікі екрана

    (DOT RSTE, HORIZONTAL (VERTICAL) SCAN RATE)

    Оновною характеристикою апаратних можливостей відеосистеми є швидкість виводу пікселів на екран (DOT RATE VIDEO або BANDWIDTH). Осцелятор, що візначеє цю швидкість, називається DOT CLOCK. чим вище DOT CLOCK, тим краща розділна здатність екрана. На роздільну здатність екрана впливають ще дві характеристики: швидкість виводу ліній на екран (HORIZONTAL SCAN RATE) та швидкість виводу екранів (VERTICAL SCAN RATE).

    Щоб підрахувати, наприклад, можливу кількість знаків в рядку екрана (HORIZONTAL TOTAL; див. регістри CRTC):

    DOT RATE

    Кількість точок в лінії =

    HORIZONTAL SCAN RATE;

    Кількість точок в лінії

    HORIZONTAL TOTAL =

    WIDTH;

    WIDTH (= ширина знака) визначається програмою знакогенератора. Значимі інтервали при переміщенні луча по екрану

    У програмуванні пристроїв відеосистеми велику роль відіграють специфічні інтервали часу, що виникають при переміщенні луча по екрану.

    Луч переміщується по екрану зліва направо та зверху униз. Інтервал часу, коли луч йде наліво називається HORIZONTAL RETRACE. HORIZONTAL RETRACE дорівнює приблизно 10-15% від часу HORIZONTAL SCAN RATE, тобто

    Кількість точок в лінії

    1

    HORIZONTAL RETRACE = (10-15% )

    HORIZONTAL SCAN RATE

    Під час інтервалу RETRACE промінь повинен бути відключен, щоб запобігти погіршення зображення на екрані (тому HORIZONTAL RETRACE називають також HORIZONTAL BLANKING). Але між відключенням луча та початком RETRACE (а також між включенням луча та кінцем RETRACE) проходить деякий час, поки луч ще включений, а активна область екрану вже скінчилася. Цей інтервал називають OVERSCAN. За його допомогою створюється "рамка" екрану.

    Аналогічні інтервали виникають при русі луча угору. Інтервал часу, коли луч іде угору, називають VERTICAL RETRACE. Час відключеного променя в RETRACE називають RETRACE BLANKING. Час включеного луча, що знаходиться у VERTICAL RETRACE, називають VERTICAL OVERSCAN. VERTICAL OVERSCAN може бути унизу (коли почався RETRACE, але луч ще не відключен), або угорі (коли RETRACE ще не скінчився, але луч вже включений).

    Адреса відео BIOS CGA, EGA, VGA

    Відео BIOS CGA знаходиться на материнській платі. При включенні комп'ютера, вектор переривання 10h ініціалізується так, щоб вказувати на відеопрограми BIOS в ROM. Ці програми починаються в адресному просторі CPU з адреси F000: E000.

    В EGA знаходиться своя множина відеопрограм в RAM. Вони розміщуються з адреси C000: 0000. Програма початкового завантаження (POST) ініціалізує вектор переривання 10h так, щоб він вказував на власні відеопрограми EGA. Адреса програми відео BIOS на материнській платі зберігається у векторі переривання 42h.

    У VGA програми відео BIOS розміщуються за адресою C000: 0000

    У доданку наводиться текст програми на мові Borland Pascal 7.0 з вставками на мові Assembler. Програма демонструє можливості керування зображенням за допомогою прямої адресації відеопам'яті.

    доданок. Лістінг програми, яка демонструє можливості керування відеопам'ятью.

    PROGRAM VideoMem_Demo; (Written by Kovalyov Serhii as attachment)

    (to report "Video Memory")

    USES

    CRT;

    VAR

    Cols: WORD;

    Rows: BYTE;

    PageSize: WORD;

    ActivePage: BYTE;

    VOffset: WORD;

    ChOff: WORD;

    J: BYTE;

    Dir: BOOLEAN;

    PROCEDURE ReadScreenProp; ASSEMBLER;

    ASM

    (Reading properties of Video Mode)

    PUSH DS

    MOV AX, 0040h

    MOV DS, AX

    MOV AX, DS: [004Ah]

    XOR BX, BX

    MOV BL, DS: [0084h]

    INC BL

    MOV DL, DS: [0062h]

    POP DS

    MOV Cols, AX

    MOV Rows, BL

    MUL BX

    MOV PageSize, AX

    MOV ActivePage, DL

    END;

    PROCEDURE ClearScreen; ASSEMBLER;

    ASM

    (Set cursor position)

    PUSH DS

    MOV AX, 0040h

    MOV DS, AX

    MOV BX, 0050h

    XOR DH, DH

    MOV DL, ActivePage

    ADD BX, DX

    ADD BX, DX

    MOV WORD PTR DS: [BX], 0

    POP DS

    (Clearing active page)

    MOV CX, PageSize

    XOR AX, AX

    XOR BX, BX

    MOV AL, ActivePage

    MOV BX, PageSize

    MUL BX

    MOV VOffset, AX

    MOV BX, VOffset

    MOV CX, PageSize

    MOV AX, 0B800h

    PUSH DS

    MOV DS, AX

    @ loop_label2:

    MOV WORD PTR DS: [BX], 0000h

    INC BX

    MOV WORD PTR DS: [BX], 000Fh

    INC BX

    LOOP @ loop_label2

    POP DS

    END;

    PROCEDURE PutSymbol (Character: CHAR; Attr: BYTE; PosX, PosY: BYTE); ASSEMBLER;

    ASM

    MOV CH, Attr

    MOV CL, Character

    XOR AX, AX

    MOV AL, PosY

    MOV BX, Cols

    ADD BX, BX

    MUL BX

    XOR BX, BX

    MOV BL, PosX

    ADD BL, PosX

    ADD AX, BX

    MOV ChOff, AX

    MOV BX, VOffset

    ADD BX, ChOff

    PUSH DS

    MOV AX, 0B800h

    MOV DS, AX

    MOV WORD PTR DS: BX, CX

    POP DS

    END;

    BEGIN

    Dir: = TRUE;

    ReadScreenProp;

    ClearScreen;

    (WriteLn (PageSize, '', VOffset, '', ActivePage, '', Cols, '', Rows, '', ChOff );}

    PutSymbol ( '', $ 0000,0,0);

    PutSymbol ( 'V', $ 1E, 3,1);

    PutSymbol ( 'I', $ 1E, 3,2);

    PutSymbol ( 'D', $ 1E, 3,3);

    PutSymbol ( 'E', $ 1E, 3,4);

    PutSymbol ( 'O', $ 1E, 3,5);

    PutSymbol ( 'M', $ 70,2,4);

    PutSymbol ( 'E', $ 02,3,4);

    PutSymbol ( 'M', $ 70,4,4);

    PutSymbol ( 'O', $ 70,5,4);

    PutSymbol ( 'R', $ 70,6,4);

    PutSymbol ( 'Y', $ 70,7,4);

    J: = 0;

    REPEAT

    IF Dir THEN PutSymbol ( '', $ 00, J-1, 11)

    ELSE PutSymbol ( '', $ 00, J +6,11);

    PutSymbol ( 'D', $ 0E, J, 11);

    PutSymbol ( 'C', $ 0E, J +1,11);

    PutSymbol ( 'S', $ 0E, J +2,11);

    PutSymbol ( 'S', $ 0E, J +3,11);

    PutSymbol ('-',$ 0E, J +4,11);

    PutSymbol ('1 ', $ 0E, J +5,11);

    IF (J0)

    THEN DEC (J)

    ELSE BEGIN

    Dir: = NOT Dir;

    END;

    Delay (120);

    UNTIL KeyPressed;

    ClearScreen;

    END.

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status