/* rwints - read a file of BASIC-format integers, double them and write them */
/*           in BASIC format. Another dubious utility by D McSweeney 1990 */
#include <stdio.h>

int read_basic_int(FILE *in)
{
int n, ans;

fgetc(in);                      /* &40 - discard */
for(ans=n=0; n<4; n++)
   ans = (ans << 8) + fgetc(in);

return(ans);
}

int write_basic_int(FILE *out, int output)
{
char x[4];
int mask, n;

for(n=3, mask=0XFF000000; n >= 0; n--, mask >>= 8)
   x[n]=(output & mask) >> (n * 8);

fputc(0X40, out);
for(n=3; n >= 0; n--)
   fputc(x[n], out);

return(output);
}

int main()
{
FILE *in, *out;
char c;

in=fopen("BasicNums", "r");
out=fopen("CNums", "w");

c=fgetc(in);
do{
   ungetc(c, in);
   write_basic_int(out, 2 * read_basic_int(in));
   c=fgetc(in);
   }while(!feof(in));

fclose(in);
fclose(out);
}
