void main(int argc,char *argv[]) { //printf("\nconvert %s %s %s \n",argv[1],argv[2],argv[3]); int b1=atoi(argv[1]),b2=atoi(argv[2]),i,size,m,n,check,dec,num; size=strlen(argv[3]); char s[size]; strcpy(s,argv[3]); check=checkb1(s,size,b1); if(check==1) { if(b1==b2) { printf("%s",argv[3]); } else if((b1==16||b1==2||b1==8)&&b2==10) // all to decimal { dec=alltodec(s,size,b1); printf("%d",dec); } else if(b1==10 && b2==2) // decimal to binary { num=atoi(s); dectobin(num); } else if((b1==16||b1==8)&&b2==2)// rest to binary { num=alltodec(s,size,b1); dectobin(num); } else if(b1==10&& b2==8) //decimal to octal { num=atoi(s); dectoct(num); } else if((b1==16||b1==2)&&b2==8) //rest to octal { num=alltodec(s,size,b1); dectoct(num); } else if(b1==10 && b2==16) // decimal to hexa { num=atoi(s); dectohex(num); } else if((b1==2||b1==8)&&b2==16) // rest to hexa { num=alltodec(s,size,b1); dectohex(num); } } }
bool send_chunked( const std::string &data, psocksxx::iosockstream * socket ) throw() { std::string chunked_data = ""; unsigned int offset = 0; int chunks = 0; // calculate the number of chunks we need if ( data.size() > ICAP_BUFFER_SIZE ) { chunks = ( data.size() / ICAP_BUFFER_SIZE ); } try { do { // prepare data for this chunk chunked_data = data.substr( offset, ICAP_BUFFER_SIZE ); // sanity check if ( chunked_data.size() <= 0 ) { // we shouldn't get here break; } // update offset offset += chunked_data.size(); // send chunk size if (! send_line( dectohex( chunked_data.size() ), socket ) ) { return false; } // send chunk if (! send_data( chunked_data, socket ) ) { return false; } chunks--; } while ( chunks > 0 ); // end of chunk if (! send_data( "\r\n0\r\n\r\n", socket ) ) { return false; } } catch ( psocksxx::sockexception &e ) { // TODO: log errors ?? return false; } return true; }
main() { char opcode[10],optab1[20][10],symtab[20][10],symbol[10],operand[20],forw[20][10],ch,optab3[20][20],op1[5],c,opp[5],*loc,lo[5],val[5]; int op,optab2[20],i=0,j=0,locctr=1000,k=0,value[20],opval,d,o=0,ii,lon,f=-1,kk,l,bl; FILE *prg,*optab,*out,*sym,*inter; prg=fopen("2passinput.txt","r"); optab=fopen("optab","r"); inter=fopen("pass2input.txt","w"); out=fopen("2passoutput.txt","w+"); sym=fopen("symbol","w"); fclose(sym); sym=fopen("symbol","a"); while(!feof(optab)) { fscanf(optab,"%s",optab1[i]); fscanf(optab,"%s",optab3[i]); i++; } if(!feof(prg)) { fscanf(prg,"%s",&symbol); fprintf(inter,"%s\t",symbol); if(strcmp("*",symbol)) { fscanf(prg,"%s",opcode); fprintf(inter,"%s\t",opcode); } if(!strcmp("START",opcode)) { // fscanf(prg,"%d",&locctr); fscanf(prg,"%s",&lo); locctr=hextodec(lo); //printf("lo=%d\n",locctr); fprintf(inter,"%s",lo); } else { printf("Error"); exit(0); } } while(!feof(prg)) { fscanf(prg,"%s",symbol); if(symbol[0]=='.') { fgets(symbol,100,prg); continue; } fprintf(inter,"\n%s\t",dectohex(locctr)); fprintf(inter,"%s\t",symbol); if(strcmp("*",symbol)) { strcpy(symtab[k],symbol); value[k]=locctr; k++; fprintf(sym,"%s\t%d",symtab[k-1],value[k-1]); } fscanf(prg,"%s",opcode); fprintf(inter,"%s\t",opcode); if(!strcmp("RESW",opcode)) { fscanf(prg,"%s",&val); fprintf(inter,"%s",val); locctr+=hextodec(val); } else if(!strcmp("RESB",opcode)) { fscanf(prg,"%s",&val); fprintf(inter,"%s",val); locctr+=hextodec(val); } else if(!strcmp("WORD",opcode)) { fscanf(prg,"%s",&val); fprintf(inter,"%s",val); locctr+=3; } else if(!strcmp("BYTE",opcode)) { fscanf(prg,"%s",&val); if(val[0]=='C') locctr+=strlen(val)-3; else if(val[0]=='X') locctr+=(strlen(val)-3)/2; fprintf(inter,"%s",val); } else if(!strcmp("END",opcode)) { break; } else { locctr+=3; fscanf(prg,"%s",operand); fprintf(inter,"%s",operand); } } fclose(prg); fclose(inter); prg=fopen("pass2input.txt","r+"); if(!feof(prg)) { fprintf(out,"0000\t"); fscanf(prg,"%s",&symbol); if(strcmp("*",symbol)) { fprintf(out,"%s\t",symbol); fscanf(prg,"%s",opcode); fprintf(out,"%s\t",opcode); } if(!strcmp("START",opcode)) { fscanf(prg,"%s",&lo); locctr=hextodec(lo); } else { printf("Error"); exit(0); } fprintf(out,"0\t"); } while(!feof(prg)) { fprintf(out,"\n"); fscanf(prg,"%s",&lo); sprintf(opp,"%s",lo); l=strlen(opp); for(kk=0;kk<4-l;kk++) fprintf(out,"%c",'0'); fprintf(out,"%s\t",lo); fscanf(prg,"%s",symbol); fprintf(out,"%s\t",symbol); if(strcmp("*",symbol)) { fprintf(sym,"%s\t%d\n",symbol,locctr); } fscanf(prg,"%s",opcode); fprintf(out,"%s\t",opcode); if(!strcmp("RESW",opcode)) { fscanf(prg,"%s",&val); fprintf(out,"%s\t*\t",val); } else if(!strcmp("RESB",opcode)) { fscanf(prg,"%s",&val); fprintf(out,"%s",val); continue; } else if(!strcmp("WORD",opcode)) { fscanf(prg,"%s",&val); fprintf(out,"%s",val); fprintf(out,"\t%6s",val); continue; } else if(!strcmp("BYTE",opcode)) { fscanf(prg,"%s",&val); fprintf(out,"%s\t",val); l=strlen(val); kk=0; if(val[0]=='C') { for(bl=2;bl<l-1;bl++) { fprintf(out,"%s",dectohex(val[bl])); } } else if(val[0]=='X') { for(bl=2;bl<l-1;bl++) { fprintf(out,"%c",val[bl]); } } } else if(!strcmp("END",opcode)) { fprintf(out,"*\t*\t"); break; } else { for(j=0;j<i;j++) { if(!strcmp(optab1[j],opcode)) { strcpy(op1,optab3[j]); break; } } if(j==i) { printf("Error\n"); exit(0); } fscanf(prg,"%s",operand); fprintf(out,"%s\t",operand); fprintf(out,"%s",op1); for(j=0;j<k;j++) { if(!strcmp(symtab[j],operand)) break; } if(j==k) { if(!strcmp(operand,"*")) { fprintf(out,"0000"); continue; } printf("Error\n"); exit(0); } opval=value[j]; loc=dectohex(opval); sprintf(opp,"%s",loc); l=strlen(opp); for(kk=0;kk<4-l;kk++) fprintf(out,"%c",'0'); fprintf(out,"%s",loc); } } fclose(sym); fclose(out); }
main() { char opcode[10],optab1[20][10],symtab[20][10],symbol[10],operand[20],forw[20][10],ch,optab3[20][20],op1[5],c,opp[5],*loc,lo[5],val[5]; int op,optab2[20],i=0,j=0,locctr=1000,k=0,value[20],opval,d,o=0,ii,lon,f=-1,kk,l,bl; lst *tem; FILE *prg,*optab,*out,*sym; prg=fopen("1passinput.txt","r"); optab=fopen("optab","r"); out=fopen("1passoutput.txt","w+"); sym=fopen("symbol","w"); fclose(sym); sym=fopen("symbol","a"); while(!feof(optab)) { fscanf(optab,"%s",optab1[i]); fscanf(optab,"%s",optab3[i]); i++; } if(!feof(prg)) { fprintf(out,"0000\t"); fscanf(prg,"%s",&symbol); fprintf(out,"%s\t",symbol); if(strcmp("*",symbol)) { fscanf(prg,"%s",opcode); fprintf(out,"%s\t",opcode); } if(!strcmp("START",opcode)) { fscanf(prg,"%s",&lo); locctr=hextodec(lo); fprintf(out,"%s\t",lo); } else { printf("Error Start"); exit(0); } fprintf(out,"0\t"); } while(!feof(prg)) { fscanf(prg,"%s",symbol); if(symbol[0]=='.') { fgets(symbol,100,prg); continue; } fprintf(out,"\n%s\t",dectohex(locctr)); fprintf(out,"%s\t",symbol); if(strcmp("*",symbol)) { strcpy(symtab[k],symbol); value[k]=locctr; k++; fprintf(sym,"%s\t%d\n",symtab[k-1],value[k-1]); } fscanf(prg,"%s",opcode); fprintf(out,"%s\t",opcode); if(!strcmp("RESW",opcode)) { fscanf(prg,"%s",&val); locctr+=hextodec(val); fprintf(out,"%s\t*\t",val); } else if(!strcmp("RESB",opcode)) { fscanf(prg,"%s",&val); fprintf(out,"%s",val); locctr+=hextodec(val); } else if(!strcmp("WORD",opcode)) { fscanf(prg,"%s",&val); fprintf(out,"%s",val); fprintf(out,"\t%6s",val); locctr+=3; } else if(!strcmp("BYTE",opcode)) { fscanf(prg,"%s",&val); fprintf(out,"%s",val); if(val[0]=='C') { for(bl=2;bl<l-1;bl++) { fprintf(out,"%s",dectohex(val[bl])); } locctr+=strlen(val)-3; } else if(val[0]=='X') { for(bl=2;bl<l-1;bl++) { fprintf(out,"%c",val[bl]); } locctr+=(strlen(val)-3)/2; } } else if(!strcmp("END",opcode)) { fprintf(out,"*\t*\t"); break; } else { for(j=0;j<i;j++) { if(!strcmp(optab1[j],opcode)) { strcpy(op1,optab3[j]); break; } } if(j==i) { printf("Error Opcode\t%s\n",opcode); exit(0); } locctr+=3; fscanf(prg,"%s",operand); fprintf(out,"%s\t",operand); fprintf(out,"%s",op1); for(j=0;j<k;j++) { if(!strcmp(symtab[j],operand)) break; } if(j==k) { if(!strcmp(operand,"*")) { fprintf(out,"0000"); continue; } for(ii=0;ii<o;ii++) { if(!strcmp(listt[ii].a,operand)) break; } if(ii==o) { strcpy(listt[o++].a,operand); lon=ftell(out); listt[o-1].next=(lst*)malloc(sizeof(lst)); (listt[o-1].next)->x=lon; (listt[o-1].next)->next=NULL; } else { tem=listt[o-1].next; lon=ftell(out); while(tem->next!=NULL) tem=tem->next; tem->next=(lst*)malloc(sizeof(lst)); tem->next->x=lon; tem->next->next=NULL; } fprintf(out,"0000"); continue; } opval=value[j]; loc=dectohex(opval); sprintf(opp,"%s",loc); l=strlen(opp); for(kk=0;kk<4-l;kk++) fprintf(out,"%c",'0'); fprintf(out,"%s",loc); } } for(j=0;j<o;j++) { for(k=0;k<i;k++) { if(!strcmp(symtab[k],listt[j].a)) { tem=listt[j].next; loc=dectohex(value[k]); while(tem!=NULL) { fseek(out,tem->x,SEEK_SET); sprintf(opp,"%s",loc); l=strlen(opp); for(kk=0;kk<4-l;kk++) fprintf(out,"%c",'0'); fprintf(out,"%s",loc); strcpy(opp,""); tem=tem->next; } break; } } if(k==i) { printf("Error\t%s\n",listt[j].a); exit(0); } } fclose(sym); fclose(out); }