/* Send the control word to the card, this is always * 0x92 for the pc30at, which sets ports A and B as * input and port C as output. */ outb(0x92,PC30AT_BASE+CONTROL30AT); /* Check that the card is there. First start a * conversion. For the pc30at conversion is started * with a downward edge trigger. The three commands * below correspond to 010 or _-_ so there is a * downward edge between the last two and conversion * is triggered. */ outb(0x2,PC30AT_BASE+PORT_C30AT); outb(0x3,PC30AT_BASE+PORT_C30AT); outb(0x2,PC30AT_BASE+PORT_C30AT); /* Then wait for the end of conversion, which is * marked by a flag in the register PORT_B30AT. * If no end return an error. */ ii=0; while ((((inb(PC30AT_BASE+PORT_B30AT))& (0x20))==0) &&(ii<30000)) { ii++; if (ii>=30000) return -1; }