/* DEMO1.C : PIO-D64 D/O demo */ /* step 1 : connect CN1&CN3 to DB-16R */ /* step 2 : run DEMO1.EXE */ /* -------------------------------------------------------------- */ #include "PIO.H" void pio_d64_CN1_do(long lDoValue); void pio_d64_CN3_do(long lDoValue); WORD wBase,wIrq; int main() { int i,j,k1,k2,l1,l2,jj,dd,j1,i1,j2,i2; WORD wBoards,wRetVal,t1,t2,t3,t4,t5; WORD wSubVendor,wSubDevice,wSubAux,wSlotBus,wSlotDevice; long lOutPad1,lOutPad2; char c; clrscr(); /* step 1: find address-mapping of PIO/PISO cards */ wRetVal=PIO_DriverInit(&wBoards,0x80,0x01,0x20); /* for PIO-D64 */ printf("\nThrer are %d PIO_D64 Cards in this PC",wBoards); if (wBoards==0) exit(0); printf("\n--------------- The Configuration Space ---------------"); for(i=0; i "); ShowPioPiso(wSubVendor,wSubDevice,wSubAux); } /* select card_0 */ PIO_GetConfigAddressSpace(0,&wBase,&wIrq,&t1,&t2,&t3,&t4,&t5); /* step 2: enable all D/I/O port */ outportb(wBase,1); /* enable D/I/O */ printf("\n\n"); lOutPad1=1; lOutPad2=0x8000; for(;;) { pio_d64_CN1_do(lOutPad1); pio_d64_CN3_do(lOutPad2); printf("\rOutput CN1=[%4lx] , CN3=[%4lx]",lOutPad1,lOutPad2); delay(12000); lOutPad1=((lOutPad1<<1)&0xffff); lOutPad2=((lOutPad2>>1)&0xffff); if (lOutPad1==0) {lOutPad1=1;lOutPad2=0x8000;} if (kbhit()!=0) break; } PIO_DriverClose(); } /* -------------------------------------------------------------- */ void pio_d64_CN1_do(long lDoValue) { outportb(wBase+0xc0,(lDoValue&0xff)); outportb(wBase+0xc4,((lDoValue>>8)&0xff)); } /* -------------------------------------------------------------- */ void pio_d64_CN3_do(long lDoValue) { outportb(wBase+0xc8,(lDoValue&0xff)); outportb(wBase+0xcc,((lDoValue>>8)&0xff)); }