4.3 | DEMO2 | */ |
/* demo 2 : DI/O demo of CN2 - CN3 | ||
/* step 1 : connect CN2 t0 CN3 of |
| |
*/ | : run DEMO2.EXE | */ |
/* step 2 | ||
/* step 3 | : check the information on screen D/I will same as D/O | */ |
/* | |
#include "PIO.H" | |
WORD wBase,wIrq; | |
main() | |
{ | i1,i2,i3,j1,j2,j3; |
int | |
WORD | wBoards,wRetVal,t1,t2,t3,t4,t5,t6; |
WORD | wSubVendor,wSubDevice,wSubAux,wSlotBus,wSlotDevice; |
char | c; |
long i=1; | |
clrscr(); |
/* step1 : find | */ | |
. |
|
|
. |
| */ |
/* step2 : enable all D/I/O port | /* | |
outportb(wBase,1); | /RESET | |
/* step3 : configure I/O direction | /* set CN2 | */ |
outportb(wBase+0xdc,0x07); | as D/O ports */ | |
outportb(wBase+0xec,0x00); | /* set CN3 | as D/I ports */ |
for (;;)
{
gotoxy(1,6);
i1=i&0xff;
i2=(i>>8)&0xff;
i3=(i>>16)&0xff;
outportb(wBase+0xd0,i1);
outportb(wBase+0xd4,i2);
outportb(wBase+0xd8,i3);
j1=inportb(wBase+0xe0);
j2=inportb(wBase+0xe4);
j3=inportb(wBase+0xe8);
printf("\nD/O = [%2x,%2x,%2x] , D/I = [%2x,%2x,%2x] ",i1,i2,i3,j1,j2,j3);
if ((j1!=i1)(j2!=i2)(j3!=i3))
{
printf("\n\nError ......");
}
else printf("\n\nO.K. ......");
i=i<<1;
i=i&0x0ffffff; if (i==0) i=1;
if (kbhit()!=0) return;
}
PIO_DriverClose();
}