#include #include #define LPT1 0x00400008 /* BIOS printer address entries */ #define LPT2 0x0040000a #define LPT3 0x0040000c #define LPT4 0x0040000e int main(int argc, char *argv[]) { unsigned int port,data; unsigned int far *bios_printer_addr; if (argc != 2) exit(1); port=*(bios_printer_addr=LPT1); if (port==NULL) { printf("LPT1 does not exist\n"); exit(1); } data = inportb(port); switch (argv[1][0]) { case '1' : data = data & 0xbf; break; case '2' : data = data & 0xdf; break; case '3' : data = data & 0xef; break; case '4' : data = data & 0xf7; break; case '5' : data = data & 0xfb; break; case '6' : data = data & 0xfd; break; case '7' : data = data & 0xfe; break; default : exit(1); break; } outportb(port, (char)data); return(0); }