home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / TELECOM / stg_v4.lzh / dump.c < prev    next >
C/C++ Source or Header  |  1994-11-11  |  781b  |  70 lines

  1. #define hex(x) ((x)>9?(x)+'A'-10:(x)+'0')
  2.  
  3. dump(pn,b,l)
  4. int pn;
  5. char *b;
  6. int l;
  7. {
  8.     int x,y;
  9.     unsigned char d;
  10.     char a[80];
  11.     char *p;
  12.     unsigned int v;
  13.  
  14.     y=0;
  15.     while (l)
  16.     {
  17.         p=a;
  18.         x=4;
  19.         v=y;
  20.         p+=4;
  21.         while (x--)
  22.         {
  23.             *--p=hex(v&15);
  24.             v>>=4;
  25.         }
  26.         p+=4;
  27.         *p++=':';
  28.         *p++=' ';
  29.  
  30.         x=0;
  31.         while (x<16)
  32.         {
  33.             if (x==l) break;
  34.  
  35.             d=*(b+x);
  36.             v=d>>4;
  37.             *p++=hex(v&15);
  38.             *p++=hex(d&15);
  39.             *p++=' ';
  40.             x++;
  41.         }
  42.         while (x<16)
  43.         {
  44.             *p++=' ';
  45.             *p++=' ';
  46.             *p++=' ';
  47.             x++;
  48.         }
  49.         *p++=' ';
  50.         x=0;
  51.         while (x<16)
  52.         {
  53.             if (x==l) break;
  54.  
  55.             d=*(b+x);
  56.  
  57.             if (d<32 || d>126) d='.';
  58.             *p++=d;
  59.             x++;
  60.         }
  61.         if (l>16) l-=16; else l=0;
  62.         b+=16;
  63.  
  64.         *p++='\n';
  65.         writeln(pn,a,p-a);
  66.         y+=16;
  67.     }
  68.     return(0);
  69. }
  70.