/* (c)Copyright Sealevel Systems Incorporated, 1993 - 1995 */ /* This program demonstrates how to interface to the Sealevel PIO48 board */ /* using the assembly language drivers provided in PIO48_C.OBJ */ /* The first 50 pin connector (J1) is assumed to control output modules */ /* The second 50 pin connector (J3) is assumed to monitor input modules */ #include extern int setbit(int,int,int); extern int testbit(int,int); extern int rdbyte(int); extern int setbyte(int,int); main() { int x,bit,ba,bv; char slect; ba=0x300; outp(ba+3,128); /* control port1: sets a,b,c rack 1 as output */ outp(ba+7,155); /* control port2: sets a,b,c rack 2 as input */ outp(ba,255); /* sets port a off */ outp(ba+1,255); /* sets port b off */ outp(ba+2,255); /* sets port c off */ menu:for (x=1;x<25;x++) { printf("\n"); } printf(" PIO48 DEMO PROGRAM - C Interface\n"); printf("\n"); printf(" 1 - Set Port...Currently %x Hex\n",ba); printf(" 2 - Set bit\n"); printf(" 3 - Reset bit\n"); printf(" 4 - Test bit\n"); printf(" 5 - Read byte\n"); printf(" 6 - Set byte\n"); printf(" 7 - Exit\n"); for (x=1;x<5;x++) { printf("\n"); } printf(" Selection...> "); scanf ("%d",&slect); switch (slect){ case 1: goto setport; case 2: goto sb; case 3: goto rb; case 4: goto tb; case 5: goto rbyte; case 6: goto sbyte; case 7: goto xit; default: goto menu; setport:printf(" Enter port address in hex...>"); scanf("%x",&ba); goto menu; sb:printf(" bit #...> "); scanf("%d",&bit); printf(" error returned = %d\n",setbit(ba,bit,1)); printf("\n"); printf(" Press any key to continue..."); while(!kbhit()); goto menu; rb:printf(" bit #...> "); scanf("%d",&bit); printf(" error returned = %d\n",setbit(ba,bit,0)); printf("\n"); printf(" Press any key to continue..."); while(!kbhit()); goto menu; tb:printf(" bit #...> "); scanf("%d",&bit); printf(" status of bit %d=%d\n",bit,testbit(ba,bit)); printf("\n"); printf(" Press any key to continue..."); while(!kbhit()); goto menu; rbyte:printf(" status returned = %d\n",rdbyte(ba)); printf("\n"); printf(" Press any key to continue..."); while(!kbhit()); goto menu; sbyte:printf(" byte value...> "); scanf("%d",&bv); setbyte(ba,bv); printf("\n"); printf(" Press any key to continue..."); while(!kbhit()); goto menu; xit:printf(""); } }