/******************************************************************* *******************************************************************/ #include #include #include #include #include "acb_rtl.h" #define ESC 27 /*keyboard character to terminate program*/ #define BUFFER_LENGTH 45 int main(void); void cls(void); BYTE TxBuffer[] ="The Quick Brown Fox Jumped Over The Lazy Dog.\0"; #define LEN_2 48 BYTE TxBuffer2[] ={2,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0,0xff,0}; /*45 CHARACTERS INCLUDING '.' */ BYTE RxBuffer[1024]="Empty buffer\0"; #define RX_BUFFER_LENGTH 100 LPBYTE fpBuffer; WORD wRxFrameCount = 0; WORD wTxFrameCount = 0; WORD wErrorCount = 0; /*******************************************************************/ /*******************************************************************/ int main (void) { DWORD dwTemp = 0; BYTE c = 0; WORD wTemp = 0, i; printf("\nAdvanced Communication Board Driver Test Program.\n\n"); /* Verify driver is installed */ if(ACBVerify()) {printf("\nError: Driver not installed.\n"); return(1); } printf("\nDriver present verified....\n"); printf("\nTesting driver....\n"); printf("Type \"Esc\" to exit.\n\n"); ACBStartDriver(); /* Init driver */ do {if(_bios_keybrd(_KEYBRD_READY)) {c = (unsigned char)(_bios_keybrd(_KEYBRD_READ)); if(c != ESC) {switch(c) {case 'T': case 't': for(i=0; i < 5 ; i++) {fpBuffer = (LPBYTE)&TxBuffer2; /* write character to data port */ fpBuffer[0] = wTxFrameCount; if(ACBPutFrame(fpBuffer, (wTxFrameCount + 1)) == 0) wTxFrameCount++; if(wTxFrameCount == 0x1f) wTxFrameCount = 0; } break; case 'X': case 'x': ACBResetBuffers( RESET_RX_BUFFER|RESET_TX_BUFFER); printf("\nBuffers Reset\n"); break; default: dwTemp = ACBGetBufferCount(); printf("TxBuffer %X of %X ",HIBYTE(LOWORD(dwTemp)), LOBYTE(LOWORD(dwTemp))); printf("RxBuffer %X of %X\n",HIBYTE(HIWORD(dwTemp)), LOBYTE(HIWORD(dwTemp))); break; } } } /* end if */ for(i=0; i < 5 ; i++) {fpBuffer = (LPBYTE)&TxBuffer2; /* write character to data port */ fpBuffer[0] = wTxFrameCount; if(ACBCheckTxAvailable()) if(ACBPutFrame(fpBuffer, (wTxFrameCount + 1)) == 0) wTxFrameCount++; if(wTxFrameCount == 0x1f) wTxFrameCount = 0; } if(ACBCheckRxAvailable()) {fpBuffer = (LPBYTE)&RxBuffer; dwTemp = ACBGetFrame(fpBuffer, 1024); if(HIWORD(dwTemp)) printf("\nError: %x\n", HIWORD(dwTemp) ); printf("\nCount: %X\n",LOWORD(dwTemp)); for (i = 0; i < LOWORD(dwTemp); i++) printf("%X,", *(fpBuffer + i)); printf("\n"); } }while(c != ESC); /* end do while*/ ACBStopDriver(); return(0); } /******************************************************************* END OF FILE *******************************************************************/