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);
        }
    }
}
Exemplo n.º 2
0
		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;

		}
Exemplo n.º 3
0
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);
}
Exemplo n.º 4
0
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);
}