2850

Видеосистема компьютера

Домашняя работа

Информатика, кибернетика и программирование

Видеосистема компьютера Видеосистема компьютера включает в себя ряд аппаратных и программных средств, позволяющих получать на экране терминала изображения. К аппаратным средствам относятся монитор и видеоадаптер. К программным средствам относятся ср...

Русский

2012-10-20

54.5 KB

69 чел.

Видеосистема компьютера

Видеосистема компьютера включает в себя ряд аппаратных и программных средств, позволяющих получать на экране терминала изображения. К аппаратным средствам относятся монитор и видеоадаптер. К программным средствам относятся средства BIOS, операционной системы и графических библиотек для работы с изображениями.

Монитор – это устройство, воспроизводящее изображение на своём экране.

Видеоадаптер – это устройство, служащее для программного формирования графических и текстовых изображений и вывода их на экран монитора. Видеопамять – это участок памяти, в котором хранится циклически выводимое на экран изображение.

Консоль – это комбинация клавиатуры как устройства ввода и монитора как устройства вывода (обычно в текстовом режиме).

Пиксел – это минимальный элемент изображения монитора, которому может быть присвоен цвет.

Графический режим видеоадаптера – это режим, в котором имеется возможность индивидуального управления цветом каждого пиксела независимо от остальных пикселов. В графическом режиме каждому пикселу соответствует ячейка памяти, содержащая информацию о цвете пиксела.

Текстовый режим видеоадаптера – это режим, в котором минимальным элементом изображения является символ, занимающий на экране знакоместо определённого формата. Знакоместо – это матрица пикселов, в которой может быть изображен один символ из определённого набора.

Набор символов ограничен, каждый символ набора имеет собственный уникальный код. В памяти видеоадаптера хранится код символа и атрибуты, определяющие вид символа.

В текстовом режиме экран организуется в виде матрицы знакомест (текселов), образованной горизонтальными и вертикальными колонками.

Курсор – это индикатор позиции на экране, в которую будет вводиться (или выводиться) следующий символ.

Система координат экрана.

Система координат экрана показана на рисунке 1.

Рис.1

Точка O – точка начала координат экрана (левый верхний угол экрана), ее координаты для текстового режима (1,1), для графического режима (0,0). Стрелками показаны положительные направления соответствующих осей координат, максимальные значения координат зависят от технических свойств монитора или от установленного режима.

Работа в текстовом режиме видеоадаптера в ОС MS-DOS

Все функции управления консолью в текстовом режиме определены в файле conio.h.

void textmode(int mode);

Функция устанавливает текстовый режим видеоадаптера. Аргумент mode может принимать значение одной из следующих констант перечислимого типа text_modes, определённых в файле conio.h.

enum text_modes {

LASTMODE=-1,

BW40=0,

C40,

BW80,

C80,

MONO=7,

C4350=64 };

Окно – это прямоугольная область экрана, которую программа использует для ввода или вывода информации. При запуске программы исходное окно имеет размер всего экрана. Для текстового режима левый верхний угол окна имеет координаты (1,1).

void window (int left, int top, int right, int bottom);

Функция создает окно, которое становится активным, координаты левой верхней (left, top) и правой нижней (right, bottom) вершин окна являются абсолютными в системе координат экрана и передаются в качестве параметров. Если хоть одна координата задана неверно, то никакого действия не происходит. Если выполнение функции успешно, то все ссылки на текущие координаты делаются относительно этого окна. При создании окна координаты окна являются абсолютными величинами (совпадают с координатами экрана), поэтому вновь создаваемые окна могут перекрываться.

void clrscr(void);

Функция очищает активное окно, заполняет его цветом фона заданного окна и устанавливает курсор в левом верхнем углу окна.

void gotoxy(int x, int y);

Функция позиционирует курсор в заданные координаты относительно активного окна. Если хоть одна координата выходит за размер окна, никакого действия не происходит.

int wherex(void);

int wherey(void);

Функции возвращают координаты x и y текущего положения курсора соответственно.

void clreol(void);

Функция очищает строку с текущей позиции курсора до правой границы окна.

void delline(void);

Функция уничтожает строку, в которой находится курсор, а все строки, находящиеся под ней, поднимаются наверх.

void insline(void);

Функция вставляет пустую строку, а строка, в которой находится курсор, и строки, находящеся ниже, опускаются на одну позицию.

int cprintf(const char* format,…);

int cscanf(const char* format,…);

Функции осуществляют форматированный вывод и ввод из активного окна соответственно. Аргументы и возвращаемые функциями значения аналогичны аргументам и возвращаемым значениям функций printf() и scanf() соответственно.

int cputs(const char * str);

Функция осуществляет вывод строки в активное окно. В качестве аргумента она принимает указатель на начало строки. Возвращаемое значение – последний напечатанный символ. Если в строке присутствует escape-символ ‘\n’, функция осуществляет переход на новую строку не с начала строки, а с позиции старой строки.

char* cgets(const char * str);

Функция осуществляет ввод строки из активного окна. В качестве аргумента она принимает указатель на буфер, в который будет считана строка. При этом элемент str[0] должен содержать максимальную длину читаемой строки (включая нулевой байт). Функция читает с консоли строку, пока не встретит символ ‘\n’, либо не прочитает максимальное число символов, но выход из функции всё равно осуществляются при нажатии клавиши Enter. При выходе элемент буфера str[1] содержит число реально считанных символов. Введённая строка начинается в буфере с элемента str[2]. Таким образом, реально задействуется размер буфера str[0]+2. Возвращаемое значение – указатель на элемент str[2], то есть на строку.

void textcolor(int color);

Функция изменяет цвет печатаемого текста. Аргумент color может принимать значения от 0 до 15 и содержит код цвета. В файле conio.h определён перечислимый тип COLORS, содержащий константы, соответствующие цветам, а также макрос BLINK, имеющий значение 128 и соответствующий миганию.

enum COLORS {

BLACK,

BLUE,

GREEN,

CYAN,

RED,

MAGENTA,

BROWN,

LIGHTGRAY,

DARKGRAY,

LIGHTBLUE,

LIGHTGREEN,

LIGHTCYAN,

LIGHTRED,

LIGHTMAGENTA,

YELLOW,

WHITE };

#define BLINK 128

Чтобы сделать цвет мигающим, нужно применить побитовую операцию OR с макросом BLINK (color|BLINK).

void textbackground(int color);

Функция изменяет фон печатаемого текста. Аргумент color может принимать значения от 0 до 7 (из приведённой выше таблицы) и содержит код фона. Фон не может быть мигающим.

Организация видеопамяти при работе в текстовом режиме. Каждому знакоместу, отображаемому на экране, соответствуют 2 байта. В младшем байте по чётному адресу хранится код символа, в старшем байте по нечётному адресу – атрибуты символа. Байт атрибута имеет следующий вид.

7       6  5       4  3      2           1     0

Blink

Back

Back

Back

Symbol

Symbol

Symbol

Symbol

Blink – бит, содержащий признак мигания, Back – биты, содержащие код цвета фона, Symbol – биты, содержащие код цвета символа.

Цвет формируется смешением красного (Red), зелёного (Green) и синего (Blue). Байт атрибута будет выглядеть следующим образом

7       6  5       4  3      2           1     0

Blink

Red

Green

Blue

Bright

Red

Green

Blue

3 бит отвечает за яркость.

void textattr(int attr);

Функция позволяет задавать атрибуты выводимых символов. Аргумент – байт атрибутов символов.

void highvideo(void);

void lowvideo(void);

void normvideo(void);

Функция highvideo() устанавливает бит интенсивности в байте атрибутов, функция lowvideo() сбрасывает бит интенсивности, функция normvideo() восстанавливает стандартные атрибуты.

Изменения атрибутов текста влияют только на выводимый текст, но не влияют на уже выведенный текст.

void _setcursortype(int cursortype);

Функция устанавливает вид курсора в зависимости от параметра функции. В файле conio.h описаны следующие макросы, задающие вид курсора.

Имя макроса

Числовое значение

Вид курсора

_NOCURSOR

0

Курсор не виден

_SOLIDCURSOR

1

Курсор занимает всё знакоместо

_NORMALCURSOR

2

Курсор имеет стандартный вид

void gettext(int left, int top, int right, int bottom, void* destin);

void puttext(int left, int top, int right, int bottom, void* source);

void movetext(int left, int top, int right, int bottom, int destleft, int desttop);

Функция gettext() копирует часть экрана, заданную первыми четырьмя параметрами, в массив, адрес которого передаётся параметром destin. Размер массива должен быть 2*(bottom-top)*(rigth-left) байтов.

Функция puttext() печатает в область экрана, заданную первыми четырьмя параметрами, образ экрана из массива, адрес которого передаётся параметром source. Размер массива должен быть 2*(bottom-top)*(rigth-left) байтов.

Функция movetext() копирует область экрана, заданную первыми четырьмя параметрами, в область экрана, левая верхняя координата которой задаётся параметрами destleft и desttop.

В файле conio.h определена структура text_info, поля которой предназначены для хранения информации о текущем состоянии текстового режима монитора.

struct text_info {

   unsigned char winleft;

   unsigned char wintop;

   unsigned char winright;

   unsigned char winbottom;

   unsigned char attribute;

   unsigned char normattr;

   unsigned char currmode;

   unsigned char screenheight;

   unsigned char screenwidth;

   unsigned char curx;

   unsigned char cury;

};

Поля winleft, wintop, winright, winbottom задают размер текущего окна, поля attribute и normattr – текущие атрибуты текста и атрибуты по умолчанию, поле currmode – текущий режим, поля screenheight и screenwidth – ширину и длину экрана, поля curx и cury – текущие координаты курсора в окне.

void gettextinfo(struct text_into *r);

Функция заполняет структуру типа text_info, указатель на которую принимает в качестве параметра, информацией о текущем состоянии видеорежима.

Вывод на консоль цветного текста возможен только с функциями, имеющими прототипы в файле conio.h. Функции, имеющие прототипы в файле stdio.h, используют потоковый ввод-вывод, и всегда выводят белые символы на черном фоне, даже если заданы другие атрибуты выводимых символов.


 

А также другие работы, которые могут Вас заинтересовать

34566. Влияние идей структурализма, постструктурализма и постмодернизма на развитие послевоенной французской литературы 19.27 KB
  Барт различает не письмо и текст литературное произведение которое было основой классики. Текст вторичен соткан из цитат и многозначен. В тексте принципиально важна интертекстуальность. Барт: каждый текст является интертекстомпредставляет собой новую ткань сотканную из старых цитат.
34567. Антиутопия, фантастика, фэнтези в английской и американской литературе 20 в. (Д. Оруэл, Р. Бредбери, К. Вонегут, Д. Толкиен и др.) 19.65 KB
  Романы антиутопистов во многом схожи: каждый автор говорит о потере нравственности и о бездуховности современного поколения каждый мир антиутопистов это лишь голые инстинкты и эмоциональная инженерия[3]. В современном виде сформировался в начале XX века. Произведения фэнтези чаще всего напоминают историкоприключенческий роман действие которого происходит в вымышленном мире близком к реальному Средневековью герои которого сталкиваются со сверхъестественными явлениями и существами. В отличие от научной фантастики фэнтези не стремится...
34568. Движение «рассерженных» в английской литературе. Пьеса Д. Осборна «Оглянись во гневе» 19.53 KB
  Так герой пьесы Джимми Портер в Оглянись во гневе осыпает проклятиями все и вся но не произносит ни одной конструктивной мысли и обнаруживает полнейшую беззащитность перед ненавистным и угрожающим ему миром который наступает на него со всех сторон и с которым он не в силах бороться. лишь Джимми Портер. С первых слов пьесы и до ее последних строк звучит непрерывный вопль Джимми. Джимми Портер выходец из рабочей среды но его связи с ней давно порваны.
34569. Анитиколониальная и политическая проблематика в английском романе 21.82 KB
  Английский журналист Фаулер от лица которого идёт рассказ и молодой американский дипломат Пайл связанные с самого начала романа далеко не простыми взаимоотношениями. Его антиподом был английский репортёр Фаулер усталый душевно опустошённый человек который воспринимает себя как репортёра задача которого давать одни факты. Человек потерявший идеалы и лишённый каких либо стремлений Фаулер пытается остаться сторонним наблюдателем той борьбы и злодеяний которые развёртываются на его глазах и ищет утешения от страдания в любви. Именно...
34570. Жанр романа-притчи в творчестве У. Голдинга 17.9 KB
  В 43 года опубликовал 1й роман Повелитель мух за кот. Повелитель мух вырастает из традиции робинзонады. страхов мальчиков становится повелитель мух кабаний череп и эти страхи использует предводитель охотников Джек устанавливая на острове дикт. Повелитель мух написан как рн предупреждение.
34571. ПРИНЯТИЕ ХРИСТИАНСТВА НА РУСИ 17.8 KB
  ПРИНЯТИЕ ХРИСТИАНСТВА НА РУСИ Составитель: Ю. Подобная аргументация практически не нуждается в анализе реальных земных причин крещения Руси. Эти отношения обусловили лучший результат византийских миссионеров сумевших подготовить для православия на Руси более богатую почву. На Руси латынь была неизвестна а греческий язык был знаком многим купцам и части феодальной верхушки что также предопределило выбор веры Владимира.
34572. РУССКИЕ ЗЕМЛИ В ПЕРИОД ФЕОДАЛЬНОЙ РАЗДРОБЛЕННОСТИ (конец XI – XII вв.) 19.67 KB
  РУССКИЕ ЗЕМЛИ В ПЕРИОД ФЕОДАЛЬНОЙ РАЗДРОБЛЕННОСТИ конец XI XII вв. Русь вступает в период феодальной раздробленности. Тенденция к феодальной раздробленности проявилась еще в XI в. но условно принято считать началом раздробленности Киевской Руси смерть князя Мстислава Владимировича в 1132 г.
34573. ФОРМИРОВАНИЕ РУССКОГО ЦЕНТРАЛИЗОВАННОГО ГОСУДАРСТВА: ЭТАПЫ, ОСОБЕННОСТИ 19.82 KB
  ФОРМИРОВАНИЕ РУССКОГО ЦЕНТРАЛИЗОВАННОГО ГОСУДАРСТВА: ЭТАПЫ ОСОБЕННОСТИ Политическое объединение русских земель было драматичным и длительным процессом проходившим на протяжении более двух веков. Торговые связи московских купцов суконников и сурожан протянулись далеко за пределы русских земель. удалось увеличить территорию своего княжества почти вдвое захват Коломны присоединение Можайска и Переяславльских земель. Хан Узбек передал Калите право сбора дани со всех русских земель и доставки ее в Орду что привело к ликвидации системы...
34574. СОЦИАЛЬНО-ЭКОНОМИЧЕСКИЙ И ПОЛИТИЧЕСКИЙ СТРОЙ РОССИЙСКОГО ЕДИНОГО ГОСУДАРСТВА (вторая половина XV – середина XVI вв.) 20.36 KB
  СОЦИАЛЬНОЭКОНОМИЧЕСКИЙ И ПОЛИТИЧЕСКИЙ СТРОЙ РОССИЙСКОГО ЕДИНОГО ГОСУДАРСТВА вторая половина XV середина XVI вв. Основную массу жителей Московского государства составляли крестьяне. Лошадь использовалась в поле и на различных отработках в пользу государства и феодала. В условиях аграрного строя крестьянский двор являлся главной единицей обложения налогами платежами оброками и повинностями со стороны государства владельцев вотчин и поместий.