#include #include unsigned int baseAddr = 0x300; unsigned AskForBaseAddress(unsigned int OldOne) { char msg[7]; int NewOne = 0, Success = 0, Dummy; int AddrInputPosX, AddrInputPosY; puts("Please enter the Base Address for your card (in hex)"); printf("or press ENTER for %X.\n>", OldOne); AddrInputPosX = wherex(); AddrInputPosY = wherey(); do { gotoxy(AddrInputPosX, AddrInputPosY); clreol(); msg[0] = 5; msg[1] = 0; cgets(msg); sscanf(msg + 2, "%x", &NewOne); Success = 1; Dummy = NewOne; if (msg[1] == 0) { gotoxy(AddrInputPosX, AddrInputPosY); printf("%X", OldOne); Success = 1; Dummy = OldOne; } } while(!Success); return (Dummy); } /* end of AskForBaseAddress */ void main (void) { unsigned char inputs[6]; unsigned char regMap[6] = {0, 1, 2, 4, 5, 6}; int count; baseAddr = AskForBaseAddress(baseAddr); clrscr(); printf("This program will continuously read all input bits and display the results in hex\nuntil a key is pressed.\n"); do { for (count = 0; count < 6; count++) { inputs[count] = inportb(baseAddr + regMap[count]); } for (count = 0; count < 6; count++) { printf("Channel %d : %02X\n", count, inputs[count]); } gotoxy(1, 3); }while (!kbhit()); }