39
TEXT EDITOR #include<stdio.h> #include<conio.h> #include<ctype.h> #include<dos.h> #include<iostream.h> #include<fstream.h> char filename[15]; char buff[1000]; int count; void main() { char ch,c; ofstream outfile; ifstream infile; clrscr(); cout<<"\n"; cout<<"######################################"; cout<<"\n TEXT EDITOR \n"; cout<<"######################################"; cout<<"\n Type ur text and then press escape key\n"; while(c!=27) { c=getch(); switch(c) { case 0: printf(""); buff[count++]='\n'; break; case 1: buff[count++]='\n'; break; default: cprintf("%c",c); } buff[count++]=c; } cprintf("\n\n Do u want to save?(y/n)"); scanf("%s",&c); if((c=='Y')||(c=='y')) { cprintf("\n Enter the filename with extension is & chara only :");

prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

TEXT EDITOR

#include<stdio.h>#include<conio.h>#include<ctype.h>#include<dos.h>#include<iostream.h>#include<fstream.h>char filename[15];char buff[1000];int count;void main(){char ch,c;ofstream outfile;ifstream infile;clrscr();cout<<"\n";cout<<"######################################";cout<<"\n TEXT EDITOR \n";cout<<"######################################";cout<<"\n Type ur text and then press escape key\n";while(c!=27){c=getch();switch(c){case 0:printf("");buff[count++]='\n';break;case 1:buff[count++]='\n';break;default:cprintf("%c",c);}buff[count++]=c;}cprintf("\n\n Do u want to save?(y/n)");scanf("%s",&c);if((c=='Y')||(c=='y')){cprintf("\n Enter the filename with extension is & chara only :");scanf("%s",&filename);outfile.open(filename,ios::in);outfile<<buff;outfile.close();cout<<"\n Do u want to open ?(y/n);"<<"\n";

Page 2: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

ch=getch();{if((ch=='Y')||(ch=='y')){cprintf("\n Enter the filenme to open:");scanf("%s",&filename);infile.open(filename,ios::in);infile.get(buff,count,'*');printf("%s",buff);getch();infile.close();}}}}

Page 3: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

OUTPUT

Page 4: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

SINGLE PASS ASSEMBLER

#include<stdio.h>#include<string.h>#include<conio.h>#include<math.h>struct st{char op[25];int nb;char code[3];}s;void main(){int i=0,D,h=0;FILE *f1,*f2,*f3;char g[10],c[10];clrscr();f1=fopen("pgm.txt","r");f3=fopen("output.txt","w");D=0X2000;while(!feof(f1)){fgets(g,35,f1);while(g[i]!='\n'){if(g[i]>='A'&&g[i]<='Z'){c[h]=g[i];h++;}i++;}c[h]='\0';f2=fopen("opcode.txt","r");while(!feof(f2)){fscanf(f2,"%s%d%s",s.op,&s.nb,s.code);if(strcmp(c,s.op)==0){printf("\n%s%d%s",s.op,s.nb,s.code);getch();fprintf(f3,"%x\t%s%s",D,s.op);

Page 5: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

switch(s.nb){case 1:fprintf(f3,"\t%s\n",s.code);break;case 2:fprintf(f3,"\t%s\t%c%c",s.code,g[i-2],g[i-1]);fprintf(f3,"\n");break;case 3:fprintf(f3,"\t%s\t%c%c\t%c%c",s.code,g[i-2],g[i-1],g[i-4],g[i-3]);fprintf(f3,"\n");}D=D+s.nb;break;}}fclose(f2);i=0;h=0;}}

Page 6: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

INPUT FILE

PGM.TXT

OPCODE.TXT

Page 7: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

OUTPUT

Page 8: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

PASS1 OF TWO PASS ASSEMBLER

#include<stdio.h>#include<conio.h>#include<string.h>#include<stdlib.h>void main(){static int add,symadd;struct source{char label[20];char instr[20];char oper[20];}s;struct opcode{char mnem[20];char opcode[20];}op;FILE *inp,*opc,*symbol,*result;clrscr();inp=fopen("J4INP.txt","r");opc=fopen("J4CODE.txt","r");symbol=fopen("J4SYMBOL.txt","w");result=fopen("RESULT.txt","w");do{fscanf(inp,"%s%s%s",s.label,s.instr,s.oper);if((strcmp(s.instr,"START"))==0){add=0;fprintf(result,"%d%10s%10s%10s",add,s.label,s.instr,s.oper);add=atoi(s.oper);}else if((strcmp(s.instr,"DS"))==0){symadd=add;fprintf(result,"%d%10s%10s%10s\n",add,s.label,s.instr,s.oper);add=add+atoi(s.oper);}

Page 9: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

else if((strcmp(s.instr,"DC"))==0){symadd=add;fprintf(result,"%d%10s%10s%10s\n",add,s.label,s.instr,s.oper);add=add+1;}else if((strcmp(s.instr,"END"))==0){fprintf(result,"%d%10s%10s%10s",add,s.label,s.instr,s.oper);}else{do{fscanf(opc,"%s%s",op.mnem,op.opcode);symadd=add;if((strcmp(op.mnem,s.instr))==0){fprintf(result,"%d%10s%10s%10s\n",add,s.label,s.instr,s.oper);add=add+3;}}while(!feof(opc));rewind(opc);}if(strcmp(s.label,"NULL")!=0){fprintf(result,"%d%10s%10s%10s\n",add,s.label,s.instr,s.oper);}}while(!feof(inp));rewind(inp);printf("Pass 1 Completed");getch();}

Page 10: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

INPUT FILES

J4INP.TXT

NULL START 200A DS 100B DC 5NULL READ ANULL READ BNULL PRINT ANULL STOP NULLNULL END NULL

J4CODE.TXT

READ IFREAD 5APRINT 50STOP 03

J4SYMBOL.TXT

A 200B 300

Page 11: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

OUTPUT

RESULT.TXT

Page 12: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

PASS2 OF TWO PASS ASSEMBLER

#include<stdio.h>#include<string.h>#include<conio.h>void main(){int resadd1,ressymadd;char resopc[20];struct opcode{ char mnem[20]; char opcode[20];}op;struct symbol{char symb[20];int symadd;}sym;struct result{int add;char label[20],instr[20],oper[20];}res;FILE *result,*symbol,*opcode,*object;clrscr();result=fopen("j5result.txt","r+");symbol=fopen("j5symbol.txt","r+");opcode=fopen("j5opcode.txt","r+");object=fopen("j5object.txt","w+");do{fscanf(result,"%d%s%s%s",&res.add,res.label,res.instr,res.oper);if(((strcmp(res.instr,"START"))!=0)&&((strcmp(res.instr,"DS"))!=0)&&((strcmp(res.instr,"DC"))!=0)&&((strcmp(res.instr,"STOP"))!=0)){do{fscanf(opcode,"%s%s",op.mnem,op.opcode);

Page 13: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

if((strcmp(op.mnem,res.instr))==0){resadd1=res.add;strcpy(resopc,op.opcode);}}while(!feof(opcode));rewind(opcode);do{fscanf(symbol,"%s%d",sym.symb,&sym.symadd);if((strcmp(res.oper,sym.symb))==0){ressymadd=sym.symadd;}}while(!feof(symbol));rewind(symbol);fprintf(object,"%s%10d%10s%10d\n",res.instr,resadd1,resopc,ressymadd);}}while(!feof(result));printf("pass 2 is completed");getch();}

Page 14: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

INPUT FILES

J5RESULT.TXT

0 NULL START 200200 A DS 100300 B DC 5 301 NULL READ A304 NULL READ B307 NULL PRINT A310 NULL STOP NULL313 NULL END NULL

J5OPCODE.TXTREAD 1FPRINT 50STOP 1A

J5SYMBOL.TXT

A 200B 300

Page 15: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

OUTPUT

J5OBJECT.TXT

Page 16: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

ABSOLUTE LOADER

#include<stdio.h>#include<conio.h>#include<string.h>#include<stdlib.h>struct object_code{int locctr;char byte[5];};struct object_code code[200];void main(){FILE *fp1,*fp2;char input[15];int i,len,n=0,count=0,textloc,tlen,tloc=0,num=0,loc,inc=0;clrscr();fp1=fopen("loading.txt","r");fp2=fopen("J6output.txt","w");rewind(fp1);rewind(fp2);fscanf(fp1,"%s",input);if(strcmp(input,"H")==0){for(i=0;i<4;i++){if(i==1)fscanf(fp1,"%x",&loc);elsefscanf(fp1,"%s",input);}}tloc=loc;while(strcmp(input,"E")!=0){if(strcmp(input,"T")==0){fscanf(fp1,"%x",&textloc);for(i=0;i<(textloc-(tloc+tlen));i++){strcpy(code[inc].byte,"XX");code[inc+1].locctr=loc++;}

Page 17: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

fscanf(fp1,"%x",&len);tloc=textloc;}else{len=strlen(input);for(i=0;i<len;i++){code[inc].byte[num++]=input[i];if(num>1){code[inc].locctr=loc;loc++;inc++;num=0;}}}fscanf(fp1,"%s",input);}n=0;i=0;count=0;fprintf(fp2,"%x\t",code[i].locctr);for(i=0;i<inc;i++){fprintf(fp2,"%s",code[i].byte);n++;if(n>3){fprintf(fp2,"\t");n=0;count++;}if(count>3){fprintf(fp2,"\n%x\t",code[i+1].locctr);count=0;}}getch();}

Page 18: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

INPUT FILE

LOADING.TXT

OUTPUT

J6OUTPUT.TXT

Page 19: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

RELOCATING LOADER

#include<stdio.h>#include<conio.h>#include<string.h>#include<stdlib.h>struct object_code{int locctr;char add[10];}obcode[300];void main(){char input[100][16],output[100][16],binary[20],address[20],stloc[10];int len,bitmask,loc,tlen=0,tloc,textloc,i=0,location,j,k,count=0,start,n,num=0,inc=0;FILE *fp1,*fp2;clrscr();fp1=fopen("inputrel.txt","r");fp2=fopen("loadout.txt","w");printf("Enter location where program hasn to be loaded: ");scanf("%s",stloc);start=atoi(stloc);location=start;tloc=start;fscanf(fp1,"%s",input[i]);while(strcmp(input[i],"T")!=0){strcpy(output[i],input[i]);i++;fscanf(fp1,"%s",input[i]);strcpy(output[i],input[i]);}itoa(start,output[2],10);while(strcmp(input[i],"E")!=0){strcpy(output[i],input[i]);if(strcmp(input[i],"T")==0){for(j=0;j<3;j++){i++ ;fscanf(fp1,"%s",input[i]);strcpy(output[i],input[i]);

Page 20: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

}bitmask=atoi(output[i]);itoa(bitmask,binary,2);strcpy(output[i],NULL);textloc=atoi(output[i-2]);textloc=textloc+start;itoa(textloc,output[i-2],10);for(n=0;n<(textloc-(tloc+tlen));n++){strcpy(obcode[inc].add,"xx");obcode[inc++].locctr=location++;}tlen=atoi(output[i-1]);tloc=textloc;k=0;}else{if(binary[k]=='1'){num=0;len=strlen(output[i]);strcpy(address,NULL);for(j=2;j<len;j++){address[num]=output[i][j];output[i][j]='\0';num++;}loc=atoi(address);loc=loc+start;itoa(loc,address,10);strcat(output[i],address);}k++;len=strlen(output[i]);num=0;for(n=0;n<len;n++){obcode[inc].add[num++]=output[i][n];if(num>1){obcode[inc++].locctr=location++;num=0;}}

Page 21: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

}

i++;fscanf(fp1,"%s",input[i]);}strcpy(output[i],input[i]);i++;fscanf(fp1,"%s",input[i]);loc=atoi(input[i]);loc=loc+start;strcpy(output[i],itoa(loc,address,10));count=0;i=0;n=0;fprintf(fp2,"%d\t",obcode[n].locctr);for(n=0;n<inc;n++){fprintf(fp2,"%s",obcode[n].add);i++;if(i>3){fprintf(fp2,"\t");i=0;count++;}if(count>3){fprintf(fp2,"\n%d\t",obcode[n+1].locctr);count=0;}}getch();}

Page 22: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

INPUT FILE

INPUTREL.TXT

OUTPUT

LOADOUT.TXT

Page 23: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

PASS1 OF DIRECT LINKING LOADER

#include<stdio.h>#include<conio.h>#include<string.h>void main(){FILE *stream;char ch,prg[500],prg1[500];int i,pos;pos=0;clrscr();stream=fopen("code.txt","r");do{ch=getc(stream);prg[pos]=ch;pos++;}while(ch!=EOF);printf("%s\n",prg);for(i=0;i<=pos;i+2){printf("%u\t%c\n%u\t%c",&prg[i],prg[i],&prg[i+1],prg[i+1]);printf("\n");}getch();}

Page 24: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

INPUT FILE

CODE.TXT

05071A1C

OUTPUT

Page 25: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

PASS 2 OF DIRECT LINKING LOADER

#include<stdio.h>#include<conio.h>struct tex{char type;int stadd;int nob;char arr[50];}tt[5];void main(){FILE *f1,*f2;int i=0,j,lc,n,d;clrscr();f1=fopen("in.dat","r");f2=fopen("out.dat","w");while(!feof(f1)){switch(fgetc(f1)){case'H':break;case'T':if(i<1){fscanf(f1,"%x%x%s",&tt[i].stadd,&tt[i].nob,&tt[i].arr);lc=tt[i].stadd;tt[i].arr[tt[i].stadd+tt[i].nob]='\0';j=0;while(tt[i].arr[j]!='\0'){fprintf(f2,"%x\t%c\n",lc,tt[i].arr[j],tt[i].arr[j+1]);j+=2;lc++;}i++;}

Page 26: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

else{fscanf(f1,"%x%x%s",&tt[i].stadd,&tt[i].nob,&tt[i].arr);n=tt[i].stadd+tt[i].nob;d=tt[i].stadd-n;for(j=0;j<d;j++){fprintf(f2,"%x\t%c",lc,tt[i].arr[j+1]);i+=2;lc++;}}case'E':break;}}fcloseall();getch();}

Page 27: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

INPUT FILE

IN.DAT

H COPY 2400 15T 2300 04 04766790T 2300 04 05587643E 3310 02 1123

OUT.DAT

2300 042301 762302 672303 90

Page 28: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

SYMBOL TABLE#include<stdio.h>#include<conio.h>#include<string.h>void main(){char s[20];int add=100;FILE *fp;clrscr();fp=fopen("input.txt","r");rewind(fp);do{fscanf(fp,"%s",s);if(strcmp(s,"int")==0){while(strcmp(s,";")!=0){fscanf(fp,"%s",s);if((strcmp(s,";")!=0)&&(strcmp(s,",")!=0)){printf("%d\t%s\t%s\t%d\n",add,"int",s,sizeof(int));add+=2;}}}else if(strcmp(s,"float")==0){while (strcmp(s,";")!=0){fscanf(fp,"%s",s);if((strcmp(s,";")!=0)&&(strcmp(s,",")!=0)){printf("%d\t%s\t%s\t%d\n",add,"float",s,sizeof(float));add+=4;}}}}while(!feof(fp));fclose(fp);getch();}

Page 29: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

INPUT FILE:

INPUT.TXT

int a , b ;float c , d ;

OUTPUT:

Page 30: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

MACRO PROCESSOR

#include<stdio.h>#include<conio.h>#include<string.h>#include<stdlib.h>void main(){char n1,n,c1,i;char fn[10][10],ilab[20],iopd[20],m[20][3],oper[20],opd[20];FILE *fp1,*fp2,*p[5];clrscr();n=0;fp1=fopen("macst.txt","r");while(!feof(fp1)){fscanf(fp1,"%s%s%s\n",ilab,iopd,oper);if(strcmp(iopd,"macro")==0)n++;}printf("number of macro=%d\n",n);n1=n;printf("Enter the text filename\n");for(i=0;i<n;i++){scanf("%s",fn[i]);p[i]=fopen(fn[i],"w");}n=0;rewind(fp1);while(!feof(fp1)){fscanf(fp1,"%s%s%s\n\t",ilab,iopd,oper);if(strcmp(iopd,"macro")==0){strcpy(m[n],oper);fscanf(fp1,"%s%s%s\n\t",ilab,iopd,oper);while(strcmp(iopd,"mend")!=0){

Page 31: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

fprintf(p[n],"%s%s%s\n\t",ilab,iopd,oper);fscanf(fp1,"%s%s%s\n\t",ilab,iopd,oper);}

fclose(p[n]);n++;}}for(i=0;i<n1;i++)p[i]=fopen(fn[i],"r");fp2=fopen("outsat.txt","w");rewind(fp1);fscanf(fp1,"%s%s%s\n\t",ilab,iopd,oper);while(!feof(fp1)){if(strcmp(iopd,"call")==0){for(i=0;i<n1;i++){if(strcmp(m[i],oper)==0){rewind(p[i]);fscanf(p[i],"%s%s%s\n\t",ilab,iopd,oper);while(!feof(p[i])){fprintf(fp2,"%s%s%s\n\t",ilab,iopd,oper);c1=1;fscanf(p[i],"%s%s%s\n\t",ilab,iopd,oper);}break;}}}if((c1)!=1)fprintf(fp2,"%s%s%s\n",ilab,iopd,oper);c1=0;fscanf(fp1,"%s%s%s\n",ilab,iopd,oper);}fprintf(fp2,"%s%s%s\n",ilab,iopd,oper);}

Page 32: prasanthmani.files.wordpress.com€¦  · Web view#include #include #include #include #include #include

INPUT FILE

MACST.TXT

OUTPUT