#include <stdio.h>

#define DUMPWIDTH  16   /* number of bytes to dump per line */
HexDump( unsigned char * databytes, int numbytes){
    int i=0, 
    	j=0, 
	k=0;

    printf( "%d Bts: ", numbytes );

    /* really should break this into small chunks to get packet debug 
    ** output nicely in lines!  */
    

    while( i < numbytes){
	j += DUMPWIDTH;
	if (j > numbytes) 
	    j = numbytes;
	for (i = k; i < j ; ++i)
	    printf("%02x ", (unsigned) databytes[i]);

	printf( "=> ");

	for (i = k ; i< j ; i++){
	    if( isprint(databytes[i] ))  {
		printf("%c", (unsigned) (databytes[i] & 0x7f) );
	    } else {
		printf("-");
	    }
	}

	k=i;
	if( i < numbytes) printf("\n   >>"); /* start next line of dump data */
    }

    printf( "\n");
    fflush(stdout);
}
