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

пароварки kuppersbusch

Пример 3



Пример 3

/*== ПРИМЕР 8.3 ==*/ /*============== Получение статуса принтера ==============*/ #include <dos.h> main() { union REGS rr; int i; /* Проверка состояний */ printf("\nУстановите: принтер выключен. "); printf("Нажмите любую клавишу\n"); getch(); rr.x.dx=0; /* Номер принтера - LPT1 */ rr.h.ah=2; /* Функция 2 */ int86(0x17,&rr,&rr); printf("Состояние принтера - "); for (i=7; i>=0; i--) if ((rr.h.ah>>i)&1) printf("1"); else printf("0"); printf("\n\nУстановите: принтер offline. "); printf("Нажмите любую клавишу\n"); getch(); rr.x.dx=0; rr.h.ah=2; int86(0x17,&rr,&rr); printf("Состояние принтера - "); for (i=7; i>=0; i--) if ((rr.h.ah>>i)&1) printf("1"); else printf("0"); printf("\n\nУстановите: нет бумаги. "); printf("Нажмите любую клавишу\n"); getch(); rr.x.dx=0; rr.h.ah=2; int86(0x17,&rr,&rr); printf("Состояние принтера - "); for (i=7; i>=0; i--) if ((rr.h.ah>>i)&1) printf("1"); else printf("0"); printf("\n\nУстановите: принтер готов. "); printf("Нажмите любую клавишу\n"); getch(); rr.x.dx=0; rr.h.ah=2; int86(0x17,&rr,&rr); printf("Состояние принтера - "); for (i=7; i>=0; i--) if ((rr.h.ah>>i)&1) printf("1"); else printf("0"); }

/*== ПРИМЕР 8.4 ==*/ /*=============== Печать символа на принтере =============*/ #include <dos.h> main() { union REGS rr; unsigned char stat; /* Байт состояния */ /* Символы для печати */ char a[]={24,'a','b','c','d','e','f','g','h','i','j',10}; int i; /* Инициализация принтера */ rr.x.dx=0; /* Номер принтера - LPT1 */ rr.h.ah=1; /* Функция 1 */ int86(0x17,&rr,&rr); stat=rr.h.ah; /* Проверка состояния */ if ((stat&0x08)!=0) { printf("Ошибка принтера. Байт состояния = %02x\n",stat); exit(); } for(i=0;i<12;i++) { /* Ожидание готовности */ while ((stat&0x80)==0) { rr.x.dx=0; /* Номер принтера - LPT1 */ rr.h.ah=2; /* Функция 2 */ int86(0x17,&rr,&rr); stat=rr.h.ah; } /* Вывод символа */ rr.x.dx=0; /* Номер принтера - LPT1 */ rr.h.ah=0; /* Функция 0 */ rr.h.al=a[i]; int86(0x17,&rr,&rr); /* Проверка состояния */ if ((rr.h.ah&0x08)!=0) { printf("Ошибка принтера. Байт состояния = %02x\n",stat); exit(); } } }




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