Аппаратное обеспечение IBM PC

       

ESC "x" n Выбор качества печати:


0 - низкое качество; 1 - качественный шрифт NLQ.

Для задания типа шрифта надо вывести на принтер три байта: символ ESC (1Bh), символ "x" (78h), затем код шрифта (30h...31h).

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

Если вас не устраивает шрифт, который записан в ПЗУ принтера (например, в нем нет русских букв), вы можете использовать команды для загрузки собственного шрифта.

Приведем пример программы, которая посылает в принтер командные последовательности и обычные символы, пользуясь функцией 05h прерывания INT21h:

#include <dos.h> #include <stdio.h>

main() {

char buffer[] = {

0x1b, '@', // Сбрасываем принтер в исходное // состояние.

7,7,7, // Выдаем 3 раза звуковой сигнал.

0x1b, 'x','0', // Устанавливаем низкое // качество печати.

'S','t','r','i','n','g',' ','1', // Печатаем // строку.

0x1b, 'x','1', // Устанавливаем высокое // качество печати.

'S','t','r','i','n','g',' ','2', // Печатаем // строку.

0x0a, // Переводим строку.

7,7,7, // Выдаем 3 раза звуковой сигнал.

0 };

char *p;

// Выводим строку символов на принтер

for(p = buffer; *p != 0; p++) bdos(0x05, *p, 0); }

Для вывода символа на принтер через функцию MS-DOS здесь использована функция bdos(), входящая в состав стандартных библиотек трансляторов Microsoft QC 2.5 и C 6.0. Первый параметр функции bdos() - номер выполняемой функции прерывания MS-DOS INT 21h, второй - содержимое регистра DX перед вызовом этой функции, и третий - содержимое регистра AL.

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



Содержание раздела