#include "commdrv.h" #include #include #include #include const int base = 0x300; void ErrorCheck (char checkstring[255]) { char Error; Error = strcmp(checkstring, "??ERROR!"); if (Error == 0) { puts("A communications error has occurred!"); exit(Error == 0);} } void DrawBits(int mask) { int i,x = 0; gotoxy(50,9); puts(" Bit Mask"); gotoxy(50,10); puts("6 5 4 3 2 1 0"); gotoxy(50,wherey()+1); textcolor(WHITE); for (i = 6; i >= 0; i--){ if (mask & (1<");//Mx- scanf("%u",&bitnum); sprintf(MyStr,"M%u-",bitnum); clreol(); printf("Bit %u configured for input.\n",bitnum); bitmask = bitmask & ~(1< ");//Mx+ scanf("%u",&bitnum); sprintf(MyStr,"M%u+",bitnum); clreol(); printf("Bit %u configured for output.\n",bitnum); bitmask = bitmask | (1<"); //In scanf("%u",&bitnum); sprintf(MyStr,"I%u",bitnum); writePod(base, MyStr); readPod(base, retstring); ErrorCheck (retstring); clreol(); printf("Bit %u is %s\n", bitnum,retstring); gotoxy(1,wherey()-2); break; case '7': clreol(); printf("Enter a value to write (hex) >");//Oxx scanf("%x",&value); clreol(); printf("Value written: %x",value); sprintf(MyStr,"O%02x",value); gotoxy(1,wherey()-1); writePod(base, MyStr); readPod(base, retstring); ErrorCheck (retstring); break; case '8': clreol(); printf("Enter bit number, followed by + for one or a - for zero.\n"); clreol(); printf("Ex.: 3+"); scanf("%s",&bitstring); gotoxy(1,wherey()-2); sprintf(MyStr,"O%s",bitstring); writePod(base, MyStr); readPod(base, retstring); ErrorCheck (retstring); break; case 'q': case 'Q': done = 1; break; } x = wherex(); y = wherey(); DrawBits(bitmask); gotoxy(x,y); } puts("\n"); puts("\n"); printf("Exiting the RA1216 Digital sample program.\n"); }