Information Technology Reference
In-Depth Information
144 REPEAT
146 TST = 1
148 IOWRITE &CF8 ,2,ADDR + REG
150 REPEAT
152 IOWRITE &CFC ,2,TEST(TST)
154 IOREAD &CFC ,2
156 If B1 <> TEST(TST) Then Print: GoTo 180
158 TST = TST + 1
160 UNTIL TST=5
162 REG = REG + &O20
164 UNTIL REG=&50
Note, C/C++ can only access 8 or 16 bits at a time, thus the code:
122 IOWRITE &CF8 ,2,&80005000
124 IOREAD &CFC ,2
126 IF B1<>&00A81013 THEN PRINT : GOTO 172
would be replaced with:
#include <conio.h>
int main(void)
{
unsigned int val1, val2, val3, val4;
unsigned long int val;
_outp(0xcf8,0x00); /* least significant byte */
_outp(0xcf9,0x00);
_outp(0xcfa,0x00);
_outp(0xcfb,0x80); /* most significant byte */
val1=_inp(0xcfc) & 0xff; val2=_inp(0xcfd) & 0xff;
val3=_inp(0xcfe) & 0xff; val4=_inp(0xcff) & 0xff;
val= val1 + (val2<<8) + (val3<<16)+ (val4<<24);
if (val==0x00a81013)
{
printf(“Success”);
}
etc
return(0);
}
4.7
Exercises
4.7.1
What is the maximum data throughput for a 33 MHz, 32-bit data PCI bus:
(a)
33 MB/s
(b)
66 MB/s
(c)
132 MB/s
(d)
264 MB/s
Search WWH ::




Custom Search