Системное программное обеспечение персональных ЭВМ


Пример 5



Пример 5

/*== ПРИМЕР 8.6 ==*/ /*============ Управляющие коды режимов печати ===========*/ #include <stdio.h> #define prt(x) putc(x,stdprn); main() { /* Инициализация */__ _.prt(27); prt(64); /* Обычный режим */ fprintf(stdprn,"Default mode\n"); /* Режим двойной ширины */ prt(14); fprintf(stdprn,"Set double width mode\n"); prt(20); fprintf(stdprn,"Close double width mode\n"); /* Режим плотной печати */ prt(15); fprintf(stdprn,"Set empassed mode\n"); prt(18); fprintf(stdprn,"Close empassed mode\n"); /* Режим подчеркивания */ prt(27); prt(0x2d); prt(1); fprintf(stdprn,"Set underline mode\n"); prt(27); prt(0x2d); prt(0); fprintf(stdprn,"Close underline mode\n"); /* Режим двойной жирности */ prt(27); prt(0x45); fprintf(stdprn,"Set double strike mode\n"); prt(27); prt(0x46); fprintf(stdprn,"Close double strike mode\n"); /* Режим верхних индексов печати */ prt(27); prt(0x53); prt(0); fprintf(stdprn,"Set superscript mode\n"); prt(27); prt(0x54); fprintf(stdprn,"Close superscript mode\n"); /* Режим нижних индексов печати */ prt(27); prt(0x53); prt(1); fprintf(stdprn,"Set subscript mode\n"); prt(27); prt(0x54); fprintf(stdprn,"Close subscript mode\n"); }

Отдельный программный пример иллюстрирует интересную возможность формирования пользователем собственных печатных символов. Образы выводимых символов хранятся в ПЗУ принтера, но в принтере есть еще и ОЗУ, в которое могут быть загружены образы, созданные пользователем. Образ формируется на сетке высотой 8 и шириной 11 точек. В памяти образ представляется в двоичном виде, причем один байт описывает один столбец образа. Сформировав двоичный образ символа, следует записать его в ОЗУ, для чего используется Esc-последовательность вида:

  • 0x1B, 0x26, 0 - задание действия "загрузка шрифта в ОЗУ";
  • <начальный код>, <конечный код> - одной последовательностью можно загрузить в ОЗУ несколько образов, каждому из которых присваивается свой код в ОЗУ;
  • <байт описатель> - младший полубайт содержит ширину символа, в старшем 0 в старшем разряде означает, что при печати весь образ сдвигается на 1 точку вниз;
  • 11 байт описания образа.




- Начало -  - Назад -  - Вперед -