#include #define S707 0x0370 #define INDX S707 #define DATA S707+1 int R707(int Arg0) { int ret; outb(0x55,INDX); outb(0x55,INDX); outb(Arg0,INDX); ret = inb(DATA); outb(0xAA,INDX); return ret; } void W707(int Arg0, int Arg1) { outb(0x55,INDX); outb(0x55,INDX); outb(Arg0,INDX); outb(Arg1, DATA); outb(0xAA,INDX); } int GSTA() { int ret; W707 (0x07, 0x03); ret = R707 (0xF0); printf("raw %d\n", ret); printf("LPT %d\n", (ret & 0x7) == 0); printf("EPP %d\n", (ret & 0x3) == 1); printf("ECP %d\n", (ret & 0x2) == 2); return ret; } int main() { iopl(3); GSTA(); return 0; }