4.2 | DEMO1 | */ |
/* demo 1 | : D/O demo of CN1 | |
/* step 1 | : connect a | */ |
/* step 2 | : run DEMO1.EXE | */ |
/* step 3 : check the LEDs of | |
/* | |
#include "PIO.H" | |
WORD wBase,wIrq; | |
main() | |
{ | i1,i2,i3; |
int | |
long | i=1; |
WORD | wBoards,wRetVal,t1,t2,t3,t4,t5,t6; |
WORD | wSubVendor,wSubDevice,wSubAux,wSlotBus,wSlotDevice; |
char | c; |
clrscr(); |
|
/* step1 : find | */ |
wRetVal=PIO_DriverInit(&wBoards,0x80,0x01,0x10); | /* for |
*/
printf("\n(1) Threr are %d
The Configuration Space | ||
for(i=0;i<wBoards;i++) |
|
|
{
PIO_GetConfigAddressSpace(i,&wBase,&wIrq,&wSubVendor,&wSubDevice printf("\nCard_%d: wBase=%x,wIrq=%x,subID=[%x,%x,%x],
SlotID=[%x,%x]",i,wBase,wIrq,wSubVendor,wSubDevice,
wSubAux,wSlotBus,wSlotDevice); printf("
}
PIO_GetConfigAddressSpace(0,&wBase,&wIrq,&t1,&t2,&t3,&t4,&t5);
/* step2 : enable all D/I/O port | /* select card_0 */ |
*/ | |
outportb(wBase,1); | /* /RESET |
/* step3 : configure I/O direction | */ |
outportb(wBase+0xcc,0x07); | /* set CN1 as D/O ports */ |
for (;;) |
|
{ |
|
i1=i&0xff; |
|
i2=(i>>8)&0xff; |
|
i3=(i>>16)&0xff; |
|
outportb(wBase+0xc0,i1); |
|
outportb(wBase+0xc4,i2); |
|
outportb(wBase+0xc8,i3); |
|
delay(10000); |
|
i=i<<1; |
|
i=i&0x0ffffff; |
|
if (i==0) i=1; |
|
if (kbhit()!=0) return; |
|
} |
|
PIO_DriverClose(); |
|
} |
|