Not to nitpick, but the original message was missing a title too....
Regards,
Jeff
P.S. Thanks for VCF East. My wife says she'd like to come with. I can't
wait.
In <Pine.LNX.4.10.10104100821090.19005-100000(a)siconic.com>om>, on 04/10/01
at 06:24 PM, Sellam Ismail <foo(a)siconic.com> said:
Ah yes, you're missing a semi-colon, silly!
:)
On Tue, 10 Apr 2001, Mekonnen Tekeste wrote:
>
> Can Any one help me please? i am trying to interface a bar code reader
> to PCI Bus via a 82C51 (UART), and i wrote a code to support my
> hardware design but the software it seem wrong. Here is the code:
>
>
>
> #include <conio.h>
> #include <stdio.h>
> #include <dos.h>
>
> /* Type Definitions */
>
> typedef unsigned char UBYTE; /* Old habbit... */
>
> /* Serial Port Definitions */
>
> #define STATUS 0x308 /* Status Base Address */
> #define CONTROL 0x300 /* Control Base Address */
> #define TXREG 0x30C /* Transmit Base Address */
> #define RXREG 0x304 /* Receive Base Address */
> #define TRUE 1
>
> /* Function Prototypes */
>
> void InitUSART(void); /* Initialize USART */
> void TxData(UBYTE); /* Transmit Data */
> UBYTE RxData(void); /* Receive Data */
>
> /*
> InitUSART() - Initialize USART to 153600, 8 Data Bits, No Parity, 1 Stop
> Bit
> */
> void InitUSART(void)
> {
> outp(CONTROL, 0x40); // Reset UART
> outp(CONTROL, 0x4E); // Stop, no parity, 8-bit, %16 baud
> outp(CONTROL, 0x05); // UART now ready
> }
>
> /*
> TxData() - Send Data to Serial Port
> Entry:
> data = Data to transmit
> */
> void TxData(UBYTE data)
> {
> UBYTE x;
>
> /* Check for Tx Buffer Empty */
> do
> {
> x = inp(STATUS);
> x &= 0x01;
> } while(x == 0);
>
> outp(TXREG, data); /* Send Data */
> }
>
> /*
> RxData() - Receive Data from the Serial Port
> Exit:
> data = Rx Data byte
> */
> UBYTE RxData(void)
> {
> UBYTE x;
> UBYTE data = 0;
>
> while(TRUE) /* Check for Rx Data */
> {
> x = inp(STATUS);
> x &= 0x02;
> if(x == 0x02)
> {
> data = inp(RXREG); /* Get Data */
> break;
> }
>
> /* Optional. Aborts if keypress */
>
> if(kbhit()) /* Abort if Keypress */
> {
> getch();
> printf("\n");
> break;
> }
> }
> return(data);
> }
>
>
> void main(void)
> {
>
>
> InitUSART();
>
> while(TRUE)
> putch(RxData());
> }
>
>
>
>
>
>
>
>
Sellam Ismail
Vintage Computer
Festival
------------------------------------------------------------------------------
International Man of Intrigue and Danger
http://www.vintage.org
--
-----------------------------------------------------------
Jeffrey S. Worley
President
Complete Computer Services, Inc.
30 Greenwood Rd.
Asheville, NC 28803
828-277-5959
Visit our website at
HTTP://www.Real-Techs.com
THETechnoid(a)home.com
-----------------------------------------------------------