Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2. Исследование видеосистемы (текстовый режим)

.docx
Скачиваний:
7
Добавлен:
19.06.2023
Размер:
75.62 Кб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РФ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

отчЁт

по лабораторной работе №2 (вариант 7)

по дисциплине «Организация ЭВМ и систем»

Тема: Исследование видеосистемы (текстовый режим)

Студент гр. 9300

ФИО

Преподаватель

Лебедев С. В.

Санкт-Петербург

2020

Цель работы.

Изучить работу с видеосистемой в текстовом режиме, освоить приёмы использования цветовой палитры: изменение цвета символов и фона на всём экране и в отдельном окне.

Задание.

Написать программу, чтобы в окно с координатами (20, 8, 60, 18) с шагами 0,9 (секунд) и 1 (строк) выводилась надпись при всех возможных комбинациях цвета фона и цвета символов. Для каждой комбинации цветов в окне должны выводиться символьные обозначения цветов фона и символов: на русском и английском соответственно. Направление вывода — вверх.

Краткие сведения.

Видеосистемы ПЭВМ.

Изображение на экране формируется видеоадаптером из пикселов, количество которых может быть различно для разных типов адаптера. В самом общем виде видеоадаптер состоит из двух основных частей: контроллера и видеопамяти. Память, необходимая для хранения одного образа экрана, называется видеостраницей. Объём видеопамяти и число возможных страниц, зависит от конкретного адаптера. Управление параметрами видеосистемы может выполняться на уровне портов видеоадаптера или обращением к функциям BIOS. Режимы работы видеоадаптеров можно объединить в две группы: текстовые и графические. Переключение из текстового режима в графический и наоборот означает полное изменение логики работы видеоадаптера с видеобуфером.

Текстовый режим работы ПЭВМ.

В текстовый режиме экран рассматривается как совокупность текселов, каждому из которых соответствуют два байта памяти видеобуфера: один из них хранит ASCII-код символа, а другой — особенности его отображения.

Функции обслуживания текстового режима.

Функции помещены в файле <conio.h>.

  • window(int x0, int y0, int x1, int y1);

    • Устанавливает положение и размер активного текстового окна.

  • gettextinfo(struct text_info* t);

    • Записывает информацию об активном окне по указателю t.

  • gotoxy(int x, int y);

    • Изменяет текущую позицию курсора. Координаты задаются относительно левого верхнего угла активного окна.

  • wherex(); wherey();

    • Возвращают позицию курсора по X и по Y соответственно.

  • clreol();

    • Стирает в текстовом окне строку, начиная с текущей позиции курсора.

  • clrscr();

    • Очищает текстовое окно и заливает его цветом атрибута окна.

  • delline();

    • Стирает в текстовом окне строку, на которую установлен курсор.

  • insline();

    • Вставляет пустую строку в позиции курсора со сдвигом остальных строк вниз.

  • cprintf(const char* format, ...);

    • Выполняет вывод по заданной форматной строке.

  • cputs(char* str);

    • Выводит строку символов, начиная с текущей позиции курсора.

  • movetext(int x0, int y0, int x1, int y1, int xd, int yd);

    • Переносит окно, заданное координатами, в указанное место.

  • putch(int ch);

    • Выводит символ в текущей позиции курсора.

  • puttext(int x0, int y0, int x1, int y1, void* source);

    • Выводит на экран текстовое окно. Символы и атрибуты располагаются в буфере, адрес которого записан в source.

  • gettext(int x0, int y0, int x1, int y1, void* dest);

    • Записывает информацию из текстового окна в dest.

  • highvideo(); normvideo(); lowvideo();

    • Задают соответственно использование повышенной, нормальной или пониженной яркости для последующего вывода символов на экран.

  • textattr(int attr)

    • Задаёт атрибут текстового окна.

  • textcolor(int color);

    • Задаёт цвет символов.

  • textbackground(int color);

    • Задаёт цвет фона символов.

Текст программы.

#include <CONIO.H>

#include <DOS.H>

// ФИО 9300, вариант 7

int main() {

    char *bgnames[] = {"Чёрный", "Тёмно-синий", "Тёмно-зелёный", "Бирюзовый", "Тёмно-красный", "Фиолетовый", "Оранжевый", "Серый"};

    char *fgnames[] = {"Black", "Dark Blue", "Dark Green", "Dark Aqua", "Dark Red", "Purple", "Gold", "Gray", "Dark Gray", "Blue", "Green", "Aqua", "Red", "Pink", "Yellow", "White"};

    

    int i, j;

    union REGS regs;

    regs.h.ah = 7;  // код функции

    regs.h.al = 1;  // число строк

    regs.h.cl = 19; // x0

    regs.h.ch = 7;  // y0

    regs.h.dl = 59; // x1

    regs.h.dh = 17; // y1

    clrscr();

    window(20, 8, 60, 18);

    for (i = 0; i <= 7; i++) {

        for (j = 0; j <= 15; j++) {

            regs.h.bh = (i << 4) | j;

            int86(0x10, &regs, 0);

            textattr((i << 4) | j);

            gotoxy(1, 1);

            cprintf("%s фон | %s Foreground", bgnames[i], fgnames[j]);

            delay(900);

        }

    }

    getch();

    return 0;

}

Структурная схема аппаратных средств.

Рисунок 1. Структурная схема аппаратных средств.

Вывод.

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

Соседние файлы в предмете Организация ЭВМ и вычислительных систем