#include
#include
#include
#include
//Function Prototype
void transmit (int&,int& ,int& ,int&);
void decimal_to_binary (int, int, int);
void binary_to_decimal(int, int);
void mode_word(int& , int& , int& , int& );
void command_word(int& , int&, int&, int&);
main(){
int ibaud,ichar_length, iparity, iframe; //Initialising mode word parameters
mode_word(ibaud, ichar_length, iparity, iframe);// Function Call for mode word
command_word(ibaud, ichar_length, iparity, iframe); // Function Call for command word
}
void mode_word(int& ibaud,int& ichar_length,int& iparity,int& iframe) // Function Mode Word Declaration
{
printf("\n Enter baud rate\n ASYN*1 - 01\nASYN*16 - 10\nASYN*64 - 11\n: ");scanf("%d",&ibaud); // Interactive input from the user
printf("\n Enter character length\n 5,6,7or 8 Bits: "); scanf("%d",&ichar_length);
printf("\n Enter parity control\n *0 - No parity\n01 - Odd Parity\n 11 - Even Parity: "); scanf("%d",&iparity);
printf("\n Enter Framing Control\n Not Valid - 00 \n1 Stop Bit - 01\n 1.5Stop Bits - 10\n 2 Stop Bits - 11: ");scanf("%d",&iframe);
}
void command_word(int& ibaud,int& ichar_length,int& iparity,int& iframe) // Function Command Word Declaration
{
char ch;do {printf(" \nEnter t for Transmit and r for Recieve and e to exit: "); scanf("%s",&ch);
switch ( ch){
case 't': transmit(ibaud,ichar_length,iparity,iframe);break;// Function Call to transmit
case 'r': binary_to_decimal(ichar_length,iparity);break; // Function Call to binary_to_decimal
case 'e': exit(1);//Function recieve
default : printf(" Error, enter again");}} while (ch !='e'); exit(1);
}
void transmit(int& ibaud, int& ichar_length, int& iparity, int& iframe) // Function transmit Declaration
{
int idata,i,j,a;j=ichar_length; if (iframe==00) { a=0;}
else if(iframe==01) {a=1;}
else if(iframe==10){a=1;}
else if (iframe==11){a=2;}
printf("\nEnter a no. to send: "); scanf("%d",&idata);
printf("0(s)\t");
decimal_to_binary(idata, j, iparity);
for (i=0; i=0;j++){
icount += ioutput[i];
printf("%d\t",ioutput[i]);i--; }
if ((icount%2)==0 && iparity==01 || (icount%2)!=0 && iparity==11)
{printf("1(p)");} return;}
void binary_to_decimal(int ichar_length,int iparity) // Function binary_to_decimal Declaration
{
int i,b,a;i=0;b=0;printf("Enter the LSB first:\n");while(i