/*
 This program converts an object file into a hexdecimal file.
 by Jeff Chai - Public Domain
NOTE: know to compile under TC 3.0, DJGPP, and MS Developer Studio.
*/
// Include header files

#include 
#include 
#include 

// Main program starts here

int main( int argc, char **argv )
 
 {
	FILE *obj_in;			 // Declare a file pointer
    unsigned char byte_in;	 // A byte buffer
	static char hex[] = {"0123456789ABCDEF"};  // ASCII code
	int hi, lo, i;			 // high, low nibbles and index

	
	// Open the object file using name in argv[]

    if( (obj_in = fopen(argv[1],"rb" )) == NULL )
	{
		// NULL returned, file does not exist.
		fprintf( stderr, "Couldn't open %s\n",argv[1] );
		return 1;
	}

	
	i = 1;
	while(  !feof(obj_in) )	  // While Not End-of-file, loop
	{
		
		// Get one unsigned character from file

		byte_in = fgetc( obj_in);
		if (!feof(obj_in))	  // not an EOF character
		{
			// Shift right 4 bits to get the high nibble
			hi = byte_in /16;
			// Mask off high nibble to get the low nibble
			lo = byte_in & 0xF;
			// Put the corresponding Hexdec charecter out
			fputc( hex[hi], stdout );
			// Put the corresponding Hexdec charecter out
			fputc( hex[lo], stdout );
			if (i > 5)	// Put a new line character every 6 bytes
			{
				i = 0;
				fputc ('\n',stdout);
			}
			++i;
		}  // End if
      }	 // End of loop

	// DONE, close file
	
	fclose(obj_in);

    return 0; // Return 0 to indicate a normal return
  }	 // End of program


    Source: geocities.com/tutorman_2000/83

               ( geocities.com/tutorman_2000)