biosprint
Функция Ввод/вывод на принтер при помощи BIOS.
Синтаксис #include<bios.h>
int biosprint(int cmd, int abyte, int port);
Файл, содержащий bios.h
прототип
Описание biosprint выполняет различные операции с
принтером, определяемым аргументом port, при помощи
прерывания BIOS 0x17.
Значение аргумента port = 0 соответствует LPT1;
port = 1 соответствует LPT2 и т.д..
Значение аргумента cmd может быть одним из
следующих:
0 Печать символа, содержащегося в abyte.
1 Инициализация порта принтера.
2 Считывание статуса принтера.
Значение аргумента abyte может быть пределах от 0
до 255.
Возвращаемое Значение, возвращаемое функцией biosprint в любой
значение из описанных выше операций, представляет собой
статус принтера, получаемый посредством операции
"ИЛИ" со следующими битовыми значениями:
Бит 0 0x01 Таймаут устройства.
Бит 3 0x08 Ошибка ввода/вывода.
Бит 4 0x10 Включено.
Бит 5 0x20 Нет бумаги.
Бит 6 0x40 Подтверждение приема.
Бит 7 0x80 Не занято.
Переносимость biosprint поддерживается только на компьютерах
IBM PC или совместимых с ними.
Пример:
#include<stdio.h>
#include<conio.h>
#include<bios.h>
int main(void)
{
#define STATUS 2 /* команда получить статус принтера */
#define PORTNUM 0 /* LPT1 */
int status,abyte = 0;
printf("Пожалуйста, выключите принтер. Для продолжения нажмите
любую клавишу\n");
getch();
status = biosprint(STATUS,abute,PORTNUM);
if(status & 0x01)
printf("Таймаут устройства\n");
if(status & 0x08)
printf("Ошибка ввода/вывода\n");
if(status & 0x10)
printf("Включено\n");
if(status & 0x20)
printf("Конец бумаги\n");
if(status & 0x40)
printf("Подтверждение приема\n");
if(status & 0x80)
printf("Не занято\n");
return 0;
}
|