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


Пример 2



Пример 2

/*== ПРИМЕР 8.2 ==*/ /*=============== Печать символа на принтере =============*/ #include <dos.h> main() { int p1,p2,p3,i; /* Номера портов */ unsigned char stat; /* Байт состояния */ /* Символы для печати (10 - перевод строки) */ char a[]={24,'a','b','c','d','e','f','g','h','i','j',10}; /* Опеределение портов */ p1=peek(0x40,8); p2=p1+1; p3=p2+1; /* Инициализация принтера */ outportb(p3,0x08); delay(50); outportb(p3,0x0c); /* Проверка состояния */ stat=inport(p2); if ((stat&0x20)!=0) { printf("Ошибка принтера. Байт состояния = %02x\n",stat); exit(); } for(i=0;i<12;i++) { /* Ожидание готовности */ while ((stat&0x80)==0) stat=inport(p2); /* Символ в базовый порт */ outportb(p1,a[i]); /* Строб */ outportb(p3,0x0d); outportb(p3,0x0c); /* Проверка состояния */ stat=inport(p2); if ((stat&0x20)!=0) { printf("Ошибка принтера. Байт состояния = %02x\n",stat); exit(); } } }




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