#include
#include
#include
#define PORT1 0x3F8
//COM1 0x3F8
//COM2 0x2F8
//COM3 0x3E8
//COM4 0x2E8
void main()
{
int c;
int lock=0;
char ch;
outportb(PORT1+1,0);//turn off interrupts for port1
outportb(PORT1+3,0x80);//dlab on
outportb(PORT1+0,0x0C);//9600bps
outportb(PORT1+1,0x00);//for baud rate upper byte
outportb(PORT1+3,0x03);//8 bits, no parity, 1 stop bit
outportb(PORT1+2,0xC7);//fifo
outportb(PORT1+4,0x0B);//DTR,RTS,and OUT2
printf("\n\tRS-232 Interface with robot for obstacle detection and avoidance\n");
printf("\t------------------------------------------------------------------\n");
printf("Usage\n");
printf("W->move front\n");
printf("A->rotate left\n");
printf("D->rotate right\n");
printf("H->Halt\n");
printf("L->Override syncronization\n");
printf("Esc->Quit\n");
printf("________________________________________________________________________________\n");
printf("#");
do
{
c=inportb(PORT1+5);//check for input
if(c&1)
{
ch=inportb(PORT1);//store in ch
if(ch=='Z')
{
printf("Ack recieved.");
lock=0;
printf("\n#");
}
}
if(kbhit())
{
ch=getch();
if(ch=='W')
printf("Send->Move front");
else if(ch=='A')
printf("Send->Rotate Left");
//else if(ch=='S')
// printf("Send->Move Backward");
else if(ch=='D')
printf("Send->Rotate Right");
else if(ch=='H')
printf("Send->Halt");
else if(ch=='L') {
lock=0;
printf("Syncronization overridden");
}
else
printf("Invalid input");
if((ch=='W' || ch=='A' /*|| ch=='S'*/ || ch=='D' || ch=='H' ||ch=='Z') && lock==0)
{
outportb(PORT1,ch);//send ch
lock=1;
}
else if(lock==1)
printf("...Waiting for acknowledgement");
printf("\n#");
}
}while(ch!=27);
}
               (
geocities.com/ecma_ver1)