HALF DUPLEX COMMUNICATION USING
RS-232 IN C (FILE PASSING)
                             FILE TRANSMITTER -RECEIVER
#include<stdio.h>
#include<io.h>
#include<dos.h>
#include<conio.h>
#include<bios.h>
#define
COM1 0
#define
COM1ADDR 0x3F8
#define
DATA_READY 0x100
#define
TRANS_READY 0x2000
main()
{
              char tfile,ch,rfile;
              int status,counter=0;
              long size;
              char setting,baud = 0xa0,parity =
0x08,data = 0x04,stop = 0x03;
              FILE *fpt;
              FILE *fpr;
              setting = baud | parity | data |
stop;
              clrscr();
              bioscom(0,setting,COM1);
              printf("\n\tEnter Filename To
Transfer : ");
              scanf("%s",tfile);
              fpt = fopen("c:\\1.txt"
,"r");
              if(fpt == NULL)
              {
                        printf("\n\tFile
Not Found.....\n");
               }
              else
              {
                        fseek(fpt,0,SEEK_END);
                        size = ftell(fpt);
                        printf("\n\tFile
size is %ld",size);
                        rewind(fpt);
                        printf("\n\tFile is
being transferred\n\tWait...\n");
                        while(!feof(fpt))
                        {
                                  status=bioscom(3,0,COM1);
                                  if(status
& TRANS_READY)
                                  {
                                           ch=fgetc(fpt);
                                           outport(COM1ADDR,ch);
                                           counter++;
                                           gotoxy(20,20);
                                           printf("%d
Bytes has been transfered",counter);                                        }
                                     }
                                     outport(COM1ADDR,0x1b);
                                     printf("\n\tFile
transferred successfully");
                                     getch();
                            }
                            printf("\n\tEnter
file to receive: ");
                            scanf("%s",rfile);
                            fpr
= fopen( rfile,"w");
                            if(fpr
== NULL)
                            printf("\n\tError...File
cannot be opened");
                            else
                            {
                                     bioscom(0,setting,COM1);
                                     while(1)
                                     {
          
                                   status=bioscom(3,0,COM1);
          
                                   if(status
& DATA_READY)
           
                                  {
            
                                           ch
= inport(COM1ADDR);
            
                                           fputc(ch,fpr);
           
                                             if(ch== 0x1b)
            
                                            break;
           
                                             printf("%c",ch);
            
                                 }
                                     }
                                       }
                  }
No comments:
Post a Comment