#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 | 0x40; break; case '2' : data = data | 0x20; break; case '3' : data = data | 0x10; break; case '4' : data = data | 0x08; break; case '5' : data = data | 0x04; break; case '6' : data = data | 0x02; break; case '7' : data = data | 0x01; break; default : exit(1); break; } outportb(port, (char)data); return(0); }