/*
	flop.c

	flop <in_name> <out_name>
*/
#include <stdio.h>

#define MAX_BYTE 16386

unsigned char Dat[MAX_BYTE];

main(int argc,char *argv[])

{
	int i,j=0;
	unsigned char byte;
	FILE *fpin,*fpout;
	int numread;
	char cr=0xd;

	if(argc<3)
	{
		printf("flop <in_name> <out_name>\n\n");
		printf(
"This program reverses the byte order of integer numbers in a binary file.\n\n");
		exit(0);
	}
	fpin=fopen(argv[1],"rb");
	if(!fpin)
	{
		printf("Could not open '%s'\n\n",argv[1]);
		exit(0);
	}
	fpout=fopen(argv[2],"wb");
	if(!fpout)
	{
		printf("Could not open '%s'\n\n",argv[2]);
		exit(0);
	}
	while((numread=fread((char *)Dat,sizeof(char),MAX_BYTE,fpin))>0)
	{
		printf("%cblock = %6d bytes = %6d",cr,++j,numread);
		for(i=0;i<numread;i+=1)
		{
			byte=Dat[i];
			Dat[i]=Dat[i+1];
			Dat[i+1]=byte;
		}
		fwrite((char *)Dat,sizeof(char),numread,fpout);
	}
	fclose(fpin);
	fclose(fpout);
}                                                                                