#include<stdio.h> #include<stdlib.h> char line[5][20]; void numtok(); int cur=0; int lth; void main() { FILE *fin; int i=0,m=0,k=0,t=0,l,j,prevsize; int prgstart,prglen,textaddr,disp; char str[70]; struct loccontent { int addr; char content[3]; } mem[200]; clrscr(); for(i=0;i<200;++i) { mem[i].content[0]='x'; mem[i].content[1]='x'; mem[i].content[2]='\0'; } fin=fopen("loadin.txt","r"); while(!feof(fin)) { fgets(str,70,fin); numtok(str); if(strcmp(line[0],"H")==0) { printf("program name is %s\n",line[1]); prgstart=random(10000); prglen=atoi(line[3]); j=0; for(i=prgstart;i<=prgstart+prglen;++i) { mem[j].addr=i; j++; } } else if(strcmp(line[0],"T")==0) { if(t==0) { textaddr=prgstart; t=1; } disp=textaddr-prgstart; for(m=3;m <lth;++m) { for(i=0;i<5;i+=2) { mem[disp].addr=textaddr++; mem[disp].content[0]=line[m][i]; mem[disp].content[1]=line[m][i+1]; mem[disp].content[2]='\0'; disp++; } } } else if(strcmp(line[0],"E")==0) break; k=0; } for(i=0;i<prglen;i+=16) { printf("%d\t",mem[k].addr); for(l=0;l<4;l++) { for(j=0;j<4;j++) { printf("%c%c",mem[k].content[0],mem[k].content[1]); k++; } printf("\t"); } printf("\n"); } getch(); } void numtok(char str[70]) { int i=0,j=0,k=0; while(str[j]!='\0') { line[i][k]=str[j]; if(str[j]=='^') { line[i][k]='\0'; k=-1; i++; } k++; j++; } line[i][k]='\0'; lth=i+1; }
Input File
LOADIN.TXT
H^COPY^1000^115
T^1000^12^141033^482039^001036^281030
T^1012^9^345890^581056^454645
T^1000^12^141033^482039^001036^281030
E^1000
No comments:
Post a Comment