Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Display - package пакет отображения

Описание

         Дисплейный пакет обеспечивает быстрый ввод/вывод на
         экран PC и надежную совместимость. Процедуры пакета
         пишут  непосредственно в видео память, выигрывая на
         скорости.  Эти процедуры  не пойдут на компьютерах,
         не являюшщихся совместимыми с  IBM PC  по принципам
         отображения или в части BIOS. Ниже приведены глоба-
         лы, которые инициализируются при вызове disp_open().
         Эти глобалы следует только читать:
            unsigned char disp_mono - 0 для цветного и 1 для
                                       монохромного адаптера
            unsigned char disp_snowycga - отличен  от  0 для
                                          "снежного" IBM CGA
            unsigned char disp_mode - текущий  режим отобра-
                            жения (Смотрите disp_setmode()).
            unsigned char disp_inited - отличен  от 0,  если
                           дисплейный пакет инициализирован.
            unsigned char disp_ega - отличен  от  0  для IBM
               EGA или VGA адаптеров.
            unsigned disp_base - адрес сегмента видео памяти
               (MDA = 0B000)(CGA = 0B800).
            int disp_numrows - количество отображаемых строк
            int disp_numcols - количество отображаемых столб-
                               цов
            int disp_cursorrow - номер строки, в которой пози-
                               ционирован курсор
            int disp_cursorcol - номер столбца,  задающего по-
                               зицию курсора.

Использование

         #include <disp.h>
         void disp_close(void);
         Выталкивает вывод и завершает  использование пакета
         отображения.
         void disp_box(int type, int attr, unsigned row,
              unsigned col, unsigned brow, unsigned rcol);
         Рисует  рамку с бордюром type и атрибутом attr. На-
         чиная с левого верхнего угла в  row,col  и кончая в
         нижнем правом угле в brow,rcol.
         Значения type определяют:
            0   -   двойную бордюрную линию
            1   -   одинарную бордюрную линию
            2   -   толстый бордюр.
         void disp_eeol(void);
         Чистит остаток  текущей строки,  включая литеру под
         курсором.
         void disp_eeop(void);
         Чистит экран, начиная  с текущей  позиции  курсора.
         void disp_endstand(void);
         Выключает инверсный режим отображения. Должна вызы-
         ваться после disp_startstand.
         void disp_flush(void);
         Выталкивает вывод на экран.  Бывает  необходима для
         подготовки экрана к ожидаемому вводу пользователя.
         int disp_getmode(void);
         Возвращает  текущий  режим  отображения   (Смотрите
         disp_setmode).
         void disp_move(int row, int col);
         Сдвигает курсор к позиции  row.col.  Позиция  0,0
         есть верхний левый угол дисплея.
         void disp_open(void);
         Инициализирует дисплейный пакет. В процессе обраще-
         ния определяются  тип  дисплея и адресация экранной
         памяти. Инициализируются все глобалы.
         unsigned disp_peekw(int row, int col);
         Считывает  атрибут  литеры в заданной  позиции дис-
         плея.
         unsigned disp_peekbox(unsigned * save, unsigned row,
                unsigned col, unsigned brow, unsigned rcol);
         Запоминает прямоугольную область экрана, определен-
         ную верхним левым углом  (row,col) и нижним правым
         (brow,rcol), в буфере save.
         void disp_pokebox(unsigned * save, unsigned row,
                unsigned col, unsigned brow, unsigned rcol);
         Восстанавливает прямоугольную область экрана, опре-
         деленную  верхним левым углом  (row, col)  и нижним
         правым (brow, rcol), из буфера save.
         void disp_pokew(int row, int col, int attr,charc);
         Записывает литеру с указанным  атрибутом в специфи-
         цированную позицию.
         void disp_printf(char *format, ...);
         Осуществляет  непосредственный  форматный  вывод на
         экран (Смотрите описание функции printf).
         void disp_putc(int c);
         Записывает  литеру c в текущую позицию экрана,  ис-
         пользуя атрибут литеры,  установленный  посредством
         disp_setattr().   Отрабатывает  табуляцию,  перевод
         строки, возврат каретки, backspace и т.д. корректно.
         void disp_reset43(void);
         Сбрасывает текстовый  режим  80х43 EGA  назад в ре-
         жим 80х25.
         void disp_scroll(int lines, unsigned ulrow,
              unsigned ulcol, unsigned lrrow, unsigned lrcol,
                                              unsigned attr);
         Прокручивает содержимое экрана вверх:
            lines - количество строк прокрутки
            ulrow - верхний ряд двигаемой области
            ulcol - верхний левый столбец
            lrrow - нижний ряд двигаемой области
            lrcol - нижний правый столбец
            attr  - видеоатрибут для остальных областей
                    (частей экрана).
         void disp_set43(void);
         Устанавливает текстовый режим отображения 80х43 EGA.
         Не должна  использоваться,  пока  дисплейный  пакет
         открыт.  Эта  функция требует наличия адаптеров EGA
         или VGA. Действительное  количество строк на экране
         записывает в disp_numrows.
         void disp_setattr(int attr);
         Устанавливает атрибут  литер,  записываемых посред-
         ством disp_putc()  и  disp_printf().  Ниже приведен
         список атрибутов, описанных в файле disp.h :
            DISP_REVERSEVIDEO         ИНВЕРСНЫЙ
            DISP_NORMAL               НОРМАЛЬНЫЙ
            DISP_UNDERLINE            ПОДЧЕРКИВАНИЕ
            DISP_NONDISPLAY           НЕ ВЫСВЕЧИВАЕМЫЙ
         Следующие атрибутные биты могут быть добавлены опе-
         рацией OR:
            DISP_INTENSITY            ИНТЕНСИВНЫЙ
            DISP_BLINK                МИГАНИЕ
         void disp_setcursortype(int startline*256+endline);
         Устанавливает размер курсора. По умолчанию, DOS ис-
         пользует:
                           начало      конец   использование
            Monochrome       11          12      11*256+12
            Color            6           7        6*256+7
         void disp_setmode(unsigned char mode);
         Устанавливает режим  отображения.  Если потребуется
         не текущий режим отображения,  вызов функции должен
         предшествовать обращению к disp_open(). Ниже приве-
         дены номера режимов:
            0 - 40х25     черно-белый алфавитно-цифровой EGA
                          адаптер
            1 - 40х25     цветной   алфавитно-цифровой   EGA
                          адаптер
            2 - 80х25     черно-белый алфавитно-цифровой EGA
                          адаптер
            3 - 80х25     цветной   алфавитно-цифровой   EGA
                          адаптер
            4 - 320х200   4-цветный  графический EGA адаптер
            5 - 320х200   черно-белая   графика  на  цветном
                          EGA адаптере
            6 - 640х200   черно-белая   графика  на  цветном
                          EGA адаптере
            7 - 80х25     черно-белый  алфавитно-цифровой на
                          монохромном EGA адаптере
            D - 320х200   16-цветная графика на EGA адаптере
            E - 640х200   16-цветная графика на EGA адаптере
            F - 640х350   4-цветная графика на монохромном
                          EGA адаптере
           10 - 640х350   16-цветная графика на EGA адаптере
         void disp_startstand(void);
         Устанавливает инверсный  режим отображения для всех
         последующих выводимых  литер.  Инверсный режим ото-
         бражения снимается обращением к disp_endstand().
         void disp_usebios(void);
         Устанавливает  режим  записи  литер  на экран через
         BIOS,  а не непосредственно в видео память дисплея.
         Это  улучшает  переносимость программы при снижении
         скорости работы.  Вызов должен следовать за обраще-
         нием к disp_open().

Возвращаемое значение

         disp_getmode  возвращает текущий режим отображения.

Пример

         #include <disp.h>
         #include <conio.h>
         char *string="Пример мигающей строки";
         int cursor=((6*256)+11);
         main()
         {
           char ch;
           disp_open();
           disp_startstand();
           disp_printf("Строка выведена после обращения к
                                       disp_startstand\n");
           disp_endstand();
           disp_setattr(DISP_BLINK | DISP_NORMAL);
           disp_printf("%s\n", string);
           disp setattr(DISP_INTENSITY | DISP_NORMAL);
           disp_printf("Установлен атрибут высокой яркости\n");
           disp setattr(DISP_NORMAL);
           disp_usebios();
           disp_printf("Строка высвечена при помощи BIOS\N");
           disp_printf("Меняем размер курсора");
           disp_setcursortype(cursor);
           disp_flush();
           ch = getch();
           disp_close();
         }

Рекомендация

         Смотрите также printf, putc.

оглавление

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог